Différences entre les versions de « Ip6tables »

De wiki jackbot
Aller à la navigation Aller à la recherche
 
Ligne 71 : Ligne 71 :
*https://connect.ed-diamond.com/GNU-Linux-Magazine/GLMFHS-041/Netfilter-et-le-filtrage-du-protocole-IPv6
*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://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 :