Iptables Tutorial 1.2.2

Oskar Andreasson


     
    

Marc Blanc

Traducteur


       
     

Publié par

Philippe Latu


      
     

La permission est accordée de copier, distribuer et/ou modifier ce document selon les termes de la "GNU Free Ducomentation License", version 1.1; en précisant les sections "Introduction" et toutes les sous-sections, avec les en-têtes "Auteur: Oskar Andreasson". Une copie de la licence est inclue dans la section intitulée "GNU Free Documantation License".

Tous les scripts de ce tutoriel sont couverts par la GNU General Public License. Les scripts sont de source libre; vous pouvez les redistribuer et/ou les modifier selon les termes de la GNU General Public License publiée par la "Free Software Foundation", version 2.

Ces scripts sont distribués dans l'espoir qu'ils seront utiles, mais SANS AUCUNE GARANTIE; sans même la garantie implicite qu'ils soient VENDABLES ou une QUELCONQUE APTITUDE POUR UN PROPOS PARTICULIER. Voir la GNU General Public License pour plus de détails.

Vous devriez avoir une copie de la GNU General Public License dans ce tutoriel, dans la section intitulée "GNU General Public License"; si ce n'est pas le cas, écrivez à la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.


Dédicaces

Je voudrais dédier ce document à ma merveilleuse soeur pour m'avoir inspiré et donné ses conseils en retour. Elle est une source de joie et un rayon de soleil quand j'ai besoin d'elle. Merci !

Un mot particulier pour Ninel pour m'avoir toujours encouragé dans mon travail et avoir pris soin de moi quand j'en avais le plus besoin. Merci !

Ensuite, j'aimerais dédicacer ce travail à tous les courageux développeurs et mainteneurs de Linux. Ce sont eux qui font exister ce fabuleux système d'exploitation.

Table des matières

