ZW3B :-: API Client * Contents * Docs by LAB3W.ORJ

Translate this page

Name : BETA-TESTERS

Project name : ZW3B-API-BETA-TESTERS

Authorized. - 200 - Client API Name and Origin Wildcard OK

¿Comment? 'Ou' ¿Que faire?, OS GNU/Linux, Sécurité, Comment-faire un réseau IPv6 ? Firewall ICMPv6

Firewall ICMPv6 - IPv6 : Pare-feu GNU/Linux

Author : O.Romain.Jaillet-ramey

NdM : 2023/07/01 - Ajout de la fonction server_dns()
NdM : 2024/03/24 - Modification de la fonction ipv6_strongswan()

Je vais d'écrire comment-faire un pare-feu IPv6 - ICMPv6.

Si vous n'avez pas installé les paquets d'admin IPv6. Je vous suggère d'installer ces paquets grâce à la commande apt install iputils-ping dnsutils net-tools whois ipv6toolkit thc-ipv6 ipv6pref qui sont logiciels/commandes réseaux IPv6.


Stephane Huc a changé 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 pour les requetes des routeurs.


Je vous ai concocté un script firewall-ipv6.sh ici avec quelques lignes supplémentaires comme le forward entre les cartes et autres :

J'ai ajouté une protection à 1 ping/seconde par adresse IPv6::/128 (function icmpv6_limit (ligne 155)) (--icmpv6-type 128/0) de Stéphane Bortzmeyer :) qui fait qu'au dessus de 1 ping par seconde (ICMPv6 echo-request) on DROP l'explosion de PING, d'une seule IPv6 source (--hashlimit-srcmask 128).
NdMoi-même : Il faut lancer/executer la fonction en dessous de (pour qu'elle soit lancer après) la fonction icmpv6_huc pour que la règle ip6tables -I INPUT -p icmpv6 ... -j DROP soit au dessus de la chaîne aICMPs ;)

Il faut autoriser les echo-request et echo-reply en -j ACCEPT dans la chaine aICMPs de Stéphane Huc sinon on est limité(e) à un ping par seconde pour tout le monde qui pourait pinguer l'IPv6 (la même adresse IPv6).

Puis c'est OKay çà PING et çà DROP comme on veut - De la machine elle-même et de l'extérieur ;)

