linux:iptables

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
linux:iptables [2018/10/16 23:07] – ↷ Page déplacée de iptables à linux:iptables phswlinux:iptables [2021/11/29 22:28] (Version actuelle) – add persist rules phsw
Ligne 9: Ligne 9:
   * ''arptables''   * ''arptables''
  
-==== Syntaxe globale ==== +Sources à explorer: 
-  * ''-t <table>'' indique quelle table on manipule (''nat'', ''filter'') +  * [[https://opensource.com/article/18/10/iptables-tips-and-tricks]] 
-  * ''-j'' indique l'action à effectuer avec le paquet sélectionné  +  * [[http://olivieraj.free.fr/fr/linux/information/firewall/index.html]] 
 +  * [[https://www.kitploit.com/2019/02/iptables-essentials-common-firewall.html]] 
 +  * [[https://iximiuz.com/en/posts/laymans-iptables-101/]] 
 +  * [[https://www.thegeekstuff.com/2012/08/iptables-log-packets/|How to Log Linux IPTables Firewall Dropped Packets to a Log File]] 
 + 
 + 
 +[[https://iximiuz.com/en/posts/laymans-iptables-101/|{{ https://iximiuz.com/laymans-iptables-101/iptables-stages-white.png?500 }}]] 
 +[[https://iximiuz.com/en/posts/laymans-iptables-101/|Source l'image]] 
 + 
 + 
 +On insère dans des **tables** des **règles** qui vont agir sur des **chaînes**. 
 + 
 +La table ''filter'' (par défaut) contient les chaînes ''OUTPUT'', ''INPUT'' et ''FORWARD''. Elle permet d'accepter (''-j ACCEPT''ou rejeter (''-j DROP'') des paquets. 
 + 
 +La table ''nat'' contient les chaînes ''PREROUTING'', ''POSTROUTING'' et ''OUTPUT''. Elle permet de modifier des paquets avant de les traiter. 
 + 
 +On indique quelle table on manipule avec le paramètre ''-t''
 + 
 + 
 + 
 +==== Afficher les règles en place ==== 
 + 
 +<code bash> 
 +iptables -L 
 +iptables -t nat -L 
 +watch --interval=1 'sudo iptables -L -v -n | grep -v "    0 "' # voir en temps réel les règles qui sont utilisées 
 +iptables -S # donne les règles sous forme de commandes iptables 
 +</code> 
 + 
  
 ==== Exporter facilement les règles: ==== ==== Exporter facilement les règles: ====
Ligne 35: Ligne 64:
 </code> </code>
  
-==== Faire du SNAT====+==== Faire du SNAT ====
  
 //SNAT//: //Source NAT//: transformer l'IP source en A des paquets à destination de B: //SNAT//: //Source NAT//: transformer l'IP source en A des paquets à destination de B:
Ligne 42: Ligne 71:
 iptables -t nat -A POSTROUTING -d B -j SNAT --to-source A iptables -t nat -A POSTROUTING -d B -j SNAT --to-source A
 </code> </code>
 +
 +
 +==== Changer l'IP de destination des paquets, pour les prendre en charge ====
 +
 +<code bash>
 +sudo iptables -t nat -A PREROUTING -s 192.168.12.2 -j DNAT --to 192.168.12.100
 +# ou
 +sudo iptables -t nat -A PREROUTING -s 192.168.12.2 -d 192.168.12.1 -j REDIRECT
 +</code>
 +Les paquets venant de 192.168.12.2 (vers 192.168.12.1) sont traités par notre machine (qui a l'IP 192.168.12.100).
 +
 +''PREROUTING'' signifie qu'on applique les changements sur le paquets dès qu'il arrive sur l'interface réseau: une règle iptables existe pour ce paquet, donc il est pris en charge par la machine et n'est pas forwardé.
 +
 +
 +==== Autoriser le forwarding de paquets ====
 +
 +<code bash>
 +sudo iptables -P FORWARD ACCEPT
 +</code>
 +
 +
 +
 +==== Persister les règles au redémarrage ====
 +
 +[[https://wiki.debian.org/iptables|Source]]
 +
 +Installer le paquet ''iptables-persistent'', puis:
 +<code bash>
 +iptables-save -f /etc/iptables/rules.v4
 +</code>
 +
 +
 +
 +
  • linux/iptables.1539724067.txt.gz
  • Dernière modification : 2021/04/04 17:01
  • (modification externe)