À propos de l'auteur
Exploration de ce document
Préalables
Conventions utilisées dans ce document
1. Introduction
1.1. Motivations
1.2. Contenu
1.3. Termes spécifiques
1.4. Au prochain chapitre
2. Rappel TCP/IP
2.1. Couches TCP/IP
2.2. Caractéristiques IP
2.3. En-Têtes IP
2.4. Caractéristiques TCP
2.5. En-têtes TCP
2.6. Caractéristiques UDP
2.7. En-têtes UDP
2.8. Caractéristiques ICMP
2.9. En-têtes ICMP
2.9.1. Écho requête/réponse ICMP
2.9.2. Destination Injoignable ICMP
2.9.3. Coupure de source
2.9.4. Redirection
2.9.5. TTL égale 0
2.9.6. Paramètre problème
2.9.7. Horodatage requête/réponse
2.9.8. Requête/réponse information
2.10. Caractéristiques SCTP
2.10.1. Initialisation et association
2.10.2. Envoi de données et contrôle de session
2.10.3. Arrêt et abandon
2.11. En-têtes SCTP
2.11.1. Format d'en-têtes génériques SCTP
2.11.2. En-tête communs et génériques SCTP
2.11.3. Bloc SCTP ABORT
2.11.4. Bloc SCTP COOKIE ACK
2.11.5. Bloc SCTP COOKIE ECHO
2.11.6. Bloc SCTP DATA
2.11.7. Bloc SCTP ERROR
2.11.8. Bloc SCTP HEARTBEAT
2.11.9. Bloc SCTP HEARTBEAT ACK
2.11.10. Bloc SCTP INIT
2.11.11. Bloc SCTP INIT ACK
2.11.12. Bloc SCTP SACK
2.11.13. Bloc SCTP SHUTDOWN
2.11.14. Bloc SCTP SHUTDOWN ACK
2.11.15. Bloc SCTP SHUTDOWN COMPLETE
2.12. Destination TCP/IP par routage
2.13. Prochaine étape
3. Introduction au filtrage IP
3.1. Qu'est-ce qu'un filtre IP ?
3.2. Termes et expressions du filtrage IP
3.3. Comment configurer un filtre IP ?
3.4. Au prochain chapitre
4. Introduction à la traduction d'adresse réseau
4.1. Comment le Nat est utilisé, termes et expressions de base
4.2. Divergences sur l'utilisation du NAT
4.3. Exemple d'une machine NAT en théorie
4.3.1. Ce qui est nécessaire pour une machine NAT
4.3.2. Emplacement des machines NAT
4.3.3. Comment placer les proxies ?
4.3.4. Étape finale pour votre machine NAT
4.4. Prochain chapitre
5. Préparatifs
5.1. Obtenir Iptables
5.2. Configuration du noyau
5.3. Configuration du domaine utilisateur
5.3.1. Compilation des applications
5.3.2. Installation sur Red Hat 7.1
5.4. Prochain chapitre
6. Traversée des tables et des chaînes
6.1. Généralités
6.2. La table Mangle
6.3. La table Nat
6.4. La table Raw
6.5. La table Filter
6.6. Chaînes utilisateurs spécifiques
6.7. Prochain chapitre
7. La machine d'état
7.1. Introduction
7.2. Les entrées de conntrack
7.3. États de l'espace utilisateur
7.4. Connexions TCP
7.5. Connexions UDP
7.6. Connexions ICMP
7.7. Connexions par défaut
7.8. Connexions non tracées et la table raw
7.9. Protocoles complexes et traçage de connexion
7.10. Chapitre suivant
8. Sauvegarde et restauration des tables de règles importantes
8.1. Considérations de vitesse
8.2. Inconvénients avec restore
8.3. iptables-save
8.4. iptables-restore
8.5. Prochain chapitre
9. Création d'une règle
9.1. Bases de la commande iptables
9.2. Les tables
9.3. Commandes
9.4. Chapitre suivant
10. Correspondances Iptables
10.1. Correspondances génériques
10.2. Correspondances implicites
10.2.1. Correspondances TCP
10.2.2. Correspondances UDP
10.2.3. Correspondances ICMP
10.2.4. Correspondances SCTP
10.3. Correspondances explicites
10.3.1. Correspondance addrtype
10.3.2. Correspondance AH/ESP
10.3.3. Correspondance Comment
10.3.4. Correspondance Connmark
10.3.5. Correspondance Conntrack
10.3.6. Correspondance Dscp
10.3.7. Correspondance Ecn
10.3.8. Correspondance Hashlimit
10.3.9. Correspondance Helper
10.3.10. Correspondance de plage IP
10.3.11. Correspondance Length
10.3.12. Correspondance Limit
10.3.13. Correspondance Mac
10.3.14. Correspondance Mark
10.3.15. Correspondance Multiport
10.3.16. Correspondance Owner
10.3.17. Correspondance type de paquet
10.3.18. Correspondance Realm
10.3.19. Correspondance Recent
10.3.20. Correspondance State
10.3.21. Correspondance Tcpmss
10.3.22. Correspondance Tos
10.3.23. Correspondance Ttl
10.3.24. Correspondance Unclean
10.4. Prochain chapitre
11. Iptables cibles et sauts
11.1. Cible ACCEPT
11.2. Cible CLASSIFY
11.3. Cible CLUSTERIP
11.4. Cible CONNMARK
11.5. Cible CONNSECMARK
11.6. Cible DNAT
11.7. Cible DROP
11.8. Cible DSCP
11.9. Cible ECN
11.10. Options de la cible LOG
11.11. Cible MARK
11.12. Cible MASQUERADE
11.13. Cible MIRROR
11.14. Cible NETMAP
11.15. Cible NFQUEUE
11.16. Cible NOTRACK
11.17. QUEUE target
11.18. Cible REDIRECT
11.19. Cible REJECT
11.20. Cible RETURN
11.21. Cible SAME
11.22. Cible SECMARK
11.23. Cible SNAT
11.24. Cible TCPMSS
11.25. Cible TOS
11.26. Cible TTL
11.27. Cible ULOG
11.28. Prochain chapitre
12. Déboguer vos scripts
12.1. Déboguer, une nécessité
12.2. Débogage en Bash
12.3. Outils système pour le débogage
12.4. Débogage d'Iptables
12.5. Autres outils de débogage
12.5.1. Nmap
12.5.2. Nessus
12.6. Prochain chapitre
13. Fichier rc.firewall
13.1. exemple de rc.firewall
13.2. Explication du rc.firewall
13.2.1. Options de configuration
13.2.2. Chargement initial des modules supplémentaires
13.2.3. Réglage du proc
13.2.4. Déplacement des règles vers les différentes chaînes
13.2.5. Mise en place des actions par défaut
13.2.6. Implémentation des chaînes utilisateur dans la table filter
13.2.6.1. La chaîne bad_tcp_packets
13.2.6.2. La chaîne allowed
13.2.6.3. La chaîne TCP
13.2.6.4. La chaîne UDP
13.2.6.5. La chaîne ICMP
13.2.7. Chaîne INPUT
13.2.8. Chaîne FORWARD
13.2.9. Chaîne OUTPUT
13.2.10. Chaîne PREROUTING de la table nat
13.2.11. Démarrage de SNAT et de la chaîne POSTROUTING
13.3. Chapitre suivant
14. Exemples de scripts
14.1. Structure du script rc.firewall.txt
14.1.1. La structure
14.2. rc.firewall.txt
14.3. rc.DMZ.firewall.txt
14.4. rc.DHCP.firewall.txt
14.5. rc.UTIN.firewall.txt
14.6. rc.test-iptables.txt
14.7. rc.flush-iptables.txt
14.8. Limit-match.txt
14.9. Pid-owner.txt
14.10. Recent-match.txt
14.11. Sid-owner.txt
14.12. Ttl-inc.txt
14.13. Iptables-save ruleset
14.14. Prochain chapitre
15. Interfaces utilisateur graphiques pour Iptables/netfilter
15.1. fwbuilder
15.2. Projet Turtle Firewall
15.3. Integrated Secure Communications System
15.4. IPMenu
15.5. Easy Firewall Generator
15.6. Partie suivante
16. Produits commerciaux basés sur Linux, iptables et netfilter
16.1. Ingate Firewall 1200
16.2. Ensuite
A. Explication détaillée des commandes spéciales
A.1. Afficher votre table de règles
A.2. Mise à jour et vidange des tables
B. Problèmes et questions courants
B.1. Problèmes de chargement des modules
B.2. Paquets NEW non-SYN
B.3. SYN/ACK et les paquets NEW
B.4. Fournisseurs d'accès Internet qui utilisent des adresses IP assignées
B.5. Laisser les requêtes DHCP traverser iptables
B.6. Problèmes avec le DCC de mIRC
C. Types ICMP
D. Options TCP
E. Autres ressources et liens
F. Remerciements
G. Historique des versions
H. GNU Free Documentation License
0. PREAMBLE
1. APPLICABILITY AND DEFINITIONS
2. VERBATIM COPYING
3. COPYING IN QUANTITY
4. MODIFICATIONS
5. COMBINING DOCUMENTS
6. COLLECTIONS OF DOCUMENTS
7. AGGREGATION WITH INDEPENDENT WORKS
8. TRANSLATION
9. TERMINATION
10. FUTURE REVISIONS OF THIS LICENSE
How to use this License for your documents
I. GNU General Public License
0. Preamble
1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
2. How to Apply These Terms to Your New Programs
J. Exemple de scripts code-base
J.1. Exemple rc.firewall script
J.2. Exemple rc.DMZ.firewall script
J.3. Exemple rc.UTIN.firewall script
J.4. Exemple rc.DHCP.firewall script
J.5. Exemple rc.flush-iptables script
J.6. Exemple rc.test-iptables script
Index

