Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:iptables-pare-feu-pour-un-client [30/08/2018 14:46] Beta-Pictoris |
doc:reseau:iptables-pare-feu-pour-un-client [06/01/2019 02:07] Beta-Pictoris |
||
---|---|---|---|
Ligne 234: | Ligne 234: | ||
===Les options=== | ===Les options=== | ||
''-t filter'' : pour préciser la table (facultatif avec la table filter).\\ | ''-t filter'' : pour préciser la table (facultatif avec la table filter).\\ | ||
- | ''-A chain'' : ajouter une règle à la fin de la chaîne (OUTPUT, puis INPUT)\\ | + | ''-A chain'' : ajouter une règle à la fin de la chaîne (OUTPUT, puis INPUT)\\ |
- | ''-p'' : pour indiquer le type de trames utilisé dans le paquet. ([!] "all", "tcp", "udp", "icmp", ou un numéro)\\ | + | ''-p'' : pour indiquer le type de trames utilisé dans le paquet ([!] "all", "tcp", "udp", "icmp", ou un numéro).\\ |
- | ''--dport'' : port de destination.\\ | + | ''--dport'' : port de destination.\\ |
- | ''--sport'' : port source.\\ | + | ''--sport'' : port source.\\ |
- | ''-m //module//'' : Demande d'utiliser un module particulier.\\ | + | ''-m module'' : Demande d'utiliser un module particulier.\\ |
''conntrack'' : c'est un module de netfilter.\\ | ''conntrack'' : c'est un module de netfilter.\\ | ||
- | ''--ctstate //liste des états conntrack.//'' | + | ''--ctstate'' : liste des états conntrack. |
===La liste des états de connexion conntrack=== | ===La liste des états de connexion conntrack=== | ||
Ligne 255: | Ligne 255: | ||
* CONFIRMED : Connexion est confirmée | * CONFIRMED : Connexion est confirmée | ||
- | <note important>Depuis debian stretch, **conntrack** va étiqueter des paquets, comme étant dans l'état **RELTATED**, que pour le protocole **icmp** (Module **nf_conntrack_ipv4** chargé automatiquement). | + | <note important>Depuis debian **Stretch**, **conntrack** ne va plus associer des paquets à l'état **RELATED**, sauf pour le protocole **icmp**.\\ |
- | Pour les autres protocoles, il faudra ajouter une règle de type **raw** pour charger le module adéquat et activer la prise en charge de l'état **RELATED**. Par exemple, pour le protocole **ftp**, coté serveur: | + | |
+ | |||
+ | Si vous voulez faire du filtrage sur des paquets dans l'état **RELATED** pour d'autres protocoles, il faudra créer une règle particulière dans la table **raw**.\\ | ||
+ | |||
+ | Cette règle déclenchera l'activation d'un module **conntrack**, appelé module **helper**, en pré-routant les nouvelles connexions vers une cible **CT**.\\ | ||
+ | |||
+ | Par exemple, pour le protocole **ftp**, si on veut qu'une nouvelle connexion **tcp** entrante, vers le port 21 du serveur, génère des réponses dans l'état **RELATED** :\\ | ||
<code root>iptables -t raw -A PREROUTING -p tcp --dport 21 -j CT --helper ftp</code> | <code root>iptables -t raw -A PREROUTING -p tcp --dport 21 -j CT --helper ftp</code> | ||
+ | La règle précédente a activé le module **nf_conntrack_ftp**.\\ | ||
+ | |||
+ | **conntrack** associera, donc, l'état **RELATED** au premier paquet, d'une nouvelle connexion **tcp**, sortant du port 20 du serveur (cas d'un serveur ftp actif).\\ | ||
+ | |||
+ | Si on autorise de nouvelles connexions entrantes sur le port 21 :\\ | ||
+ | <code root>iptables -A INPUT -p tcp --dport 21 -m conntrack --ctstate NEW -j ACCEPT</code> | ||
+ | |||
+ | On devra, donc, utiliser la règle suivante pour autoriser la suite de l'échange sur le port 20 (cas d'un serveur ftp actif) :\\ | ||
+ | <code root>iptables -A OUTPUT -p tcp --sport 20 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT</code> | ||
+ | |||
+ | Si le module helper, qui gère l'état **RELATED**, n'est pas activé, **conntrack** associera les paquets à l'état **NEW**.\\ | ||
+ | On devra, donc, utiliser la règle suivante :\\ | ||
+ | <code root>iptables -A OUTPUT -p tcp --sport 20 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT</code> | ||
</note> | </note> | ||
+ | |||
Vous n'avez rien compris ? C'est normal, voyons ce qu'est //conntrack// ! | Vous n'avez rien compris ? C'est normal, voyons ce qu'est //conntrack// ! | ||