User Tools

Site Tools


informatique:linux:netfilter

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:linux:netfilter [2016/11/07 10:40] – [Redirection (SNAT, MASQUERADE, DNAT)] pteuinformatique:linux:netfilter [2021/03/18 13:16] (current) – [multiport] pteu
Line 81: Line 81:
  
 <code bash> <code bash>
-  Module  Description  Options étendues +Module  Description  Options étendues 
-  mac Vérifie que l'extension correspond pour les paquets entrants sur une adresse mac. --mac-source +mac Vérifie que l'extension correspond pour les paquets entrants sur une adresse mac. --mac-source 
-  state Active l'inspection des états --state (les états sont ESTABLISHED,RELATED, INVALID, NEW) +state Active l'inspection des états --state (les états sont ESTABLISHED,RELATED, INVALID, NEW) 
-  limit Définit une limite sur le flux --limit, --limit-burst +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 +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+unclean Plusieurs tests de vérification aléatoires du bon état des paquets
 </code> </code>
 +
 +Pour lister les extensions chargées : ''cat /proc/net/ip_tables_matches''
 +====cstate / conntrack====
 +
 +  * Remplace l'extension state
 +  * On peut voir l'état des connexions avec : ''cat /proc/net/ip_conntrack''
 +  * 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
 +
 +# lister les événements de conntrack en temps réel
 +conntrack -E
 +
 +# supprimer une session ouverte :
 +conntrack -D -s 82.134.19.16 -d 192.168.2.1 -p tcp --orig-port-src 22 --orig-port-dst 55098
 +</code>
 +  
 +====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,443,8080,8443 -j ACCEPT
 +# ex2: ouverture des ports 80 et 8080 à 8099
 +$IPTABLES -A INPUT -p tcp -m multiport --dports 80,8080-8099 -j ACCEPT
 +</code>
 +
  
 =====Redirection (SNAT, MASQUERADE, DNAT)===== =====Redirection (SNAT, MASQUERADE, DNAT)=====
Line 100: Line 128:
                                               \____serveur2 192.168.0.2 /24                                               \____serveur2 192.168.0.2 /24
                                               \____PCs clients 192.168.0.*/24                                               \____PCs clients 192.168.0.*/24
-</bash>+</code>
  
 **SNAT** : mis en place dans la chaine POSTROUTING, sert à masquer un réseau privé (c'est le cas de toutes les *box internet). Il remplace les IPs sources des paquets sortants. **SNAT** : mis en place dans la chaine POSTROUTING, sert à masquer un réseau privé (c'est le cas de toutes les *box internet). Il remplace les IPs sources des paquets sortants.
Line 126: Line 154:
 iptables -t nat -A PREROUTING -p tcp --dport 80  -j DNAT --to-dest proxyhost:3128 iptables -t nat -A PREROUTING -p tcp --dport 80  -j DNAT --to-dest proxyhost:3128
 iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-dest proxyhost:3128 iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-dest proxyhost:3128
-</bash>+</code>
  
 =====Exemples===== =====Exemples=====
Line 182: Line 210:
 service iptables save service iptables save
 # sous d'autres systèmes (e.g. Debian) # sous d'autres systèmes (e.g. Debian)
-iptables-save+iptables-save > /etc/iptables-dump 
 +# NB : pour les recharger ensuite 
 +iptables-restore < /etc/iptables-dump
 </code> </code>
  
Line 456: Line 486:
 =====Divers===== =====Divers=====
  
-====conntrack==== 
- 
-Conntrack est un logiciel qui permet de récupérer et modifier la table de sessions ouvertes depuis l'espace utilisateur. 
- 
-Pour récupérer la table des sessions ouvertes : 
-  cat /proc/net/ip_conntrack 
-   
-Pour supprimer une session : 
-  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==== ====Classer les logs iptables dans un seul fichier====
Line 487: Line 508:
   * [[http://wiki.rsyslog.com/index.php/Configuration_Samples|wiki rsyslog]]   * [[http://wiki.rsyslog.com/index.php/Configuration_Samples|wiki rsyslog]]
  
 +
 +====Rotation des logs====
 +
 +Pour archiver les logs d'iptables régulèrement, créer le fichier ''/etc/logrotate.d/iptables'' :
 +<code bash>
 +/var/log/iptables.log {
 +# tourner tous les jours
 +daily
 +missingok
 +notifempty
 +# compresser les archives
 +compress
 +# ne pas archiver l'archive la plus récente
 +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
 +    #/etc/rc.d/init.d/rsyslog restart ; sleep 5
 +    # ou
 +    /usr/lib/rsyslog/rsyslog-rotate
 +endscript
 +}
 +</code>
 =====Liens===== =====Liens=====
  
   * [[http://www.netfilter.org/documentation/HOWTO/fr/packet-filtering-HOWTO.txt|Documentation officielle : HOWTO]]   * [[http://www.netfilter.org/documentation/HOWTO/fr/packet-filtering-HOWTO.txt|Documentation officielle : HOWTO]]
 +  * [[https://help.ubuntu.com/community/IptablesHowTo|Ubuntu's iptables HOWTO]]
informatique/linux/netfilter.1478515211.txt.gz · Last modified: 2016/11/07 10:40 by pteu