Comment faire : Nmap, Wireshark, TCPdump, IPTraf, IPerf, Nast, Ettercap...
 Charge moyenne sur 1mn : 0.29 Charge moyenne sur 5mn : 0.37 Charge moyenne sur 15mn : 0.36




Comment-faire un réseau IPv6 ? Firewall ICMPv6

Firewall ICMPv6 - IPv6

Informations

Dates
  • Création : Vendredi 07 février 2020
  • Publication : Vendredi 07 février 2020
  • Modification : Vendredi 07 février 2020

Partager

Traduire la page

Stephane Huc à changer son nom de domaine - Le nouveau est : http://doc.huc.fr.eu.org

Il nous avait envoyé un tutoriel sur comment filtrer les paquets ICMPv6 depuis IPtables.

Je vous met le script firewall-ipv6.sh ici :

001 #!/bin/bash
002 ### BEGIN INIT INFO
003 # Provides:          firewall-ipv6
004 # Required-Start:    $remote_fs $syslog
005 # Required-Stop:     $remote_fs $syslog
006 # Default-Start:     2 3 4 5
007 # Default-Stop:      0 1 6
008 # Short-Description: Start daemon at boot time
009 # Description:       Enable service provided by daemon.
010 ### END INIT INFO
011 #####-------------------------- VARIABLES ----------------------------######
012 
013 # chemin commande iptables
014 IP6TABLE="/sbin/ip6tables"
015 
016 #####
017 # on fixe les sysctl
018 #####
019 function kernel()
020 {
021         # Don't accept source routed packets.
022         /bin/echo "1" > /proc/sys/net/ipv6/conf/all/accept_source_route
023 
024          # Disable ICMP redirect acceptance.
025         /bin/echo "1" > /proc/sys/net/ipv6/conf/all/accept_redirects
026 
027         # Enable the following lines only if a router!
028         # Enabling IPv6 forwarding disables route-advertisement reception.
029         # A static gateway will need to be assigned.
030         #
031         echo "1" >/proc/sys/net/ipv6/conf/all/forwarding
032         #
033         #End router forwarding rules
034 
035         echo "   "+ KERNEL : [OK]
036 }
037 
038 #####
039 # on accepte tout de et pour "lo" local
040 #####
041 
042 function loopback()
043 {
044         $IP6TABLE -A INPUT  -i lo -j ACCEPT
045         $IP6TABLE -A FORWARD  -i lo -j ACCEPT
046         $IP6TABLE -A FORWARD  -o lo -j ACCEPT
047         $IP6TABLE -A OUTPUT -o lo -j ACCEPT
048 
049         echo "   "+ LOOPBACK : [OK]
050 }
051 
052 #####
053 # on fixe les regles general (DROP||ACCEPT)
054 #####
055 
056 function policy()
057 {
058         $IP6TABLE -P INPUT $1
059         $IP6TABLE -P FORWARD $1
060         $IP6TABLE -P OUTPUT $1
061 
062         echo "   "+ POLICY $1 : [OK]
063 }
064 
065 function policy_rt()
066 {
067         # Filter all packets that have RH0 headers:
068         ip6tables -A INPUT -m rt --rt-type 0 -j $1
069         ip6tables -A FORWARD -m rt --rt-type 0 -j $1
070         ip6tables -A OUTPUT -m rt --rt-type 0 -j $1
071 
072         echo "   "+ POLICY RT $1 : [OK]
073 }
074 
075 #####
076 # Le script de Stephane Huc
077 #####
078 
079 function icmpv6_generique()
080 {
081         # Allow dedicated  ICMPv6 packettypes, do this in an extra chain because we need it everywhere
082         $IP6TABLE -N aICMPs
083         # Destination unreachable
084         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 1 -j ACCEPT # destination-unreachable; Must Not Be Dropped
085         # Packet too big
086         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 2/0 -j ACCEPT # packet too big; Must Not Be Dropped
087         # Time exceeded
088         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 3/0 -j ACCEPT # time exceeded
089         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 3/1 -j ACCEPT # time exceeded
090         # Parameter problem
091         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 4/0 -j ACCEPT # parameter pb: Erroneous header field encountered
092         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 4/1 -j ACCEPT # parameter pb: Unrecognized Next Header Type encountered
093         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 4/2 -j ACCEPT # parameter pb: Unrecognized IPv6 option encountered
094         # Echo Request (protect against flood)
095         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 128/0 -m limit --limit 5/sec --limit-burst 10 -j ACCEPT # ping tool: echo request message
096         # Echo Reply
097         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 129/0 -m limit --limit 5/sec --limit-burst 10 -j ACCEPT # ping tool: echo reply message
098         echo "   "+ ICMPV6 - DEFAULT : [OK]
099 
100         # link-local multicast receive notification mssg (need link-local src address, with hop-limit: 1)
101         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 130/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
102         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 131/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
103         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 132/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
104         echo "   "+ ICMPV6 - LINK-LOCAL : [OK]
105 
106         # address configuration and routeur selection mssg (received with hop limit = 255)
107         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 133/0 -m hl --hl-eq 255 -j ACCEPT # Router Solicitation
108         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 134/0 -s fe80::/64 -m hl --hl-eq 255 -j ACCEPT # Router Advertisement
109         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 135/0 -m hl --hl-eq 255 -j ACCEPT # Neighbor Solicitation
110         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 136/0 -m hl --hl-eq 255 -j ACCEPT # Neighbor Advertisement
111     
112         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 137/0 -j DROP # Redirect Message
113         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 138/0 -j DROP # Router Renumbering (Rechargement du routeur)
114     
115         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 139/0 -j DROP # ICMP Node Information Query
116         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 140/0 -j DROP # ICMP Node Information Response
117     
118         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 141/0 -d ff02::1 -m hl --hl-eq 255 -j ACCEPT # Inverse Neighbor Discovery Solicitation Message
119         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 142/0 -m hl --hl-eq 255 -j ACCEPT # Inverse Neighbor Discovery Advertisement Message
120         echo "   "+ ICMPV6 - ADD CONF '&' ROUTEUR SELECTION : [OK]
121 
122         # link-local multicast receive notification mssg (need link-local src address, with hop-limit: 1)
123         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 143 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
124         # needed for mobylity
125         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 144/0 -j DROP
126         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 145/0 -j DROP
127         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 146/0 -j DROP
128         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 147 -j DROP
129         # SEND certificate path notification mssg (received with hop limit = 255)
130         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 148 -m hl --hl-eq 255 -j ACCEPT # Certification Path Solicitation Message
131         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 149 -m hl --hl-eq 255 -j ACCEPT # Certification Path Advertisement Message
132         # multicast routeur discovery mssg (need link-local src address and hop limit = 1)
133         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 151 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
134         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 152 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
135         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 153 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
136         echo "   "+ ICMPV6 - MULTICAST ROUTEUR DISCOVERY : [OK]
137         #
138         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 200 -j DROP # private experimentation
139         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 201 -j DROP # private experimentation
140         $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 255 -j DROP # expansion error messages ICMPv6
141         echo "   "+ ICMPV6 - EXPERIMENTATION : [OK]
142 }
143 
144 #####-------------------------- START / STOP ----------------------------######
145 case "$1" in
146 
147 start|restart)
148 $0 stop
149 echo "$0 Starting"
150         kernel
151         loopback
152 
153         icmpv6_generique
154 
155         policy_rt DROP
156         policy DROP
157 ;;
158 
159 stop)
160         echo "$0 Stop"
161         $IP6TABLE -F
162  #       $IPTABLE -t nat -F
163         $IP6TABLE -Z
164         $IP6TABLE -X
165         policy ACCEPT
166         ;;
167 status)
168         echo "$0 Status"
169         $IP6TABLE -L -vn
170         ;;
171 
172 *)
173 echo "usage : $0 (status|start|stop|restart)"
174 ;;
175 
176 esac
177 
178 #####-------------------------- START / STOP ----------------------------######

