Ce chapitre d�crit en d�tail les principes de base en mati�re de filtrage de paquets, explique les diff�rences entre ipchains et iptables, pr�sente les diff�rentes options disponibles avec iptables et finalement montre comment maintenir l'int�grit� des r�gles de filtrage entre les d�marrages du syst�me.
18.1. Filtrage de paquets
Dans le noyau Linux est int�gr�e la capacit� de filtrer des paquets, permettant � certains d'entre eux d'�tre re�us par le syst�me ou de le traverser alors que d'autres sont bloqu�s. Le netfilter du noyau contient trois tables ou listes de r�gles int�gr�es, � savoir�:
filter — Table par d�faut pour le traitement des paquets r�seau.
nat — Table utilis�e pour modifier les paquets qui cr�ent une nouvelle connexion et utilis�e pour la traduction d'adresses r�seau (ou NAT de l'anglais Network Address Translation).
mangle — Table utilis�e pour la modification de types sp�cifiques de paquets.
| Astuce |
---|
| Outre ses tables int�gr�es, des tables sp�cifiques peuvent �tre cr��es et enregistr�es dans le r�pertoire /lib/modules/<kernel-version>/kernel/net/ipv4/netfilter/ o� <kernel-version> correspond au num�ro de version du noyau. |
Chacune de ces tables comporte � son tour un groupe de cha�nes int�gr�es qui correspondent aux actions effectu�es par netfilter sur le paquet.
Les cha�nes pour la table filter sont les suivantes�:
INPUT — Cette cha�ne s'applique aux paquets cibl�s pour l'h�te.
OUTPUT — Cette cha�ne s'applique aux paquets r�seau g�n�r�s localement.
FORWARD — Cette cha�ne s'applique aux paquets rout�s � travers l'h�te.
Les cha�nes pour la table nat sont les suivantes�:
PREROUTING — Cette cha�ne modifie les paquets lorsqu'ils arrivent.
OUTPUT — Cette cha�ne modifie des paquets r�seau g�n�r�s localement avant qu'ils ne soient envoy�s.
POSTROUTING — Cette cha�ne modifie les paquets avant qu'ils ne soient envoy�s.
Les cha�nes int�gr�es pour la table mangle sont les suivantes�:
INPUT — Cette cha�ne modifie des paquets r�seau cibl�s pour l'h�te.
OUTPUT — Cette cha�ne modifie des paquets r�seau g�n�r�s localement avant qu'ils ne soient envoy�s.
FORWARD — Cette cha�ne modifie des paquets r�seau rout�s � travers l'h�te.
PREROUTING — Cette cha�ne modifie les paquets r�seau entrants avant qu'ils ne soient rout�s.
POSTROUTING — Cette cha�ne modifie les paquets avant qu'ils ne soient envoy�s.
Chaque paquet r�seau re�u ou envoy� par un syst�me Linux est soumis � au moins une r�gle. Un paquet peut toutefois �tre soumis � plusieurs r�gles � l'int�rieur de chaque table avant d'arriver � la fin de la cha�ne. La structure et le r�le de ces r�gles peuvent changer, mais elles visent g�n�ralement � identifier un paquet en provenance ou � destination d'une adresse IP donn�e ou d'un groupe d'adresses, lors de l'utilisation d'un protocole et d'un service r�seau particuliers.
| Remarque |
---|
| N'utilisez pas de noms de domaines pleinement qualifi�s dans les r�gles de pare-feu qui sont enregistr�es dans les fichiers /etc/sysconfig/iptables ou /etc/sysconfig/ip6tables. Dans l'exemple ci-dessous, iptables -A FORWARD -s example.com -i eth0 -j DROP example.com n'est pas valide parce que le service iptables est lanc� au d�marrage avant tout DNS associ� aux services, ce qui entra�ne un message d'erreur. Seules des adresses IP sont valides dans la cr�ation de r�gles de pare-feu. |
Ind�pendamment de leur destination, lorsque les paquets correspondent � une r�gle pr�cise pr�sente dans une des tables, ils se voient assigner une cible ou font l'objet d'une certaine action. Si la r�gle sp�cifie une cible de type ACCEPT pour un paquet v�rifi�, il �vite les autres contr�les de r�gles et peut proc�der vers sa destination. En revanche, si une r�gle sp�cifie une cible de type DROP, le paquet est abandonn� et se voit refuser l'acc�s au syst�me�; rien n'est envoy� en retour � l'h�te qui a exp�di� le paquet. Si une r�gle sp�cifie une cible de type QUEUE, le paquet est mis en attente dans l'espace-utilisateur (aussi appel� user-space). Finalement, si une r�gle sp�cifie une cible de type REJECT en option, le paquet est "abandonn�" par rejet et dans ce cas, un "paquet d'erreur" est envoy� en retour � l'exp�diteur.
Chaque cha�ne dispose d'une politique par d�faut pour accepter (ACCEPT), abandonner (DROP), rejeter (REJECT) ou mettre en attente (QUEUE). Si aucune des r�gles pr�sentes dans la cha�ne ne s'applique au paquetage, celui-ci est trait� en fonction de la politique par d�faut de la cha�ne.
La commande iptables permet de configurer ces tables et d'en cr�er de nouvelles si n�cessaire.