Saya mengkonfigurasi router Linux dengan iptables
. Saya ingin menulis tes penerimaan untuk konfigurasi yang menyatakan hal-hal seperti:
- lalu lintas dari beberapa pria di internet tidak diteruskan, dan
- TCP ke port 80 pada server web di DMZ dari host di LAN perusahaan diteruskan.
Sebuah FAQ kuno menyinggung iptables -C
opsi yang memungkinkan seseorang untuk bertanya sesuatu seperti, "diberikan paket dari X, ke Y, pada port Z, apakah itu akan diterima atau dibatalkan?" Meskipun FAQ menyarankannya berfungsi seperti ini, untuk iptables
(tapi mungkin tidak ipchains
seperti yang digunakan dalam contoh) -C
opsi tersebut tampaknya tidak mensimulasikan paket pengujian yang berjalan melalui semua aturan, tetapi memeriksa keberadaan untuk aturan yang sama persis. Ini memiliki nilai kecil sebagai ujian. Saya ingin menegaskan bahwa aturan memiliki efek yang diinginkan, bukan hanya aturan itu ada.
Saya telah mempertimbangkan untuk membuat lebih banyak VM uji dan jaringan virtual, kemudian memeriksa dengan alat seperti nmap
untuk efek. Namun, saya menghindari solusi ini karena kompleksitas menciptakan semua mesin virtual tambahan, yang sebenarnya merupakan cara yang cukup berat untuk menghasilkan beberapa traffic pengujian. Akan lebih baik jika memiliki metodologi pengujian otomatis yang juga dapat bekerja pada server nyata dalam produksi.
Bagaimana lagi saya bisa mengatasi masalah ini? Apakah ada beberapa mekanisme yang mungkin saya gunakan untuk menghasilkan atau mensimulasikan lalu lintas yang sewenang-wenang, lalu tahu apakah itu (atau akan) dijatuhkan atau diterima oleh iptables
?