Pour le rendre executable pour l'utilisateur : chmod u+x firewall-ipv6.sh :

Pour executer le script : sh firewall-ipv6.sh (status|start|stop|restart)

Activer le firewall au démarage :

001 ln -s /root/firewall-ipv6.sh /etc/init.d/firewall-ipv6
002 update-rc.d firewall-ipv6 defaults

 

Cordialement,
Romain


<< Comment-faire un réseau IPv6 - part2

Virtual Private Network (VPN) >>


Outils IPv6 :

Liens WikipediA : The Free Encyclopedia

Liens InterNetworks :

Liens Firewall IPv6 : Internet Protocol V6

Liens ZW3B.IPv6 : Internet Protocol V6

Liens qui peuvent aussi vous intéresser :


LAB3W.ORJ Alias de O.Romain JAILLET-RAMEY (NOTIF LVL 7 - 43 ans) LAB3W.ORJ
CONTACT
- Web - STEAM - Monster - LinkedIn - Viadeo - DailyMotion - FACEBOOK - GOOGLE+ - Twitter
DROITS SITES : ZW3B.Admin
INSCRIPTION : Le samedi 06 janvier 1 (2001/01/06 15:31)
CONNEXION : il y a bientôt 11 jours (2020/02/16 18:50)
DERNIERE VISITE : il y a bientôt 11 jours (2020/02/16 18:50)

les réactions des ZW3B.Nautes (0 note)

Ajouter un commentaire

Avatar par default
Pseudo :
Email :
 
Ajouter la chaine de caractères (le code) ci-dessous dans le champ du dessous.
Captcha
Code :





Valid XHTML 1.0 Strict CSS Valide !

ipv6 ready