Konfiguruję router z systemem Linux iptables
. Chcę napisać testy akceptacyjne dla konfiguracji, które potwierdzają:
- ruch z jakiegoś faceta w Internecie nie jest przekazywany, i
- Przesyłany jest protokół TCP do portu 80 na serwerze WWW w strefie DMZ z hostów w korporacyjnej sieci LAN.
Starożytne FAQ odnosi się do iptables -C
opcji, która pozwala zapytać: „biorąc pod uwagę pakiet od X do Y na porcie Z, czy zostałby zaakceptowany czy odrzucony?” Chociaż FAQ sugeruje, że tak to działa, ponieważ iptables
(ale może nie ipchains
tak, jak w przykładach) -C
opcja wydaje się nie symulować pakietu testowego przebiegającego przez wszystkie reguły, ale sprawdza, czy istnieje dokładnie pasująca reguła. Ma to niewielką wartość jako test. Chcę stwierdzić, że reguły mają pożądany efekt, a nie tylko to, że istnieją.
Zastanawiałem się nad stworzeniem kolejnych testowych maszyn wirtualnych i sieci wirtualnej, a następnie sondowaniem za pomocą narzędzi takich jak nmap
efekty. Jednak unikam tego rozwiązania ze względu na złożoność tworzenia tych wszystkich dodatkowych maszyn wirtualnych, co jest naprawdę dość ciężkim sposobem na wygenerowanie ruchu testowego. Byłoby również miło mieć zautomatyzowaną metodologię testowania, która może również działać na prawdziwym serwerze w produkcji.
Jak inaczej mogę rozwiązać ten problem? Czy istnieje jakiś mechanizm, którego mógłbym użyć do wygenerowania lub symulacji dowolnego ruchu, a następnie wiedzieć, czy zostałby (lub zostałby) odrzucony lub zaakceptowany przez iptables
?