Sur mon serveur Linux, j’utilise Shorewall en tant que firewall, qui est une sorte de surcouche d’iptables.
Pour administrer ce firewall depuis n’importe quel PC du réseau, j’utilise Webmin (interface web) + le plugin qui va bien (webmin-shorewall).
Cependant, si par hazard je me gourre dans la configuration (ça peut arriver), lorsque je vais cliquer sur “Appliquer les changements” le firewall peut ne pas se lancer, et me faire une erreur car il n’arrive pas à charger la nouvelle configuration.
A ce moment là iptables ne marche plus, et le serveur se retrouve coupé de tous réseau, je suis obligé d’aller sur le serveur himself pour corriger mon erreur et relancer le firewall.
D’où, la question: comment faire en sorte que si la configuration est erronée, le firewall ne se bloque pas lorsque je l’applique, et qu’il me soit alors possible de réparer mes erreurs à distance?
Peut être y a t-il un moyen de détecter les pannes empêchant iptables / Shorewall de redémarrer, dues à une mauvaise configuration, et de repasser sur la dernière configuration valable? Quelque chose comme ça peut être.
Bref, si vous avez des idées pour éviter un tel problème, ça m’intéresse!
je vois trois solutions, une pas optimale, une crade et une pas triviale…
la pas optimale : tu lance un crond qui vérifie toutes les X secondes que iptables est lancée et si c’est pas le cas le lance avec un fichier de configuration de base qui marche a coup sûr. C’est pas super dur à faire mais c’est ni très propre ni très optimal (tu fais tourner un démon quasiment pour rien)
la crade : tu change le nom de ton executable iptables vers iptables-vrai et tu créé et tu créés un executable iptables à la place qui va juste te lancer iptables, vérifier qu’il a été lancé et sinon, le lancer avec une config propre. Perso, je trouve ca hyper crade et ca risque de ne marcher qu’un moment (style jusqu’à la prochaine mise à jour d’iptables)
la pas triviale : tu te retrousses les manches et tu mets un parseur devant l’execution de iptable qui va te dire “apprends à écrire un fichier de config” a lieu de couper le net au serveur. C’est ce qu’il y a de plus propre, de plus récupérable mais aussi certainement de plus compliqué, parce qu’il faut coder ca dans l’intreface graphique.
Si tu veux pas te prendre la tête, tu fais la première, en sachant que ca implique de démarrer un démon de plus et que t’as un exe qui va être lancé toutes les x minutes (et la nuit, le grattage du disque à chaque execution risque d’être vite insupportable si le pc est dans ta piaule).
En fait il est vrai que c’est assez compliqué…
Le plugin Webmin de Shorewall effectue une relecture et signale les erreurs. Il signale aussi des règles impossibles à appliquer.
Seulement, pour des trucs complexes avec du DNAT partout, il m’est déjà arrivé d’avoir des problèmes, je ne sais pas si iptables était actif ou pas, mais toutes les connexions étaient coupées et j’ai du remettre correctement en local.