7.3. Filtrage iptables commun

Le fait de garder des agresseurs distants à l'extérieur d'un LAN représente un aspect important de la sécurité réseau, voire le plus important. L'intégrité d'un LAN devrait être protégée contre les utilisateurs distants malveillants grâce à l'utilisation de règles rigoureuses de pare-feu. Cependant, avec une politique par défaut définie de façon à bloquer tous les paquets entrants, sortants et retransmis, il est impossible que les utilisateurs internes du LAN, de la passerelle et du pare-feu puissent communiquer entre eux ou de manière externe. Pour autoriser les utilisateurs à effectuer des fonctions relatives au réseau et utiliser des applications réseau, les administrateurs doivent ouvrir certains ports à la communication.

Par exemple, pour autoriser l'accès au port 80 sur le pare-feu, ajoutez la règle suivante :

iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT 

Cela autorise la navigation régulière du Web depuis les sites Web qui communiquent via le port 80. Pour autoriser l'accès aux sites Web sécurisés (tels que https://www.example.com/), vous devez également ouvrir le port 443.

iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT 

ImportantImportant
 

Lors de la création d'un ensemble de règles iptables, il est critique de se souvenir que l'ordre est important. Par exemple, si une chaîne spécifie que tout paquet provenant du sous-réseau local 192.168.100.0/24 n'est pas pris en compte et qu'une autre chaîne est ajoutée (-A) qui autorise les paquets provenant de 192.168.100.13 (qui est à l'intérieur du sous-réseau restreint), cette dernière règle sera alors ignorée. Vous devez tout d'abord définir une règle autorisant 192.168.100.13, puis définir l'autre règle sur le sous-réseau.

Pour insérer une règle de manière arbitraire dans une chaîne existante de règles, utilisez -I, suivi de la chaîne dans laquelle vous souhaitez insérer la règle et un numéro de règle (1,2,3,...,n) où vous souhaitez la mettre. Par exemple :

iptables -I INPUT 1 -i lo -p all -j ACCEPT

La règle est insérée comme première règle dans la chaîne INPUT pour autoriser le trafic de périphérique de loopback local.

Il se peut parfois que vous ayez besoin d'un accès distant au LAN de l'extérieur du LAN. Des services sécurisés, comme SSH, peuvent être utilisés pour des connexions cryptées à distance aux services du LAN. Pour les administrateurs avec des ressources basées sur PPP (comme les banques de modem ou les comptes ISP), l'accès commuté peut être utilisé pour éviter les barrières de pare-feu de manière sécurisée, vu que les connexions par modem se trouvent normalement derrière un pare-feu / une passerelle, étant des connexions directes. Toutefois, pour des utilisateurs distants utilisant des connexions à large bande, des exemptions peuvent être accordées. Vous pouvez configurer iptables de façon à accepter les connexions provenant de clients SSH distants. Par exemple, pour autoriser l'accès SSH à distance, les règles suivantes peuvent être utilisées :

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p udp --sport 22 -j ACCEPT

Il existe d'autres services pour lesquels vous pouvez avoir à définir des règles. Reportez-vous au Guide de référence de Red Hat Enterprise Linux pour obtenir des informations complètes sur iptables et ses diverses options.

Ces règles autorisent l'accès entrant et sortant à un système individuel, comme un seul PC connecté directement à Internet ou à un pare-feu ou une passerelle. Toutefois, elles ne permettent pas aux noeuds situés derrière le pare-feu ou la passerelle d'accéder à ces services. Pour autoriser l'accès LAN à ces services, vous pouvez utiliser NAT avec les règles de filtrage iptables.