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 [08/09/2018 03:36] Beta-Pictoris |
doc:reseau:iptables-pare-feu-pour-un-client [06/01/2019 03:02] Beta-Pictoris |
||
---|---|---|---|
Ligne 255: | Ligne 255: | ||
* CONFIRMED : Connexion est confirmée | * CONFIRMED : Connexion est confirmée | ||
- | <note important>Depuis debian **Stretch**, **conntrack** ne va étiqueter les paquets en **RELATED** que pour le protocole **icmp**.\\ | + | <note important> |
- | Pour les autres protocoles, il faudra activer le module **conntrack** adéquat via une règle (de la table raw) de ciblage **CT** sur la connexion déclencheuse.\\ | + | Depuis debian **Stretch**, **conntrack** ne va plus associer de paquets à l'état **RELATED**, sauf pour le protocole **icmp**.\\ |
- | Par exemple, pour le protocole **ftp**, si on veut qu'une nouvelle connexion, sur le port 21 du serveur, active le tracking conntrack_ftp:\\ | + | \\ |
+ | Si vous voulez faire du filtrage sur des paquets dans l'état **RELATED** pour d'autres protocoles, il va falloir déclencher l'activation d'un module **conntrack**, appelé module **helper**, en cas de connexion sur un port particulier.\\ | ||
+ | \\ | ||
+ | Pour cela, il va falloir créer une règle particulière, de **PREROUTING**, dans la table **raw**.\\ | ||
+ | \\ | ||
+ | A noter, la cible de cette règle s'appelle **CT** (Pour **C**onn**T**rack ?).\\ | ||
+ | \\ | ||
+ | Par exemple, pour le protocole **ftp**, si on veut qu'une nouvelle connexion **tcp** entrante, vers le port 21 du serveur, puisse générer 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> | ||
- | + | Pour information, la règle précédente va activer le module **nf_conntrack_ftp**.\\ | |
- | De ce fait, **conntrack** étiquètera en **RELATED** le premier paquet sortant du port 20 du serveur (cas d'un serveur ftp actif).\\ | + | \\ |
- | On pourra, donc, utiliser la règle suivante coté serveur:\\ | + | **conntrack** associera, donc, l'état **RELATED** a une nouvelle connexion **tcp**, sortante du port 20 du serveur (cas d'un serveur ftp actif) à condition qu'une nouvelle connexion **tcp** entrante, vers le port 21 du serveur ait été acceptée.\\ |
+ | \\ | ||
+ | Pour cela, 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> | <code root>iptables -A OUTPUT -p tcp --sport 20 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT</code> | ||
+ | \\ | ||
+ | Vous devez, donc, toujours, traiter les paquets étant dans l'état **RELATED** à partir du moment où ils existent, sinon ils seront perdus et cela entrainera des problèmes de communication !\\ | ||
+ | \\ | ||
+ | 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> | ||
- | Si l'état **RELATED** n'est pas pris en charge, **conntrack** étiquètera les paquets en **NEW**. | + | L'état **RELATED** est plus sûr que l'état **NEW** puisque qu'il n'autorise de nouvelles connexions que si une connexion préalable existait déjà sur un autre port ou avec un autre protocole. |
</note> | </note> | ||