Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== iptables ====== Pare-feu de Linux, voir //netfilter//. Tout faire en //sudo//. Plusieurs outils existent dans le parefeu: * ''iptables'' * ''ip6tables'' * ''ebtables'' * ''arptables'' Sources à explorer: * [[https://opensource.com/article/18/10/iptables-tips-and-tricks]] * [[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 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: ==== <code bash> iptables-save </code> ==== Afficher les règles de la table NAT: ==== <code bash> iptables -L --line-numbers -t nat </code> ==== Supprimer la règle n°1 en POSTROUTING de la table NAT: ==== (le numéro provient de la liste obtenue avec la commande précédente) <code bash> iptables -t nat -D POSTROUTING 1 </code> ==== Faire du SNAT ==== //SNAT//: //Source NAT//: transformer l'IP source en A des paquets à destination de B: <code bash> iptables -t nat -A POSTROUTING -d B -j SNAT --to-source A </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.txt Dernière modification : 2021/11/29 22:28de phsw