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 [2010/07/30 10:49] – pteu | 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 | ||
| - | =====Les chaînes===== | + | =====Les chaînes |
| * INPUT : paquets à destination de la machine | * INPUT : paquets à destination de la machine | ||
| * OUTPUT : paquets envoyés par la machine | * OUTPUT : paquets envoyés par la machine | ||
| - | * FORWARD : paquets | + | * FORWARD : paquets routés |
| + | * PREROUTING : paquets avant la décision de routage | ||
| + | * POSTROUTING : paquets juste avant de sortir sur la carte réseau | ||
| Line 29: | 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 : | + | '' |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | -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 | + | |
| - | -N Crée une chaîne définie | + | |
| - | -X Efface une chaîne définie par l'utilisateur | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | -d Adresse/ | + | |
| - | -i Interface réseau d'entrée (nom ethernet) | + | |
| - | -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'adresses | + | |
| - | -t Table à manipuler | + | |
| - | -v Mode bavard | + | |
| - | -x Vérifications étendues (affiche les valeurs exactes) | + | |
| - | -f Prends uniquement | + | |
| - | -V Version du paquet | + | |
| - | --line-numbers Affiche les numéros de ligne | + | |
| - | * Liées aux modules | + | Il est conseillé de faire du DROP sur la patte publique et du REJECT coté LAN utilisateurs pour les prévenir du filtrage. |
| - | | + | '' |
| - | --dport port destination | + | |
| - | --icmp-type identifie un paquet ICMP (echo-reply echo-request) | + | |
| + | * Liées aux modules | ||
| + | <code bash> | ||
| + | --sport port source | ||
| + | --dport port destination | ||
| + | --icmp-type identifie un paquet ICMP (echo-reply echo-request) | ||
| + | </ | ||
| =====Les extensions===== | =====Les extensions===== | ||
| - | | + | <code bash> |
| - | mac Vérifie que l' | + | Module |
| - | state Active l' | + | mac Vérifie que l' |
| - | limit Définit une limite sur le flux --limit, --limit-burst | + | state Active l' |
| - | owner Essaie de trouver des correspondances dans le créateur du paquet --uid-owner userid --gid-owner groupid --pid-owner processid --sid-owner sessionid | + | limit Définit une limite sur le flux --limit, --limit-burst |
| - | unclean Plusieurs tests de vérification aléatoires du bon état des paquets | + | 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 | ||
| + | </ | ||
| + | Pour lister les extensions chargées : '' | ||
| + | ====cstate / conntrack==== | ||
| - | =====Redirection===== | + | * Remplace l' |
| + | * On peut voir l' | ||
| + | * il existe un outil en CLI qui permet de manipuler les tables de session : **conntrack** | ||
| + | <code bash> | ||
| + | # afficher les connexions SSH ouvertes | ||
| + | conntrack -L -p tcp --dport 22 | ||
| - | Exemple | + | # lister les événements |
| + | conntrack -E | ||
| - | iptables | + | # supprimer une session ouverte : |
| - | iptables | + | conntrack |
| + | </ | ||
| + | |||
| + | ====multiport==== | ||
| + | Permet de spécifier une liste de ports non-contigüs et donc de limiter le nombre de ligne de conf. | ||
| + | <code bash> | ||
| + | # Ouverture des ports web/HTTPx | ||
| + | $IPTABLES -A INPUT -p tcp --match multiport --dports 80, | ||
| + | # ex2: ouverture des ports 80 et 8080 à 8099 | ||
| + | $IPTABLES -A INPUT -p tcp -m multiport --dports 80, | ||
| + | </ | ||
| + | |||
| + | |||
| + | =====Redirection (SNAT, MASQUERADE, DNAT)===== | ||
| + | |||
| + | 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, | ||
| + | |||
| + | Cela va être utile dans notre exemple pour permettre à tous les équipements d' | ||
| + | <code bash> | ||
| + | iptables -t NAT -A POSTROUTING -j SNAT --to-source 1.2.3.4 | ||
| + | </ | ||
| + | |||
| + | **MASQUERADE** : permet à iptables d' | ||
| + | |||
| + | <code bash> | ||
| + | iptables -t NAT -A POSTROUTING -o eth0 -j MASQUERADE | ||
| + | </ | ||
| + | |||
| + | **DNAT** : permet de modifier les IPs destinations, | ||
| + | |||
| + | Exemple de DNAT avec répartition de charge sur nos 2 serveurs : | ||
| + | <code bash> | ||
| + | iptables -t nat -A PREROUTING -p tcp -dport 80 -j DNAT --to-dest 192.168.0.1 --to-dest 192.168.0.2 | ||
| + | </ | ||
| + | |||
| + | 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 443 -j DNAT --to-dest proxyhost: | ||
| + | </ | ||
| =====Exemples===== | =====Exemples===== | ||
| Line 101: | Line 173: | ||
| iptables -I INPUT 1 -p tcp --dport 1165 -j ACCEPT | iptables -I INPUT 1 -p tcp --dport 1165 -j ACCEPT | ||
| + | |||
| + | * supprimer la règle précédente qui est en position #1 : 2 possibilités | ||
| + | |||
| + | iptables -D INPUT 1 | ||
| + | iptables -D INPUT -p tcp --dport 1165 | ||
| On accepte les paquets tcp à destination du port 1165 | On accepte les paquets tcp à destination du port 1165 | ||
| Line 115: | Line 192: | ||
| iptables -X | iptables -X | ||
| - | =====Divers===== | + | * modifier la politique par défaut d'une chaine (seuls ACCEPT et DROP sont des politiques valides) ; par ex : passer INPUT à DROP |
| - | ====Table de sessions==== | + | iptables -P INPUT -j DROP |
| - | Pour récupérer | + | * Créer une chaine personnalisée : permet de limiter les matches et simplifier les règles |
| - | | + | <code bash> |
| + | #création de la règle | ||
| + | iptables -N RH253 | ||
| + | iptables -t RH253 -p tcp -dport 80 | ||
| + | #" | ||
| + | iptables -A INPUT -s 192.168.0.0/24 -j RH253 | ||
| + | </code> | ||
| - | ====conntrack==== | + | * les règles iptables sont chargées en mémoire, donc perdues lors d'un reboot ; pour sauvegarder les règles : |
| + | <code bash> | ||
| + | # sous Redhat | ||
| + | service iptables save | ||
| + | # sous d' | ||
| + | iptables-save > / | ||
| + | # NB : pour les recharger ensuite | ||
| + | iptables-restore < / | ||
| + | </ | ||
| - | Conntrack est un logiciel qui permet de récupérer et modifier la table de sessions ouvertes depuis l' | ||
| - | Pour supprimer une session : | + | =====Exemple de script===== |
| - | conntrack -D -s 82.134.19.16 -d 192.168.2.1 -p tcp --orig-port-src 22 --orig-port-dst 55098 | + | |
| - | ====Classer les logs iptables dans un seul fichier, sans doublon==== | + | <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' | ||
| + | # | ||
| + | |||
| + | |||
| + | # | ||
| + | # Variables | ||
| + | # | ||
| + | IPTABLES="/ | ||
| + | INET_IFACE=" | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | INET_BROADCAST=" | ||
| + | INET_ADDR=" | ||
| + | LAN=" | ||
| + | ROUTER=" | ||
| + | VPN=" | ||
| + | |||
| + | 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 " | ||
| + | </ | ||
| + | |||
| + | * récupérer ces logs avec rsyslog, les mettre dans le fichier / | ||
| + | <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:// | ||
| + | * [[http:// | ||
| - | iptables -A INPUT -p tcp -j LOG --log-prefix " | ||
| - | * récupérer ces logs avec rsyslog, les mettre dans le fichier / | + | ====Rotation des logs==== |
| - | :msg,startswith," | + | Pour archiver les logs d' |
| - | & ~ # supprimer | + | <code bash> |
| + | /var/log/iptables.log { | ||
| + | # 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===== | ||
| - | [[http://blog.shadypixel.com/log-iptables-messages-to-a-separate-file-with-rsyslog/|source]] (entre autres) | + | * [[http://www.netfilter.org/documentation/ |
| + | * [[https:// | ||
informatique/linux/netfilter.1280486985.txt.gz · Last modified: 2013/10/14 20:54 (external edit)