Un des aspects les plus importants et sous-estimés dans l'écriture de vos propres tables de règles est de savoir comment les déboguer, et retrouver les erreurs. Ce chapitre vous montrera quelques étapes de base dans le débogage de vos scripts, ainsi que certaines choses un peu plus élaborées pour éviter les problèmes de connexion à votre pare-feu lorsque vous avez accidentellement exécuté une règle incorrecte.
Tous ce que nous écrivons ici est fondé sur la supposition que les tables de règles de vos scripts sont écrites en shell Bash, mais elles peuvent facilement s'appliquer à d'autres environnements. Les tables de règles qui ont été sauvegardées avec iptables-save sont une autre partie du code. Les fichiers iptables-save sont simples et ne contiennent pas de code écrit à la main qui créent des règles spécifiques, ils sont aussi plus simples à déboguer.
Déboguer est plus ou moins une nécessité avec Iptables et Netfilter et les pare-feux en général. Le problème avec 99% des pare-feux est qu'à la fin c'est un comportement humain qui décide des stratégies et de la façon dont les tables de règles sont créées, et je peux vous promettre, qu'il est facile de faire une erreur dans l'écriture de vos tables. Parfois, ces erreurs sont très difficiles à voir à l'oeil nu, ou découvrir les trous laissés par le pare-feu. Les trous que nous ne connaissont pas ou qui ne sont pas intentionnels peuvent causer des dégâts dans nos réseaux, et créer de faciles entrées pour les attaquants. La plupart de ces trous peuvent être découverts aisément avec quelques bons outils.
En dehors de ça, nous pouvons écrire des bogues dans nos scripts, qui peuvent nous interdire d'ouvrir une session sur le pare-feu. Ceci peut également être résolu avec un peu de dextérité avant d'exécuter les scripts. Utiliser la pleine puissance du langage de script et de l'environnement système peut se révéler incroyablement utile, avec toutes les expériences que les administrateurs Unix ont déjà consignées, et c'est tout ce que nous faisons lors du débogage de nos scripts.