informatique:linux:netfilter
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatique:linux:netfilter [2011/03/02 20:15] – édition externe 127.0.0.1 | informatique:linux:netfilter [2021/03/18 13:16] (current) – [multiport] pteu | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{tag> | ||
- | ======Netfilter====== | + | ======Netfilter |
Netfilter est le firewall intégré au noyau Linux. Il s' | Netfilter est le firewall intégré au noyau Linux. Il s' | ||
Line 8: | Line 7: | ||
=====Principe===== | =====Principe===== | ||
- | {{http:// | + | {{ :informatique: |
Line 14: | Line 13: | ||
* FILTER : contient les règles de filtrage | * FILTER : contient les règles de filtrage | ||
- | * NAT | + | * NAT : contient les règles de translation d' |
* MANGLE | * MANGLE | ||
* RAW | * RAW | ||
Line 31: | Line 30: | ||
* Standarts | * Standarts | ||
+ | <code bash> | ||
+ | Option : Description : | ||
+ | -A Append (ajoute) | ||
+ | -D Delete (efface) | ||
+ | -I Insert (insère) | ||
+ | -R Replace (remplace) | ||
+ | -L List (liste) | ||
+ | -F Efface toutes les règles dans la ou les chaînes | ||
+ | -Z Remet les compteurs à zéro dans une ou plusieurs chaînes | ||
+ | -C Teste ce paquet sur une chaîne | ||
+ | -N Crée une chaîne définie par l' | ||
+ | -X Efface une chaîne définie par l' | ||
+ | -P Change le comportement d'une chaîne sur une cible | ||
+ | -E Change le nom d'une chaîne | ||
+ | -p Protocole (tcp, udp, ...) | ||
+ | -s Adresse/ | ||
+ | -d Adresse/ | ||
+ | -i Interface réseau d' | ||
+ | -o Interface réseau de sortie (nom ethernet) | ||
+ | -j Jump - Saute (cible de règle) | ||
+ | -m Correspondance étendue (peut utiliser des extensions) | ||
+ | -n Sortie numérique de ports et d' | ||
+ | -t Table à manipuler | ||
+ | -v Mode bavard | ||
+ | -x Vérifications étendues (affiche les valeurs exactes) | ||
+ | -f Prends uniquement en compte le second fragment ou ceux d' | ||
+ | -V Version du paquet | ||
+ | --line-numbers Affiche les numéros de ligne | ||
+ | </ | ||
- | Option : Description : | + | '' |
- | -A Append (ajoute) | + | |
- | -D Delete (efface) | + | |
- | -I Insert (insère) | + | |
- | -R Replace (remplace) | + | |
- | -L List (liste) | + | |
- | -F Efface toutes les règles dans la ou les chaînes | + | |
- | -Z Remet les compteurs à zéro dans une ou plusieurs chaînes | + | |
- | -C Teste ce paquet sur une chaîne | + | |
- | -N Crée une chaîne définie par l'utilisateur | + | |
- | -X Efface une chaîne définie par l'utilisateur | + | |
- | -P Change le comportement d'une chaîne sur une cible | + | |
- | -E Change le nom d'une chaîne | + | |
- | -p Protocole (tcp, udp, ...) | + | |
- | -s Adresse/ | + | |
- | -d Adresse/ | + | |
- | -i Interface réseau d' | + | |
- | -o Interface réseau de sortie (nom ethernet) | + | |
- | -j Jump - Saute (cible de règle) | + | |
- | -m Correspondance étendue (peut utiliser des extensions) | + | |
- | -n Sortie numérique de ports et d' | + | |
- | -t Table à manipuler | + | |
- | -v Mode bavard | + | |
- | -x Vérifications étendues (affiche les valeurs exactes) | + | |
- | -f Prends uniquement en compte le second fragment ou ceux d' | + | |
- | -V Version du paquet | + | |
- | --line-numbers Affiche les numéros de ligne | + | |
- | + | ||
- | -j [ACCEPT | DROP | LOG | REJECT] | + | |
* ACCEPT : laisse passer le paquet et sort | * ACCEPT : laisse passer le paquet et sort | ||
* DROP : jette le paquet et sort | * DROP : jette le paquet et sort | ||
Line 66: | Line 66: | ||
* REJECT : jette le paquet en prévenant la machine source avec une paquet ICMP Port unreachable par défaut ; cela peut être modifié avec la directive '' | * REJECT : jette le paquet en prévenant la machine source avec une paquet ICMP Port unreachable par défaut ; cela peut être modifié avec la directive '' | ||
- | Il est conseillé de faire du DROP sur la patte publique et du REJECT coté LAN utilisateurs pour les prévenir | + | Il est conseillé de faire du DROP sur la patte publique et du REJECT coté LAN utilisateurs pour les prévenir |
- | -t filter : option par défaut si aucune table n'est spécifiée. | + | '' |
* Liées aux modules | * Liées aux modules | ||
+ | <code bash> | ||
+ | --sport port source | ||
+ | --dport port destination | ||
+ | --icmp-type identifie un paquet ICMP (echo-reply echo-request) | ||
+ | </ | ||
- | --sport port source | ||
- | --dport port destination | ||
- | --icmp-type identifie un paquet ICMP (echo-reply echo-request) | ||
+ | =====Les extensions===== | ||
+ | <code bash> | ||
+ | Module | ||
+ | mac Vérifie que l' | ||
+ | state Active l' | ||
+ | limit Définit une limite sur le flux --limit, --limit-burst | ||
+ | owner Essaie de trouver des correspondances dans le créateur du paquet --uid-owner userid --gid-owner groupid --pid-owner processid --sid-owner sessionid | ||
+ | unclean Plusieurs tests de vérification aléatoires du bon état des paquets | ||
+ | </ | ||
- | =====Les extensions===== | + | Pour lister les extensions chargées : '' |
+ | ====cstate / conntrack==== | ||
- | | + | |
- | mac Vérifie que l' | + | |
- | | + | * il existe un outil en CLI qui permet de manipuler les tables de session : **conntrack** |
- | limit Définit | + | <code bash> |
- | | + | # afficher les connexions SSH ouvertes |
- | | + | conntrack |
+ | |||
+ | # lister | ||
+ | conntrack -E | ||
+ | |||
+ | # supprimer | ||
+ | conntrack | ||
+ | </ | ||
+ | | ||
+ | ====multiport==== | ||
+ | |||
+ | Permet | ||
+ | <code bash> | ||
+ | # Ouverture des ports web/HTTPx | ||
+ | $IPTABLES | ||
+ | # ex2: ouverture des ports 80 et 8080 à 8099 | ||
+ | $IPTABLES | ||
+ | </ | ||
=====Redirection (SNAT, MASQUERADE, DNAT)===== | =====Redirection (SNAT, MASQUERADE, DNAT)===== | ||
- | **SNAT** : mis en place dans la chaine POSTROUTING, | + | Le *NAT est un mécanisme qui permet de modifier à la volée les adresses et/ou numéros de ports sur un routeur, qui conservera l' |
+ | |||
+ | Pour les exemples qui suivent, voici un réseau privé (LAN) connecté à internet par une passerelle (ROUTEUR) : | ||
+ | <code bash> | ||
+ | ( INTERNET )----(eth0 | ||
+ | \_1.2.3.4 | ||
+ | \____serveur1 192.168.0.1 /24 | ||
+ | \____serveur2 192.168.0.2 /24 | ||
+ | \____PCs clients 192.168.0.*/ | ||
+ | </ | ||
+ | |||
+ | **SNAT** : mis en place dans la chaine POSTROUTING, | ||
- | Exemple de SNAT : | + | Cela va être utile dans notre exemple pour permettre à tous les équipements d' |
<code bash> | <code bash> | ||
iptables -t NAT -A POSTROUTING -j SNAT --to-source 1.2.3.4 | iptables -t NAT -A POSTROUTING -j SNAT --to-source 1.2.3.4 | ||
</ | </ | ||
- | **MASQUERADE** : permet à iptables d' | + | **MASQUERADE** : permet à iptables d' |
- | Exemple de MASQUERADE : | ||
<code bash> | <code bash> | ||
iptables -t NAT -A POSTROUTING -o eth0 -j MASQUERADE | iptables -t NAT -A POSTROUTING -o eth0 -j MASQUERADE | ||
</ | </ | ||
- | **DNAT** : permet de modifier les IPs destinations, | + | **DNAT** : permet de modifier les IPs destinations, |
- | Exemple de DNAT avec répartition de charge sur 2 serveurs : | + | Exemple de DNAT avec répartition de charge sur nos 2 serveurs : |
<code bash> | <code bash> | ||
- | iptables -t nat -A PREROUTING -p tcp -dport 80 -j DNAT --to-dest | + | iptables -t nat -A PREROUTING -p tcp -dport 80 -j DNAT --to-dest |
</ | </ | ||
Exemple de redirection du trafic HTTP et HTTPS vers un serveur mandataire (port 3128) : | Exemple de redirection du trafic HTTP et HTTPS vers un serveur mandataire (port 3128) : | ||
- | + | <code bash> | |
- | iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest proxyhost: | + | iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest proxyhost: |
- | iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-dest proxyhost: | + | iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-dest proxyhost: |
+ | </ | ||
=====Exemples===== | =====Exemples===== | ||
Line 171: | Line 210: | ||
service iptables save | service iptables save | ||
# sous d' | # sous d' | ||
- | iptables-save | + | iptables-save |
+ | # NB : pour les recharger ensuite | ||
+ | iptables-restore < / | ||
</ | </ | ||
- | =====Divers===== | + | =====Exemple de script===== |
- | ====conntrack==== | + | <code bash> |
+ | # | ||
+ | # | ||
+ | # Script iptables - tyr | ||
+ | # Author: pt3u | ||
+ | # 30/10/2008 Complément de flux pour le DHCP | ||
+ | # 17/09/2008 Personnalisation pour application sur tyr | ||
+ | # 22/02/2008 Création d' | ||
+ | # | ||
- | Conntrack est un logiciel qui permet de récupérer et modifier la table de sessions ouvertes depuis l' | ||
- | Pour récupérer la table des sessions ouvertes : | + | # |
- | | + | # Variables |
- | + | # | |
- | Pour supprimer une session | + | IPTABLES=" |
- | conntrack | + | INET_IFACE=" |
+ | # | ||
+ | # | ||
+ | # | ||
+ | INET_BROADCAST=" | ||
+ | INET_ADDR=" | ||
+ | LAN=" | ||
+ | ROUTER=" | ||
+ | VPN=" | ||
- | ====Classer les logs iptables dans un seul fichier, sans doublon==== | + | start () { |
+ | |||
+ | echo "### DEBUT chargement Netfilter.." | ||
+ | echo " | ||
+ | INET_ADDR=$INET_ADDR INET_BROADCAST=$INET_BROADCAST \ | ||
+ | LAN=$LAN ROUTER=$ROUTER VPN=$VPN" | ||
+ | |||
+ | |||
+ | # | ||
+ | # Parametrage du noyau | ||
+ | # | ||
+ | |||
+ | echo " Parametrage du noyau.." | ||
+ | # désactivation du forwarding (routage) | ||
+ | echo " | ||
+ | |||
+ | # protection anti-spoofing du kernel | ||
+ | echo " | ||
+ | |||
+ | # refuse les ping | ||
+ | #echo " | ||
+ | |||
+ | # refuse les ICMP broadcastés | ||
+ | echo " | ||
+ | |||
+ | # protection contre les messages d' | ||
+ | echo " | ||
+ | |||
+ | # rejet des redirections ICMP | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | |||
+ | # protection contre les synflood (n' | ||
+ | echo " | ||
+ | # nombre max de SYN_WAIT | ||
+ | echo " | ||
+ | |||
+ | # regles permettant de limiter les DoS (defaut: 60, | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | |||
+ | # rejet des paquets source-routés | ||
+ | echo " | ||
+ | |||
+ | # logger les paquets spoofes (@ source falsifiees ou non routables) | ||
+ | echo " | ||
+ | |||
+ | # modification de la durée max des connexions (12h au lieu de 5j) | ||
+ | #echo 43200 > / | ||
+ | |||
+ | # gestion des IPs dynamiques | ||
+ | #echo " | ||
+ | |||
+ | # | ||
+ | # iptables | ||
+ | # | ||
+ | |||
+ | # on flush la table filter (-t filter par défaut) | ||
+ | echo " Reinitialisation des tables.." | ||
+ | $IPTABLES -F | ||
+ | $IPTABLES -X | ||
+ | |||
+ | # | ||
+ | # Creation des chaines | ||
+ | # | ||
+ | echo " Creation des chaines.." | ||
+ | $IPTABLES -N bad_tcp_packets | ||
+ | $IPTABLES -N udp_packets | ||
+ | $IPTABLES -N icmp_packets | ||
+ | $IPTABLES -N tcp_packets | ||
+ | |||
+ | |||
+ | # | ||
+ | # Remplissage des chaines | ||
+ | # | ||
+ | |||
+ | echo " Remplissage des chaines.." | ||
+ | # bad_tcp_packets (cf iptables how-to et arno's iptables firewall) | ||
+ | #$IPTABLES -A bad_tcp_packets --tcp-flags SYN,ACK SYN,ACK \ | ||
+ | # -m state --state NEW -j REJECT --reject-with tcp-reset | ||
+ | # $IPTABLES -A bad_tcp_packets ! --syn -m state --state NEW \ | ||
+ | # -j LOG --log-level DEBUG --log-prefix "New not syn:" | ||
+ | $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP | ||
+ | $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP | ||
+ | $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags \ | ||
+ | ALL SYN, | ||
+ | $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j DROP | ||
+ | $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL FIN -j DROP | ||
+ | $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j DROP | ||
+ | $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP | ||
+ | $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j DROP | ||
+ | $IPTABLES -A bad_tcp_packets -p tcp --tcp-option 64 -j DROP | ||
+ | $IPTABLES -A bad_tcp_packets -p tcp --tcp-option 128 -j DROP | ||
+ | |||
+ | #In Microsoft Networks you will be swamped by broadcasts. These lines | ||
+ | #will prevent them from showing up in the logs. | ||
+ | # | ||
+ | #$IPTABLES -A udp_packets -i $INET_IFACE -p tcp -d $INET_BROADCAST \ | ||
+ | # | ||
+ | #$IPTABLES -A udp_packets -i $INET_IFACE -p tcp -d $INET_ADDR \ | ||
+ | # | ||
+ | $IPTABLES -A udp_packets -p udp --sport 53 -j ACCEPT | ||
+ | $IPTABLES -A udp_packets -p udp --dport 53 -j ACCEPT | ||
+ | $IPTABLES -A udp_packets -p udp -s 0.0.0.0 --dport 67 -j ACCEPT | ||
+ | $IPTABLES -A udp_packets -p udp -s $LAN --dport 67 -j ACCEPT | ||
+ | $IPTABLES -A udp_packets -p udp --dport 123 -j ACCEPT | ||
+ | $IPTABLES -A udp_packets -p udp -s $LAN --dport 137:139 -j ACCEPT | ||
+ | #20090929 acces openVPN | ||
+ | $IPTABLES -A udp_packets -p udp -s $VPN --dport 137:139 -j ACCEPT | ||
+ | $IPTABLES -A udp_packets -p udp --sport 161 -j ACCEPT | ||
+ | $IPTABLES -A udp_packets -p udp -s $LAN --dport 161 -j ACCEPT | ||
+ | $IPTABLES -A udp_packets -p udp -s $ROUTER --dport 514 -j ACCEPT | ||
+ | |||
+ | $IPTABLES -A tcp_packets -p tcp -m state --state ESTABLISHED, | ||
+ | $IPTABLES -A tcp_packets -p tcp --dport 21 -j ACCEPT | ||
+ | #1 2009-02-06 redirection de port anyWAN: | ||
+ | #1 $IPTABLES -A tcp_packets -p tcp -s $LAN --dport 22 -j ACCEPT | ||
+ | $IPTABLES -A tcp_packets -p tcp --dport 22 -j ACCEPT | ||
+ | # $IPTABLES -A tcp_packets -p tcp --dport 25 -j ACCEPT | ||
+ | #$IPTABLES -A tcp_packets -p tcp --dport 53 -j ACCEPT | ||
+ | $IPTABLES -A tcp_packets -p tcp --dport 80 -j ACCEPT | ||
+ | $IPTABLES -A tcp_packets -p tcp -s $LAN --dport 137:139 -j ACCEPT | ||
+ | $IPTABLES -A tcp_packets -p tcp --dport 443 -j ACCEPT | ||
+ | $IPTABLES -A tcp_packets -p tcp -s $LAN --dport 445 -j ACCEPT | ||
+ | #20090929 acces openVPN | ||
+ | $IPTABLES -A tcp_packets -p tcp -s $VPN --dport 445 -j ACCEPT | ||
+ | #20101018 test acces swat | ||
+ | #$IPTABLES -A tcp_packets -p tcp -s $LAN --dport 901 -j ACCEPT | ||
+ | #2011.11.16 temp pour MAJ en oneiric | ||
+ | $IPTABLES -A tcp_packets -p tcp --dport 1022 -j ACCEPT | ||
+ | $IPTABLES -A tcp_packets -p tcp --dport 2121 -j ACCEPT | ||
+ | $IPTABLES -A tcp_packets -p tcp -s $LAN --dport 3129 -j ACCEPT | ||
+ | #2010-12-19 axx munin depuis tyr | ||
+ | #2011-03-05 extension a tout le LAN | ||
+ | $IPTABLES -A tcp_packets -p tcp -s $LAN --dport 4949 -j ACCEPT | ||
+ | #20110220 iperf | ||
+ | $IPTABLES -A tcp_packets -p tcp -s $LAN --dport 5001 -j ACCEPT | ||
+ | #1 2009-02-06 redirection de port anyWAN: | ||
+ | #1 $IPTABLES -A tcp_packets -p tcp --dport 10000 -j ACCEPT | ||
+ | $IPTABLES -A tcp_packets -p tcp --dport 50000:50049 -j ACCEPT | ||
+ | |||
+ | # on laisse passer tous les ICMP type 11 (delais depasse) pour pouvoir faire du mtr | ||
+ | # | ||
+ | $IPTABLES -A icmp_packets -p icmp -s 0/0 --icmp-type time-exceeded -j ACCEPT | ||
+ | |||
+ | $IPTABLES -A icmp_packets -p icmp -s 0/0 --icmp-type echo-request \ | ||
+ | -m limit --limit 5/second --limit-burst 10 -j ACCEPT | ||
+ | $IPTABLES -A icmp_packets -p icmp -s 0/0 --icmp-type echo-reply -j ACCEPT | ||
+ | $IPTABLES -A icmp_packets -p icmp -s 0/0 --icmp-type destination-unreachable -j ACCEPT | ||
+ | |||
+ | # | ||
+ | # Chargement des politiques | ||
+ | # | ||
+ | |||
+ | # politiques par defaut (--policy) | ||
+ | echo " Chargement des politiques par defaut.." | ||
+ | $IPTABLES -P INPUT DROP | ||
+ | $IPTABLES -P OUTPUT ACCEPT | ||
+ | $IPTABLES -P FORWARD DROP | ||
+ | |||
+ | echo " Exceptions.." | ||
+ | # réglages permissifs pour la machine d' | ||
+ | #$IPTABLES -A INPUT -s 192.168.2.23 -j ACCEPT | ||
+ | |||
+ | # table INPUT (--append ou --insert < | ||
+ | echo " Table INPUT.." | ||
+ | $IPTABLES -A INPUT -i lo -j ACCEPT | ||
+ | |||
+ | $IPTABLES -A INPUT -p tcp -j bad_tcp_packets | ||
+ | $IPTABLES -A INPUT -p icmp -j icmp_packets | ||
+ | $IPTABLES -A INPUT -p tcp -j tcp_packets | ||
+ | $IPTABLES -A INPUT -p udp -j udp_packets | ||
+ | |||
+ | # Enregistrement des paquets qui n'ont pas encore été traités | ||
+ | # remplacemt du log level de WARINING a 4 (la syntaxe a changer..) | ||
+ | $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \ | ||
+ | --log-level 4 --log-prefix " | ||
+ | |||
+ | # table OUTPUT | ||
+ | echo " Table OUTPUT.." | ||
+ | $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets | ||
+ | |||
+ | # table FORWARD | ||
+ | echo " Table FORWARD.." | ||
+ | |||
+ | |||
+ | echo "### FIN chargement Netfilter" | ||
+ | } | ||
+ | |||
+ | stop () { | ||
+ | |||
+ | echo " | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | echo "### Firewall Désactivé" | ||
+ | } | ||
+ | |||
+ | case " | ||
+ | | ||
+ | start | ||
+ | ;; | ||
+ | | ||
+ | stop | ||
+ | ;; | ||
+ | | ||
+ | stop | ||
+ | sleep 1 | ||
+ | start | ||
+ | ;; | ||
+ | *) | ||
+ | echo "Usage : $0 start|stop|restart" | ||
+ | ;; | ||
+ | esac | ||
+ | |||
+ | exit 0 | ||
+ | # end | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====Divers===== | ||
+ | |||
+ | |||
+ | ====Classer les logs iptables dans un seul fichier==== | ||
Pour centraliser les logs iptables dans un seul et unique fichier de configuration il faut procéder en plusieurs étapes : | Pour centraliser les logs iptables dans un seul et unique fichier de configuration il faut procéder en plusieurs étapes : | ||
* dans le script iptables, logger les DROP (ici tout le TCP) avec un préfix reconnaissable, | * dans le script iptables, logger les DROP (ici tout le TCP) avec un préfix reconnaissable, | ||
+ | <code bash> | ||
+ | iptables -A INPUT -p tcp -j LOG --log-prefix " | ||
+ | </ | ||
- | iptables -A INPUT -p tcp -j LOG --log-prefix | + | |
+ | <code bash> | ||
+ | : | ||
+ | # ne fonctionne pas avec : | ||
+ | #: | ||
+ | # car les msg commencent par " | ||
+ | & ~ # arrêter de traiter les messages qui ont matché la dernière ligne | ||
+ | </ | ||
- | | + | Sources : |
+ | | ||
+ | * [[http://wiki.rsyslog.com/ | ||
- | : | ||
- | & ~ # supprimer les messages qui ont matché la dernière ligne | ||
- | [[http:// | + | ====Rotation des logs==== |
+ | Pour archiver les logs d' | ||
+ | <code bash> | ||
+ | / | ||
+ | # tourner tous les jours | ||
+ | daily | ||
+ | missingok | ||
+ | notifempty | ||
+ | # compresser les archives | ||
+ | compress | ||
+ | # ne pas archiver l' | ||
+ | delaycompress | ||
+ | # suffixer par la date | ||
+ | dateext | ||
+ | create 0600 root root | ||
+ | # redémarrer le syslog pour qu'il écrire dans le nouveau fichier après la rotation | ||
+ | postrotate | ||
+ | #/ | ||
+ | # ou | ||
+ | / | ||
+ | endscript | ||
+ | } | ||
+ | </ | ||
=====Liens===== | =====Liens===== | ||
* [[http:// | * [[http:// | ||
+ | * [[https:// |
informatique/linux/netfilter.1299096910.txt.gz · Last modified: 2013/10/14 20:54 (external edit)