Précis et concis L e s i p t a b l e s L I N U X Pare-feux, NAT & Accounting IP De Gregor N. Purdy Traduction de Pejvan Beigui
Les iptables LINUX Précis et concis
Gregor N. PURDY Les iptables LINUX Précis et concis Traduction de Pejvan Beigui Digit Books Éditeur de livres numériques Brest infos@digitbooks.fr http://www.digitbooks.fr
Digit Books, 2009, pour la traduction française ISBN : 978-2-8150-0125-0 Prix : 9 O Reilly Media, 2004 L édition originale de ce livre a été publiée aux États-Unis par O Reilly Media sous le titre LINUX iptables Pocket Reference, ISBN 0-596-00569-5. Couverture : Yves Buraud Illustration de «Sans dessus dessous» de Jules Verne (1888) par Léon Benett http://www.digitbooks.fr/catalogue/9782815001250.html Les programmes figurant dans ce livre ont pour but d illustrer les sujets traités. Il n est donné aucune garantie quant à leur fonctionnement une fois compilés, assemblés ou interprétés dans le cadre d une utilisation professionnelle ou commerciale. Toute représentation ou reproduction, intégrale ou partielle, faite sans le consentement de l auteur, de ses ayants droit, ou ayants cause, est illicite (loi du 11 mars 1957, alinéa 1er de l article 40). Cette représentation ou reproduction, par quelque procédé que ce soit, constituerait une contrefaçon sanctionnée par les articles 425 et suivants du Code pénal. La loi du 11 mars 1957 autorise uniquement, aux termes des alinéas 2 et 3 de l article 41, les copies ou reproductions strictement réservées à l usage privé du copiste et non destinées à une utilisation collective d une part et, d autre part, les analyses et les courtes citations dans un but d exemple et d illustration.
Table des matières Introduction 1 Un exemple de commande 2 Concepts 2 Applications 10 Configurer iptables 12 Suivi de connexion 16 Comptabilité 18 Traduction d adresses réseau 19 Source NAT et mascarade 20 Destination NAT 21 Mandataires transparents 22 Distribution et équilibrage de charge 22 Pare-feu à état et sans état 23 Outils complémentaires 23 Référence de la commande iptables 24 Obtenir de l aide 26 Sous-commandes d iptables 26 Correspondances et cibles dans iptables 27 Correspondances pour IPv4 (Internet Protocol) 28 ACCEPT, cible 28 ah, correspondance 28 connmark, correspondance 29 CONNMARK, cible 29 conntrack, correspondance 30 DNAT, cible 31 DROP, cible 32 dscp, correspondance 32 DSCP, cible 35 v
Les iptables Linux précis & concis ecn, correspondance 36 ECN, cible 37 esp, correspondance 37 FTOS, cible 38 helper, correspondance 39 icmp, correspondance 39 ip (Internet Protocol Ipv4), correspondances 44 iplimit, correspondance 51 ipv4options, correspondance 52 IPV4OPTSSTRIP, cible 53 length, correspondance 53 limit, correspondance 54 LOG, cible 55 mac, correspondance 57 mark, correspondance 58 MARK, cible 59 MASQUERADE, cible 60 multiport, correspondance 60 NETLINK, cible 61 NETMAP, cible 62 nth, correspondance 63 owner, correspondance 64 pkttype, correspondance 65 pool, correspondance 66 POOL, cible 67 psd, correspondance (Port Scan Detector) 67 QUEUE, cible 69 quota, correspondance 69 random, correspondance 70 realm, correspondance 70 recent, correspondance 70 record-rpc, correspondance 72 REDIRECT, cible 73 REJECT, cible 73 RETURN, cible 75 ROUTE, cible 75 vi
Table des matières SAME, cible 75 SNAT, cible 76 state, correspondance 77 string, correspondance 78 tcp, correspondance 78 tcpmss, correspondance 85 TCPMSS, cible 86 time, correspondance 86 tos, correspondance 87 TOS, cible 88 ttl, correspondance 88 TTL, cible 89 udp, correspondance 90 ULOG, cible 90 unclean, correspondance 91 Référence des commandes 93 iptables-restore 93 iptables-save 94 Index 95 vii
Ce livre est dédié à mon frère W. Scott Purdy (1969-1995)
Les iptables Linux précis & concis Introduction Le sous-système de traitement de paquets réseau du noyau Linux s appelle Netfilter. La commande employée pour le configurer est iptables. Cet ouvrage couvre le jeu d outils iptables (version 1.2. 7a) utilisé par les fonctions Netfilter du noyau Linux dans la version 2.4, mais il traite également de la version 2.6. En raison du lien important qui existe entre Netfilter et iptables, nous retiendrons le terme iptables tout au long de ce livre pour les deux termes. Des tableaux regroupent, en fonction de leur rôle respectif, les différentes règles de traitement de paquets d iptables (filtrage de paquets, traduction d adresses réseau ou tout autre traitement sur les paquets). Chacun de ces tableaux possède une chaîne (une suite) de règles de traitement. Les règles sont formées d une partie correspondances (utilisées pour déterminer les paquets sur lesquels la règle doit s appliquer) et d une partie cible (qui précise le sort des paquets correspondants). iptables opère au niveau de la couche OSI 3 (c est-à-dire la couche réseau). Pour la couche de niveau 2 (Liaison), on se tournera vers d autres technologies, telles qu ebtables (Ethernet Bridge Tables). Le lecteur pourra se reporter à la page http://ebtables. sourceforge.net/ pour de plus amples informations.
Les iptables Linux précis & concis Un exemple de commande Voici un exemple de commande iptables : iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.3:8080 Le tableau 1 fournit les explications nécessaires à la compréhension de cette commande. Tableau 1. Explication détaillée du fonctionnement de la commande iptables Composant Description -t nat Opère sur la table du nat (traduction d adresses réseau)... -A PREROUTING... en ajoutant la règle suivante à sa chaîne de pré-routage (PREROUTING). -i eth1 À appliquer aux paquets arrivant sur l interface réseau eth1... -p tcp... qui sont au format tcp (protocole TCP/IP) --dport 80... et qui sont destinés au port local 80. -j DNAT Saute vers la cible DNAT... --to-destination 192.168.1.3:8080 Concepts iptables définit cinq «points d entrée» vers le système de traitement des paquets du noyau : pré-routage (PREROUTING), entrée (INPUT), transfert (FORWARD), post-routage (POSTROUTING) et sortie (OUTPUT). Les chaînes définies par défaut sont attachées à ces points d entrée et vous pouvez ajouter des règles à n importe lequel de ces points. Chaque règle vous permet de modifier ou de surveiller le flux des paquets. 2... et change l adresse de destination en 192.168.1.3 et le port en 8080. Il est courant de parler de «la chaîne de pré-routage de la table NAT», qui semble indiquer que les chaînes appartiennent aux tables. Toutefois, les chaînes et les tables ne