« Ip6tables » : différence entre les versions
(Page créée avec « Category:InformatiqueCategory:SecuriteCategory:Administration Il s'agit de la même chose que [https://wiki.jackbot.fr/index.php?title=Iptables iptables] pour… ») |
Aucun résumé des modifications |
||
(4 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 2 : | Ligne 2 : | ||
Il s'agit de la même chose que [https://wiki.jackbot.fr/index.php?title=Iptables iptables] pour le protocole IPv6. | Il s'agit de la même chose que [https://wiki.jackbot.fr/index.php?title=Iptables iptables] pour le protocole IPv6. | ||
'''Attention !!''' Le changement des règles de filtrage peut dans certains cas engendrer une coupure de connexion. Il est judicieux de ne pas les inclure tout de suite dans un script exécuté au démarrage, mais de les tester au moins une fois avant. Il ne faudrait pas se tirer une balle dans le pied en se coupant sa propre connexion ! | |||
Comme d'habitude pour des raisons de sécurité, la première étape consiste à tout bloquer. | |||
#purges de toutes les règles | #purges de toutes les règles | ||
Ligne 15 : | Ligne 17 : | ||
ip6tables -X OUTPUT | ip6tables -X OUTPUT | ||
ip6tables -X | ip6tables -X | ||
#pareil pour la table nat et mangle | #pareil pour la table nat et mangle | ||
ip6tables -t nat -F | ip6tables -t nat -F | ||
Ligne 26 : | Ligne 28 : | ||
ip6tables -P FORWARD DROP | ip6tables -P FORWARD DROP | ||
ip6tables -P OUTPUT DROP | ip6tables -P OUTPUT DROP | ||
Les règles suivantes vont permettre de ne pas casser les connexions déjà établie et autoriser le loopback. | |||
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT | |||
ip6tables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT | |||
ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT | |||
ip6tables -A INPUT -i lo -j ACCEPT # trafic local | |||
ip6tables -A OUTPUT -o lo -j ACCEPT # trafic local | |||
Maintenant, on jette les paquets qualifiés d'invalide : | |||
ip6tables -A INPUT -m state --state INVALID -j DROP | |||
ip6tables -A OUTPUT -m state --state INVALID -j DROP | |||
ip6tables -A FORWARD -m state --state INVALID -j DROP | |||
Le protocole ICMPv6 va se charger de découvrir ses voisins, il est donc nécessaire pour un routeur d'autoriser certaines entrées : | |||
ip6tables -I INPUT -p icmpv6 --icmpv6-type 133/0 -j ACCEPT | |||
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 134/0 -j ACCEPT | |||
Toujours dans le cas d'un routeur, pour vérifier l'unicité des adresses : | |||
# Multicast Listener Report Message v2 | |||
ip6tables -A INPUT -p icmpv6 --icmpv6-type 143/0 -j ACCEPT | |||
# Neighbor Solicitation/Advertisement | |||
ip6tables -A INPUT -p icmpv6 --icmpv6-type 135/0 -j ACCEPT | |||
ip6tables -A INPUT -p icmpv6 --icmpv6-type 136/0 -j ACCEPT | |||
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 135/0 -j ACCEPT | |||
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 136/0 -j ACCEPT | |||
Règles pour le ping : | |||
#Ping | |||
ip6tables -A INPUT -p icmpv6 --icmpv6-type 128/0 -j ACCEPT | |||
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 128/0 -j ACCEPT | |||
ip6tables -A FORWARD -p icmpv6 --icmpv6-type 128/0 -j ACCEPT | |||
'''Source''' : | |||
*https://connect.ed-diamond.com/GNU-Linux-Magazine/GLMFHS-041/Netfilter-et-le-filtrage-du-protocole-IPv6 | |||
*https://resources.sei.cmu.edu/tools/downloads/vulnerability-analysis/assets/IPv6/ip6tables_rules.txt | |||
*https://debian-facile.org/viewtopic.php?id=24227 |
Version actuelle datée du 26 juillet 2021 à 13:05
Il s'agit de la même chose que iptables pour le protocole IPv6.
Attention !! Le changement des règles de filtrage peut dans certains cas engendrer une coupure de connexion. Il est judicieux de ne pas les inclure tout de suite dans un script exécuté au démarrage, mais de les tester au moins une fois avant. Il ne faudrait pas se tirer une balle dans le pied en se coupant sa propre connexion !
Comme d'habitude pour des raisons de sécurité, la première étape consiste à tout bloquer.
#purges de toutes les règles ip6tables -F INPUT ip6tables -F FORWARD ip6tables -F OUTPUT ip6tables -F #suppression des chaînes écrites par l'utilisateur ip6tables -X INPUT ip6tables -X FORWARD ip6tables -X OUTPUT ip6tables -X #pareil pour la table nat et mangle ip6tables -t nat -F ip6tables -t nat -X ip6tables -t mangle -F ip6tables -t mangle -X #changement de la politique des chaînes INPUT, FORWARD et OUTPUT, qui sera DROP par défaut ip6tables -P INPUT DROP ip6tables -P FORWARD DROP ip6tables -P OUTPUT DROP
Les règles suivantes vont permettre de ne pas casser les connexions déjà établie et autoriser le loopback.
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ip6tables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT ip6tables -A INPUT -i lo -j ACCEPT # trafic local ip6tables -A OUTPUT -o lo -j ACCEPT # trafic local
Maintenant, on jette les paquets qualifiés d'invalide :
ip6tables -A INPUT -m state --state INVALID -j DROP ip6tables -A OUTPUT -m state --state INVALID -j DROP ip6tables -A FORWARD -m state --state INVALID -j DROP
Le protocole ICMPv6 va se charger de découvrir ses voisins, il est donc nécessaire pour un routeur d'autoriser certaines entrées :
ip6tables -I INPUT -p icmpv6 --icmpv6-type 133/0 -j ACCEPT ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 134/0 -j ACCEPT
Toujours dans le cas d'un routeur, pour vérifier l'unicité des adresses :
# Multicast Listener Report Message v2 ip6tables -A INPUT -p icmpv6 --icmpv6-type 143/0 -j ACCEPT # Neighbor Solicitation/Advertisement ip6tables -A INPUT -p icmpv6 --icmpv6-type 135/0 -j ACCEPT ip6tables -A INPUT -p icmpv6 --icmpv6-type 136/0 -j ACCEPT ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 135/0 -j ACCEPT ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 136/0 -j ACCEPT
Règles pour le ping :
#Ping ip6tables -A INPUT -p icmpv6 --icmpv6-type 128/0 -j ACCEPT ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 128/0 -j ACCEPT ip6tables -A FORWARD -p icmpv6 --icmpv6-type 128/0 -j ACCEPT
Source :