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:28] Beta-Pictoris |
doc:reseau:iptables-pare-feu-pour-un-client [06/01/2019 02:15] Beta-Pictoris |
||
---|---|---|---|
Ligne 230: | Ligne 230: | ||
===Signification de ces commandes=== | ===Signification de ces commandes=== | ||
- | Autorise un paquet passant par la chaîne (OUTPUT|INPUT), par protocole de transport udp sur le port 53 (''--dport'' : port de destination | ''--sport'' : port source ), et pour udp utilisation du module "conntrack", selon l'état de la connexion (NEW, demande de nouvelle connexion, RELATED, nouvelle demande mais en rapport avec une connexion déjà initiée et ESTABLISHED, en relation à une demande pour une connexion déjà initiée). | + | Les commandes précédentes autorisent un paquet sortant (chaine OUTPUT) et entrant (CHAINE INPUT), via le protocole udp sur le port 53 et selon l'état de la connexion (NEW ou ESTABLISHED). |
- | __**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).\\ |
- | ''-m //module//'' : Demande d'utiliser un module particulier\\ | + | ''--dport'' : port de destination.\\ |
- | ''conntrack'' : c'est un module de netfilter il est installé sur wheezy pour l'activer : | + | ''--sport'' : port source.\\ |
- | * ''/sbin/modprobe ip_conntrack'';\\ | + | ''-m module'' : Demande d'utiliser un module particulier.\\ |
- | ''--ctstate //liste des états//'' : liste les états de connexion : | + | ''conntrack'' : c'est un module de netfilter.\\ |
+ | ''--ctstate'' : liste des états conntrack. | ||
+ | |||
+ | ===La liste des états de connexion conntrack=== | ||
* INVALID : signifie que le paquet est associé à aucune connexion connue | * INVALID : signifie que le paquet est associé à aucune connexion connue | ||
* NEW : signifie que le paquet a commencé une nouvelle connexion | * NEW : signifie que le paquet a commencé une nouvelle connexion | ||
Ligne 252: | 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 de 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> | ||
+ | Pour information, la règle précédente a activé le module **nf_conntrack_ftp**.\\ | ||
+ | |||
+ | **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> | ||
+ | |||
+ | 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// ! | ||