Liste des tableaux

2.1. Types SCTP
2.2. Causes d'erreur
2.3. Paramètres variables INIT
2.4. Variables des paramètres INIT ACK
6.1. Hôte local destinataire (votre propre machine)
6.2. Hôte local source (votre propre machine)
6.3. Paquets redirigés
7.1. États de l'espace utilisateur
7.2. États internes
7.3. Support des protocoles complexes
9.1. Tables
9.2. Commandes
9.3. Options
10.1. Correspondances génériques
10.2. Correspondances TCP
10.3. Correspondances UDP
10.4. Correspondances ICMP
10.5. Correspondances SCTP
10.6. Types adresse
10.7. Options de la correspondance Addrtype
10.8. Options de la correspondance AH
10.9. Options de la correspondance ESP
10.10. Options de la correspondance Comment
10.11. Options de la correspondance Connmark
10.12. options de la correspondance Conntrack
10.13. Options de la correspondance Dscp
10.14. Options de la correspondance Ecn
10.15. Champ ECN dans IP
10.16. Options de la correspondance Hashlimit
10.17. Options de la correspondance Helper
10.18. Options de la correspondance de plage IP
10.19. Options de la correspondance Length
10.20. Options de la correspondance Limit
10.21. Options de la correspondance Mac
10.22. Options de la correspondance Mark
10.23. Options de la correspondance Multiport
10.24. Options de la correspondance Owner
10.25. Options de la correspondance type de paquet
10.26. Options de la correspondance Realm
10.27. Options de la correspondance Recent
10.28. Options de la correspondance State
10.29. Options de la correspondance Tcpmss
10.30. Options de la correspondance Tos
10.31. Options de la correspondance Ttl
11.1. Options de la cible CLASSIFY
11.2. Options de la cible CLUSTERIP
11.3. Options de la cible CONNMARK
11.4. Options de la cible CONNSECMARK
11.5. Options de la cible DNAT
11.6. Options de la cible DSCP
11.7. Options de la cible ECN
11.8. Options de la cible LOG
11.9. Options de la cible MARK
11.10. Options de la cible MASQUERADE
11.11. Options de la cible NETMAP
11.12. Options de la cible NFQUEUE
11.13. Options de la cible REDIRECT
11.14. Options de la cible REJECT
11.15. Options de la cible SAME
11.16. Options de la cible SECMARK
11.17. Options de la cible SNAT
11.18. Options de la cible TCPMSS
11.19. Options de la cible TOS
11.20. Options de la cible TTL
11.21. Options de la cible ULOG
C.1. ICMP types
D.1. TCP Options