Script avec 474 lignes

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
014IP6TABLE="/sbin/ip6tables"
015
016# interface reseau
017LOOP_IF="lo"
018
019#WAN_IP="2607:5300:60:9389::1"
020
021WAN_IF="vmbr0"
022VM1_IF="vmbr1"
023
024# Network and IPs
025SUBNETPREFIX="2607:5300:0060:9389::/64"
026
027# port du service ssh
028port_ssh="22"
029
030# port du service rsync
031port_rsync="873"
032
033# ports tcp et udp a ouvrir
034TCP_OK="514 4949" # SYSLOG MUNIN
035UDP_OK="123 161 514 547" # NTP SNMP SYSLOG DHCP
036
037# ip qui ont acces en ssh au serveur
038SSH_OK="2001:0bc8:25bb:ff00::/56"
039
040# ip accedant au serveur en rsync
041RSYNC_OK="2001:0bc8:25bb:ff00::/56"
042
043#####
044# on fixe les sysctl
045#####
046function kernel()
047{
048        # Don't accept source routed packets.
049        /bin/echo "0" > /proc/sys/net/ipv6/conf/all/accept_source_route
050
051         # Disable ICMP redirect acceptance.
052        /bin/echo "0" > /proc/sys/net/ipv6/conf/all/accept_redirects
053
054        # Enable the following lines only if a router!
055        # Enabling IPv6 forwarding disables route-advertisement reception - accept_ra=0|2
056        # A static gateway will need to be assigned.
057        #
058        echo "1" > /proc/sys/net/ipv6/conf/all/forwarding
059        #
060       #End router forwarding rules
061
062        echo "   "+ KERNEL : [OK]
063}
064
065#####
066# on accepte tout de et pour "lo" local
067#####
068
069function loopback()
070{
071        $IP6TABLE -A INPUT  -i lo -j ACCEPT
072        $IP6TABLE -A FORWARD  -i lo -j ACCEPT
073        $IP6TABLE -A FORWARD  -o lo -j ACCEPT
074        $IP6TABLE -A OUTPUT -o lo -j ACCEPT
075
076        echo "   "+ LOOPBACK : [OK]
077}
078
079#####
080# on fixe les regles general (DROP||ACCEPT)
081#####
082
083function policy()
084{
085        $IP6TABLE -P INPUT $1
086        $IP6TABLE -P FORWARD $1
087        $IP6TABLE -P OUTPUT $1
088
089        echo "   "+ POLICY $1 : [OK]
090}
091
092#####
093#  ACCEPT LES REQUETES DEMANDEES
094#####
095
096function generique()
097{
098        # Allow anything out on the internet
099        $IP6TABLE -A OUTPUT -o $WAN_IF -j ACCEPT
100        # Allow established, related packets back in
101        $IP6TABLE -A INPUT  -i $WAN_IF -m state --state ESTABLISHED,RELATED -j ACCEPT
102
103        echo "   "+ GENERIQUE : [OK]
104}
105
106#####
107# on fixe les regles des adresses IPv6
108#####
109
110function ipv6_link_multicast()
111{
112        echo "   |";
113        echo "   + IPv6 - Addrs Link-Local Unicast and Multicast -----------------------";
114
115        # Allow Link-Local addresses
116        # network range : fe80:0000:0000:0000:0000:0000:0000:0000-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff
117        
118        echo "   |";
119        $IP6TABLE -A INPUT -s fe80::/10 -j ACCEPT
120        $IP6TABLE -A FORWARD -s fe80::/10 -d fe80::/10 -j ACCEPT
121        $IP6TABLE -A OUTPUT -d fe80::/10 -j ACCEPT
122        echo "   +---> "fe80::/10 : ACCEPT;
123        echo "   |";
124        echo "   "+ IPv6 - Addrs Link-Local : [OK]
125
126        # Allow multicast
127        # network range : ff00:0000:0000:0000:0000:0000:0000:0000-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
128        
129        echo "   |";
130        $IP6TABLE -A INPUT -d ff00::/8 -j ACCEPT
131        $IP6TABLE -A FORWARD -s ff00::/8 -d ff00::/8 -j ACCEPT
132        $IP6TABLE -A OUTPUT -d ff00::/8 -j ACCEPT
133        echo "   +---> "ff00::/8 : ACCEPT;
134        echo "   |";
135        echo "   "+ IPv6 - Addrs Multicast : [OK]
136}
137
138#####
139# on fixe les regles des adresses IPv6 secure (VPN/strongSwan)
140#####
141
142function ipv6_strongswan()
143{
144        # Default ------------------
145        echo "   |";
146        echo "   + IPv6 - Addrs Site-Local Secure Area Network -------------------------";
147
148        # Allow  Secure Area Network addresses
149        # network range : fec0:0000:0000:0000:0000:0000:0000:0000-feff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
150
151        echo "   |";
152        $IP6TABLE -A INPUT -s fec0::/10 -j ACCEPT
153        $IP6TABLE -A FORWARD -s fec0::/10 -d fec0::/10 -j ACCEPT
154        $IP6TABLE -A OUTPUT -d fec0::/10 -j ACCEPT
155        echo "   +---> "fec0::/10 : ACCEPT;
156       #echo "   |";
157       #echo "   "+ IPv6 - Addrs Secure Area Network : [OK]
158
159        # Add ------------------
160        # Allow  Forwarding SLAN (fec0::/10) <> ULA (fc00::/7)
161	# network range : fc00:0000:0000:0000:0000:0000:0000:0000-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
162	
163        echo "   |";
164        $IP6TABLE -A FORWARD -s fec0::/10 -d fc00::/7 -j ACCEPT
165        $IP6TABLE -A FORWARD -d fec0::/10 -s fc00::/7 -j ACCEPT
166        echo "   +---> fec0::/10 <-> fc00::/7 : ACCEPT";
167        echo "   |";
168        echo "   "+ IPv6 - Addrs Secure Area Network : [OK]
169}
170
171#####
172# On laisse passer les requetes ICMPv6
173#####
174
175function icmpv6_generique()
176{
177        $IP6TABLE -I INPUT -p icmpv6 -j ACCEPT
178        $IP6TABLE -I FORWARD -p icmpv6 -j ACCEPT
179        $IP6TABLE -I OUTPUT -p icmpv6 -j ACCEPT
180
181        echo "   "+ ICMPV6 - ACCEPT : [OK]
182}
183
184####
185# La regle de Stephane Bortzmeyer DROP ICMP LIMIT 1/sec par IPv6::/128
186# A envoyer apres la chaine aICMPv6 (pour qu'elle soit au dessus -I)
187####
188
189function icmpv6_limit()
190{
191        # Au dessus de 1 ping par seconde (ICMPv6 echo-request) on DROP l'explosion PING d'une seule source IPv6 (masque 128)
192        $IP6TABLE -I INPUT -p icmpv6 --icmpv6-type 128/0 -m hashlimit --hashlimit-name ICMP --hashlimit-above 1/second --hashlimit-burst 1 --hashlimit-mode srcip --hashlimit-srcmask 128 -j DROP
193
194        echo "   "+ ICMPV6 - LIMIT 1/second DROP : [OK]
195}
196
197
198#####
199# Le script de Stephane Huc
200#####
201
202function icmpv6_huc()
203{
204        # Allow dedicated  ICMPv6 packettypes, do this in an extra chain because we need it everywhere
205        $IP6TABLE -N aICMPs
206        
207        # Destination unreachable
208        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 1 -j ACCEPT # destination-unreachable; Must Not Be Dropped
209        
210        # Packet too big
211        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 2/0 -j ACCEPT # packet too big; Must Not Be Dropped
212        
213        # Time exceeded
214        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 3/0 -j ACCEPT # time exceeded
215        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 3/1 -j ACCEPT # time exceeded
216        
217        # Parameter problem
218        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 4/0 -j ACCEPT # parameter pb: Erroneous header field encountered
219        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 4/1 -j ACCEPT # parameter pb: Unrecognized Next Header Type encountered
220        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 4/2 -j ACCEPT # parameter pb: Unrecognized IPv6 option encountered
221
222        # Echo Request (protect against flood)
223        # Commenter cette ligne
224#        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 128/0 -m limit --limit 1/sec --limit-burst 1 -j ACCEPT # ping tool: echo request message
225        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 128/0 -j ACCEPT
226        
227        # Echo Reply
228        # Commenter cette ligne
229#        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 129/0 -m limit --limit 5/sec --limit-burst 10 -j ACCEPT # ping tool: echo reply message
230        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 128/0 -j ACCEPT
231
232        echo "   "+ ICMPV6 - DEFAULT : [OK]
233
234        # link-local multicast receive notification mssg (need link-local src address, with hop-limit: 1)
235        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 130/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
236        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 131/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
237        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 132/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
238        echo "   "+ ICMPV6 - LINK-LOCAL : [OK]
239
240        # address configuration and routeur selection mssg (received with hop limit = 255)
241        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 133/0 -m hl --hl-eq 255 -j ACCEPT # Router Solicitation
242        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 134/0 -s fe80::/64 -m hl --hl-eq 255 -j ACCEPT # Router Advertisement
243        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 135/0 -m hl --hl-eq 255 -j ACCEPT # Neighbor Solicitation
244        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 136/0 -m hl --hl-eq 255 -j ACCEPT # Neighbor Advertisement
245    
246        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 137/0 -j DROP # Redirect Message
247        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 138/0 -j DROP # Router Renumbering (Rechargement du routeur)
248    
249        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 139/0 -j DROP # ICMP Node Information Query
250        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 140/0 -j DROP # ICMP Node Information Response
251    
252        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 141/0 -d ff02::1 -m hl --hl-eq 255 -j ACCEPT # Inverse Neighbor Discovery Solicitation Message
253        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 142/0 -m hl --hl-eq 255 -j ACCEPT # Inverse Neighbor Discovery Advertisement Message
254        echo "   "+ ICMPV6 - ADD CONF '&' ROUT€ SELECTION : [OK]
255
256        # link-local multicast receive notification mssg (need link-local src address, with hop-limit: 1)
257        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 143 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
258        
259        # needed for mobylity
260        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 144/0 -j DROP
261        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 145/0 -j DROP
262        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 146/0 -j DROP
263        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 147 -j DROP
264        
265        # SEND certificate path notification mssg (received with hop limit = 255)
266        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 148 -m hl --hl-eq 255 -j ACCEPT # Certification Path Solicitation Message
267        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 149 -m hl --hl-eq 255 -j ACCEPT # Certification Path Advertisement Message
268        
269        # multicast routeur discovery mssg (need link-local src address and hop limit = 1)
270        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 151 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
271        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 152 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
272        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 153 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT
273        echo "   "+ ICMPV6 - MULTICAST ROUT€ DISCOVERY : [OK]
274        
275        #
276        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 200 -j DROP # private experimentation
277        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 201 -j DROP # private experimentation
278        $IP6TABLE -A aICMPs -p icmpv6 --icmpv6-type 255 -j DROP # expansion error messages ICMPv6
279        echo "   "+ ICMPV6 - EXPERIMENTATION : [OK]
280
281        # Only the ROUT€ is allowed to ping us (read FAQ this is a requirement)
282       #$IP6TABLE -A INPUT -p icmpv6 -m limit --limit 5/s --limit-burst 4 -j aICMPs
283       #$IP6TABLE -A OUTPUT -m state ! --state INVALID -j aICMPs
284
285        $IP6TABLE -I INPUT -p icmpv6 -j aICMPs
286        $IP6TABLE -I FORWARD -p icmpv6 -j aICMPs
287        $IP6TABLE -I OUTPUT -p icmpv6 -j aICMPs
288        
289        echo "   "+ ICMPV6 - INLIMIT + OUTPUT : [OK]
290}
291
292#####
293# FORWARDING entre les cartes (vmbr0 <-> vmbr1)
294#####
295
296function ipv6_forwarding()
297{
298        # Allow forwarding
299        $IP6TABLE -A FORWARD -m state --state NEW -i $VM1_IF -o $WAN_IF -s $SUBNETPREFIX -j ACCEPT
300        $IP6TABLE -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
301
302#        $IP6TABLE -A FORWARD -i $VM1_IF -o $WAN_IF -j ACCEPT
303#        $IP6TABLE -A FORWARD -o $VM1_IF -i $WAN_IF -j ACCEPT
304
305        echo "   "+ IPv6 - FORWARDING : [OK]
306}
307
308#####
309# ouverture des acces SSH a certaines IP
310#####
311
312function ssh_ok()
313{
314        for host in $SSH_OK
315        do
316                $IP6TABLE -A INPUT -s $host -p tcp --dport $port_ssh -j ACCEPT
317                $IP6TABLE -A OUTPUT -d $host -p tcp --sport $port_ssh -j ACCEPT
318        done
319
320        $IP6TABLE -A INPUT -p tcp --dport $port_ssh -m state --state NEW -m recent --set --name SSH
321        $IP6TABLE -A INPUT -p tcp --dport $port_ssh -m recent --update --seconds 60 --hitcount 3 --rttl --name SSH -j DROP
322        $IP6TABLE -A INPUT -p tcp --dport $port_ssh -j ACCEPT
323
324        echo "   "+ SSH : [OK]
325}
326
327#####
328# ouverture des acces RSYNC a certaines IP
329#####
330
331function rsync_ok()
332{
333        for host in $RSYNC_OK
334        do
335        $IP6TABLE -A INPUT -s $host -p tcp --dport $port_rsync -j ACCEPT
336        $IP6TABLE -A OUTPUT -d $host -p tcp --sport $port_rsync -j ACCEPT
337        done
338
339        echo "   "+ RSYNC : [OK]
340}
341
342#####
343# ouverture des ports tcp et upd
344#####
345
346function tcp_ok()
347{
348        for port in $TCP_OK
349        do
350        $IP6TABLE -A INPUT -p tcp --dport $port -j ACCEPT
351        $IP6TABLE -A OUTPUT -p tcp --sport $port -j ACCEPT
352        done
353
354        echo "   "+ TCP : [OK]
355}
356
357function udp_ok()
358{
359        for port in $UDP_OK
360        do
361        $IP6TABLE -A INPUT -p udp --dport $port -j ACCEPT
362        $IP6TABLE -A OUTPUT -p udp --sport $port -j ACCEPT
363        done
364
365        echo "   "+ UDP : [OK]
366}
367
368#####
369# ouverture des acces HTTP(S) a linterface LAN & NET
370#####
371
372function server_http()
373{
374        # on a 1 seule IPv6::/128 UNICAST GLOBAL (VPS) --> on a donc fait un network ULA for les containers
375#       CT_WEB="fc01:5300:60:9389:15:1:a:10"
376
377        HTTP_PORTS="80 443"
378        for port in $HTTP_PORTS
379        do
380                # SOIT le service est sur LHOTE SOIT dans un VServer
381                $IP6TABLE -A INPUT -m state --state NEW -m tcp -p tcp --dport $port -j ACCEPT
382#               $IP6TABLE -A INPUT -p tcp --dport $port -j ACCEPT
383#               $IP6TABLE -A OUTPUT -p tcp --sport $port -j ACCEPT
384                $IP6TABLE -A OUTPUT -m state --state ESTABLISHED,RELATED -m tcp -p tcp --sport $port -j ACCEPT
385                # le server Web est sur une autre machine, une container ou une machine locale
386                # on a 1 seule IPv6::/128 UNICAST GLOBAL (VPS) --> on a donc fait un network ULA for les containers
387#               $IP6TABLE -t nat -A PREROUTING -d $WAN_IP -p tcp --dport $port -j DNAT --to-destination [$CT_WEB]:$port
388        done
389        echo "   "+ APACHE : [OK]
390}
391
392#####
393# ouverture des acces DNS(S) a linterface NET
394#####
395
396function server_dns()
397{
398	
399        DNS_PORTS_TCP="53"
400        for port in $DNS_PORTS_TCP
401        do
402                # SOIT le service est sur LHOTE SOIT dans un VServer
403                $IP6TABLE -A INPUT -m state --state NEW -m tcp -p tcp --dport $port -j ACCEPT
404                $IP6TABLE -A INPUT -i $WAN_IF -p tcp --dport $port -m hashlimit --hashlimit-name NAMED --hashlimit-above 20/second --hashlimit-mode srcip --hashlimit-burst 20 --hashlimit-srcmask 128 -j DROP
405                $IP6TABLE -A OUTPUT -m state --state ESTABLISHED,RELATED -m tcp -p tcp --sport $port -j ACCEPT
406                $IP6TABLE -A OUTPUT -p tcp --sport $port -j LOG  --log-prefix "OUTPUT-T-NAMED:"
407        done
408
409        DNS_PORTS_UDP="53"
410        for port in $DNS_PORTS_UDP
411        do
412                # SOIT le service est sur LHOTE SOIT dans un VServer
413                $IP6TABLE -A INPUT -i $WAN_IF -p udp --dport $port -m state --state NEW -m recent --set --name NAMED
414                $IP6TABLE -A INPUT -i $WAN_IF -p udp --dport $port -m recent --update --seconds 60 --hitcount 10 --rttl --name NAMED -j DROP
415                $IP6TABLE -A OUTPUT -m state --state ESTABLISHED,RELATED -m udp -p udp --sport $port -j ACCEPT
416                $IP6TABLE -A OUTPUT -p udp --sport $port -j LOG  --log-prefix "OUTPUT-U-NAMED:"
417        done
418
419        echo "   "+ DNS : [OK]
420}
421
422
423
424#####-------------------------- START / STOP ----------------------------######
425case "$1" in
426
427start|restart)
428$0 stop
429echo "$0 Starting"
430        kernel
431        loopback
432
433        generique
434        
435#       icmpv6_generique
436        icmpv6_huc
437        icmpv6_limit
438	
439        ipv6_link_multicast
440        ipv6_strongswan
441        ipv6_forwarding
442        
443        ssh_ok
444        rsync_ok
445        tcp_ok
446        udp_ok
447
448        server_http
449        server_dns
450        
451        policy DROP
452;;
453
454stop)
455        echo "$0 Stop"
456        $IP6TABLE -F
457        $IPTABLE -t nat -F
458        $IP6TABLE -Z
459        $IP6TABLE -X
460        policy ACCEPT
461        ;;
462status)
463        echo "$0 Status"
464        $IP6TABLE -L -vn
465        $IP6TABLE -L -vn -t nat
466        ;;
467
468*)
469echo "usage : $0 (status|start|stop|restart)"
470;;
471
472esac
473
474#####-------------------------- START / STOP ----------------------------######
Retirer les numéros de lignes

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 et à l'arrêt de la machine : Runlevels de l'init(ialisation) # Default-Start : 2 3 4 5 # Default-Stop : 0 1 6.

