Ich konfiguriere einen Linux Router mit iptables
. Ich möchte Abnahmetests für die Konfiguration schreiben, die Folgendes bestätigen:
- Datenverkehr von einem Kerl im Internet wird nicht weitergeleitet, und
- TCP wird von Hosts im Unternehmens-LAN an Port 80 auf dem Webserver in der DMZ weitergeleitet.
Eine alte FAQ spielt auf eine iptables -C
Option an, mit der man etwas fragen kann wie: "Würde ein Paket von X nach Y an Port Z angenommen oder verworfen werden?" Obwohl die FAQ vermuten lässt, dass dies so funktioniert, scheint die Option iptables
(aber möglicherweise nicht so, ipchains
wie sie in den Beispielen verwendet wird) -C
nicht ein Testpaket zu simulieren, das alle Regeln durchläuft, sondern prüft, ob eine genau übereinstimmende Regel vorhanden ist. Dies hat als Test wenig Wert. Ich möchte behaupten, dass die Regeln den gewünschten Effekt haben, nicht nur, dass sie existieren.
Ich habe darüber nachgedacht, noch mehr Test-VMs und ein virtuelles Netzwerk zu erstellen und dann mit Tools wie nmap
Effekten zu suchen. Ich vermeide diese Lösung jedoch aufgrund der Komplexität der Erstellung all dieser zusätzlichen virtuellen Maschinen. Dies ist eine recht schwierige Methode, um Testdatenverkehr zu generieren. Es wäre auch schön, eine automatisierte Testmethode zu haben, die auch auf einem realen Server in der Produktion funktioniert.
Wie könnte ich dieses Problem sonst lösen? Gibt es einen Mechanismus, mit dem ich willkürlichen Datenverkehr generieren oder simulieren kann und dann weiß, ob er von gelöscht oder akzeptiert wurde (oder werden würde) iptables
?