Je configure un routeur Linux avec iptables
. Je veux écrire des tests d'acceptation pour la configuration qui affirment des choses comme:
- le trafic d'un type sur Internet n'est pas transmis, et
- Le TCP vers le port 80 sur le serveur Web dans la DMZ à partir d'hôtes sur le LAN de l'entreprise est transféré.
Une ancienne FAQ fait allusion à une iptables -C
option qui permet de demander quelque chose comme, "étant donné un paquet de X, à Y, sur le port Z, serait-il accepté ou abandonné?" Bien que la FAQ suggère que cela fonctionne comme ceci, car iptables
(mais peut-être pas ipchains
comme il l'utilise dans les exemples), l' -C
option ne semble pas simuler un paquet de test exécutant toutes les règles, mais vérifie plutôt l'existence d'une règle de correspondance exacte. Cela a peu de valeur en tant que test. Je veux affirmer que les règles ont l'effet souhaité, pas seulement qu'elles existent.
J'ai envisagé de créer encore plus de machines virtuelles de test et un réseau virtuel, puis de tester avec des outils comme les nmap
effets. Cependant, j'évite cette solution en raison de la complexité de la création de toutes ces machines virtuelles supplémentaires, ce qui est vraiment un moyen assez lourd de générer du trafic de test. Il serait également intéressant d'avoir une méthodologie de test automatisée qui peut également fonctionner sur un vrai serveur en production.
Sinon, comment pourrais-je résoudre ce problème? Existe-t-il un mécanisme que je pourrais utiliser pour générer ou simuler du trafic arbitraire, puis savoir s'il a été (ou serait) rejeté ou accepté iptables
?