pub YouXOR

SSH, OpenSSL, Iptables, RSYNC, RAID, VPN

 Charge moyenne sur 1mn : 1.52 Charge moyenne sur 5mn : 0.82 Charge moyenne sur 15mn : 0.68



How to protect a network, transmission, data?

Use a firewall, an anti-virus, back up your system regularly, use a secure disk system for your data. Use secure protocols such as HTTPs, FTPs, IMAPs, POPs, SMTPs





Site user blocks : Account info / user rights / summary

Comment-faire un réseau IPv6 ? Firewall ICMPv6

  • Comment-faire un réseau IPv6 ? Firewall ICMPv6
Firewall ICMPv6 - IPv6 : Pare-feu GNU/Linux

Informations :

Dates
  • Publish : : Friday 07 february 2020
  • Modification : Tuesday 31 december 2024

  • 5011 views

Share :

NdM : 2024/10/02 - Ajout de la fonction ipv6_ula() et nat_v6()
NdM : 2024/03/24 - Modification de la fonction ipv6_strongswan()
NdM : 2023/07/01 - Ajout de la fonction server_dns()

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

Installer les paquets qui sont des logiciels/commandes réseaux IPv6.

Script avec 1 ligne

001apt install iputils-ping dnsutils net-tools whois ipv6toolkit thc-ipv6 ipv6pref

Stéphane Huc a changé son nom de domaine - Le nouveau est : http://doc.huc.fr.eu.org

Il nous a créé une fonction pour filtrer les paquets ICMPv6 depuis IPtables pour les requetes des routeurs : c'est la fonction icmpv6_huc().


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

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
Restaurer votre configuration firewall :

Script avec 1 ligne

001ip6tables-restore < /etc/firewall-ipv6.conf
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

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

Script avec 1 ligne

001ip6tables -L -vn -t nat

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

A lire sur le blog de Stéphane Bortzmeyer :

Liens ZW3B.IPv6 : Internet Protocol V6

Liens qui peuvent aussi vous intéresser :



Keywords :

IP❤6 جدار الحماية IPv6 جدار حماية ICMPv6 Cortafuegos ICMPv6 جدار الحماية ICMPv6 linux لينكس Брандмауер ICMPv6 брандмауер IPv6 брандмауер ICMPv6 ファイアウォール IPv6 ファイアウォール ファイアウォール ICMPv6 防火牆 IPv6 防火牆 Linux 防火牆 blacklist stateful


Author of the page

O.Romain.Jaillet-ramey

O.Romain.Jaillet-ramey

  • Firstname : Olivier Romain Luc
  • Lastname : : Jaillet-ramey
  • Arrived on tuesday 19 october 1976 (1976/10/19 00:00)
    48 years activity !

Translate this page with Google






Load page: 3,2416701316833