Le filtrage avec iptables


précédentsommairesuivant

18. Annexe A. Explication détaillée des commandes spéciales

18-1. A.1. Afficher votre table de règles

Pour afficher votre table de règles, vous devez passer une option spéciale à la commande iptables, dont nous avons brièvement parlé dans le chapitre Création d'une règleCréation d'une règle. Ceci pourrait ressembler à ça :

 
Sélectionnez
iptables -L

Cette commande affichera votre table de règles active, et la traduira dans une forme lisible. Par exemple, elle traduira tous les différents ports selon le fichier /etc/services aussi bien que le DNS de toutes les adresses IP pour en obtenir des enregistrements. Cette dernière peut poser un léger problème. Par exemple, elle tentera de résoudre les adresses IP LAN, i.e., 192.168.1.1, en quelque chose de plus fonctionnel. 192.168.0.0/16 est une plage d'adresses privées et la commande semblera se figer. Pour résoudre ce problème, nous ferons comme suit :

 
Sélectionnez
iptables -L -n

Une autre chose qui peut être intéressante c'est de voir quelques statistiques concernant chaque stratégie, règle et chaîne.

 
Sélectionnez
iptables -L -n -v

N'oubliez pas qu'il est également possible d'afficher les tables nat et mangle. Ceci est fait avec l'option -t, comme ça :

 
Sélectionnez
iptables -L -t nat

Il y a aussi quelques fichiers qu'il serait intéressant de regarder dans le système de fichiers /proc. Par exemple, savoir quelles connexions sont en cours dans la table conntrack. Cette table contient toutes les connexions tracées et sert de table de base, ainsi nous pouvons toujours connaître l'état de nos connexions. Cette table ne peut être éditée, et même si c'était le cas, ce ne serait pas une bonne idée. Pour voir la table, exécutez la commande :

 
Sélectionnez
cat /proc/net/ip_conntrack | less

La commande ci-dessus indique toutes les connexions tracées même si ça peut être un peu difficile de tout comprendre.

18-2. A.2. Mise à jour et vidange des tables

Si à un certain moment vous sabotez votre iptables, il existe des commandes pour le vidanger, ainsi vous n'aurez pas à rebooter. J'ai abordé cette question plusieurs fois, ainsi je crois que la réponse ici sera correcte. Si vous faites une erreur dans une règle, vous n'avez juste qu'à changer les paramètres de -A en -D dans la ligne qui contient l'erreur. iptables trouvera la ligne erronée et l'effacera pour vous, dans le cas où vous avez de multiples lignes avec des erreurs identiques dans la chaîne, il supprimera la première instance et fera l'appariement de votre règle. Si ce n'est pas le comportement voulu vous pouvez essayer d'utiliser l'option -D comme dans iptables -D INPUT 10 laquelle effacera la dixième règle de la chaîne INPUT.

Il y a aussi certains cas où vous voudrez vider une chaîne complète, dans ces cas vous exécuterez l'option -F. Par exemple, iptables -F INPUT supprimera la chaîne INPUT en totalité, mais ne modifiera pas la stratégie par défaut, ainsi si elle est placée à DROP vous bloquerez la chaîne INPUT. Pour réinitialiser la stratégie de la chaîne, qui était placée à DROP, faites par exemple, iptables -P INPUT ACCEPT.

J'ai écrit un rc.flush-iptables.txtJ.5. Exemple rc.flush-iptables script (disponible dans l'annexe) qui vide et réinitialise votre iptables que vous pouvez utiliser lors de l'écriture de votre fichier rc.firewall.txt. Une chose encore, si vous démarrez avec une table mangle qui contient des erreurs, le script ne les supprimera pas, il est plus simple d'ajouter quelques lignes pour les supprimer. Je ne l'ai pas fait, car la table mangle n'est pas utilisée dans mon script rc.firewall.txt.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2001-2006 Oskar Andreasson
La permission est accordée de copier, distribuer et/ou modifier ce document selon les termes de la « GNU Free Documentation License », version 1.1; en précisant les sections « Introduction » et toutes les sous-sections, avec les en-têtes « Auteur: Oskar Andreasson ». Une copie de la licence est inclue dans la section intitulée « GNU Free Documentation License ».
Tous les scripts de ce tutoriel sont couverts par la GNU General Public License. Les scripts sont de source libre; vous pouvez les redistribuer et/ou les modifier selon les termes de la GNU General Public License publiée par la « Free Software Foundation », version 2.
Ces scripts sont distribués dans l'espoir qu'ils seront utiles, mais SANS AUCUNE GARANTIE; sans même la garantie implicite qu'ils soient VENDABLES ou une QUELCONQUE APTITUDE POUR UN PROPOS PARTICULIER. Voir la GNU General Public License pour plus de détails.
Vous devriez avoir une copie de la GNU General Public License dans ce tutoriel, dans la section intitulée « GNU General Public License »; si ce n'est pas le cas, écrivez à la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.