Script avec 2 lignes

001ln -s /root/firewall-ipv6.sh /etc/init.d/firewall-ipv6
002update-rc.d firewall-ipv6 defaults
Retirer les numéros de lignes

Puis aprés vous pouvez lancer le script en executant /etc/init.d/firewall-ipv6 (status|start|stop|restart)

Sauvegarder/restaurer votre configuration firewall.

J'ajoute 2 commandes qui peuvent être utile :) et qui peuvent servir pour NuFW .

Sauvegarder votre configuration firewall actuelle :

Script avec 1 ligne

001ip6tables-save > /etc/firewall-ipv6.conf
Retirer les numéros de lignes
Restaurer votre configuration firewall :

Script avec 1 ligne

001ip6tables-restore < /etc/firewall-ipv6.conf
Retirer les numéros de lignes
Visualiser votre firewall INPUT (entrée), FORWARD (transfert entre vos cartes réseaux), OUTPUT (sortie) et celle dédiée aux paquets ICMPs que nous avons créé :

Chain INPUT, FORWARD, OUTPUT, aICMPs.

Script avec 5 lignes

001ip6tables -L -vn
002ip6tables -L INPUT -vn
003ip6tables -L FORWARD -vn
004ip6tables -L OUTPUT -vn
005ip6tables -L aICMPs -vn
Retirer les numéros de lignes

La table NAT (Network Translation Address) - çà existe ;) ^^ :

Script avec 1 ligne

001ip6tables -L -vn -t nat
Retirer les numéros de lignes

Cordialement,
Romain