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
Last revisionBoth sides next revision
informatique:linux:netfilter [2016/11/07 10:40] – [Redirection (SNAT, MASQUERADE, DNAT)] pteuinformatique:linux:netfilter [2020/04/14 07:35] – [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
 +</code>
 +
  
 =====Redirection (SNAT, MASQUERADE, DNAT)===== =====Redirection (SNAT, MASQUERADE, DNAT)=====
Line 100: Line 126:
                                               \____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 152:
 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 208:
 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 484:
 =====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 506:
   * [[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.txt · Last modified: 2021/03/18 13:16 by pteu