====== iptables : pare-feu, routage et filtrage de paquets ======
* Objet : Fonctionement général d'iptables et exemples d'utilisation
* Niveau requis : {{tag>avisé}}
* Commentaires : //iptables est une interface permettant de configurer le filtrage des paquets par le noyau Linux, il permet donc d'établir des firewall, de la redirection de ports, etc. //
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)
* Suivi : {{tag>à-compléter}}
* Création par [[user>captnfab]] 04/08/2013
* Compléments par [[user>paskal]] 22/10/2015
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?pid=16069 | ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
==== ip6table ====
**Laurent1** : //Les commandes ip6tables pour sécuriser un serveur en ligne sont-elles les mêmes que les commandes iptables ou bien existerait-il quelque subtilité ?//
**root@rkn** : presque les mêmes, juste un 6 en plus :
#! /bin/sh
ip6tables -t filter -P INPUT DROP
ip6tables -t filter -P OUTPUT DROP
ip6tables -t filter -P FORWARD DROP
ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -t filter -A INPUT -i lo -j ACCEPT
ip6tables -t filter -A OUTPUT -o lo -j ACCEPT
ip6tables -t filter -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT
ip6tables -t filter -A OUTPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT
ip6tables -t filter -A OUTPUT -p icmpv6 --icmpv6-type echo-reply -j ACCEPT
**raleur** : Dans les grandes lignes oui, mais il y a quelques subtilités.
- Le protocole ICMP est remplacé par ICPMv6. Les noms des types et codes communs sont identiques (destination-unreachable, time-exceeded...) mais les numéros sont différents donc mieux vaut utiliser les noms. Le code fragmentation-needed du type destination-unreachable devient un type séparé packet-too-big.
- Les requêtes et réponses ARP sont remplacées par un sous-ensemble de types ICMPv6 qui sont donc filtrés par ip6tables (alors que iptables ne filtre pas les paquets ARP, protocole distinct d'IPv4) :
- neighbor-solicitation
- neighbor-advertisement
- router-solicitation
- router-advertisement
- La gestion de la fragmentation est différente en ICMPv6 car un routeur ne doit pas fragmenter un paquet ICMPv6 trop gros mais renvoyer systématiquement un message ICMPv6 packet-too-big. Mais la gestion des fragments et du réassemblage dans netfilter a changé au fil des versions du noyau. Attention donc, dans certaines chaînes ip6tables peut voir les fragments et dans d'autres le paquet reassemble, ce qui peut avoir un impact sur les règles de filtrage (seul le premier fragment contient les ports source et destination).
Bloquer ces messages peut empêcher toute connectivité IPv6. Ils ne sont pas gérés par le suivi d'état de connexion (conntrack) et ont l'état UNTRACKED.
Sources sur le forum : https://debian-facile.org/viewtopic.php?id=23658
//Merci à //**Laurent1**//, //**root@rkn**// et //**raleur**// pour ces informations actualisées.// :-)
===== Introduction =====
Iptables est une interface en ligne de commande permettant de configurer Netfilter, le framework implémentant le pare-feu au sein du noyau Linux.\\
Il offre davantage de possibilités que [[:doc:systeme:ufw]].
Pour une bonne compréhension d'iptables, il est conseillé de connaître auparavant le principe de fonctionnement des protocoles TCP et UDP.
===== Installation =====
Ordinairement, iptables est installé d'origine. Dans le cas contraire :
apt-get install iptables
===== Exemples d'utilisation =====
* [[doc:reseau:iptables-pare-feu-pour-un-client|iptables: un pare-feu pour un client]]
* [[doc:reseau:iptables-pare-feu-pour-une-passerelle|iptables: un pare-feu pour une passerelle]]
===== Références =====
* [[http://olivieraj.free.fr/fr/linux/information/firewall/|Firewall et sécurité d'un réseau personnel sous Linux]]
* [[http://irp.nain-t.net/doku.php|L'internet rapide et permanent]]
* [[http://www.admin-debian.com/securite/iptables-et-netfilter/|IPtables et NetFilter, solution de pare-feu]]
* [[http://www.admin-debian.com/securite/commandes-iptables/|Les commandes iptables]]
* [[https://www.isalo.org/wiki.debian-fr/Netfilter/Iptables_introduction|Netfilter/Iptables introduction]]
* [[https://doc.ubuntu-fr.org/iptables|Iptables]]
===== Liens utiles =====
En anglais :
* [[https://wiki.debian.org/DebianFirewall|DebianFirewall]], sur le wiki Debian.org
* [[https://wiki.debian.org/iptables|iptables]], sur le wiki Debian.org
* [[http://www.netfilter.org/documentation/HOWTO/packet-filtering-HOWTO.html| How To Iptables]], sur netfilter.org
* [[http://www.netfilter.org/documentation/|Documentation Multilingue de Netfilter et Iptables]], sur netfilter.org
En français :
* [[http://formation-debian.via.ecp.fr/firewall.html|Pare-feu et partage de connexion Internet]], sur formation-debian.via.ecp.fr
* [[http://www.netfilter.org/documentation/HOWTO/fr/packet-filtering-HOWTO-7.html|Utiliser Iptables]], sur netfilter.org
* [[http://memoire-grise-liberee.fr.eu.org/IpTables/|Linux : IpTables !]], sur "Mémoire Grise Libérée"
* [[http://www.inetdoc.net/guides/iptables-tutorial/|Iptables Tutorial]], sur inetdoc.net
* [[http://www.it-connect.fr/supprimer-une-regle-precise-dans-iptables/|Supprimer une règle précise dans IPtables]], sur IT-Connect