Aturan firewall khusus NEW tidak menutup semua jalur WAN
Menolak koneksi NEW membiarkan alur yang sudah terbentuk dan balasannya apa adanya. Baca status conntrack, urutan aturan, dan pengecualian sebelum menyebut kebijakan tertutup.
Menolak koneksi keluar baru di WAN terlihat seperti kebijakan gagal-tertutup, tetapi itu janji yang lebih sempit daripada kelihatannya. Paket milik alur yang sudah ada tidak cocok dengannya, dan banyak balasan juga tidak. Celah ini mudah terlewat karena aturannya terbaca seolah mencakup antarmuka, bukan satu status koneksi di atasnya. Dan membaca kecocokan status sebagai putusan itulah yang menciptakan rasa tertutup yang keliru.
Status adalah syarat kecocokan, bukan putusan
Pelacakan koneksi mengklasifikasikan paket berdasarkan apa yang telah dilihat firewall, bukan berdasarkan apa yang dipercaya aplikasi. Alur yang diamati di kedua arah bersifat terbentuk, dan paket-paket berikutnya tetap terbentuk bahkan ketika rute di bawahnya berubah dari terowongan ke uplink biasa. Balasan atas koneksi masuk juga bisa berupa lalu lintas terbentuk. Paket-paket itu tidak pernah menjadi baru lagi.
Karena itu aturan yang dibatasi pada koneksi baru tidak dapat membuktikan bahwa setiap paket yang dilindungi diblokir. Aturan itu menyerahkan status lain kepada apa yang dilakukan sisa kumpulan aturan terhadapnya, yang bisa berupa penerimaan yang ditempatkan lebih awal dalam rantai.
Baca aturan dalam konteks sekitarnya
Penerimaan luas untuk lalu lintas terbentuk dan terkait yang ditempatkan sebelum blokir meloloskan paket sebelum blokir itu dievaluasi. Menghapus syarat status dari aturan berikutnya tidak akan mengubahnya, karena evaluasi tidak pernah mencapainya. Urutan menentukan hasil, dan kecocokan status menentukan paket mana yang mencapai urutan itu.
Periksa kumpulan aturan yang berlaku, bukan berkas yang Anda sunting, termasuk lompatan ke rantai lain dan semua yang dihasilkan platform. Pada router yang dikelola iptables, pencatatan rantai menunjukkan definisi aturan, dan rantai yang dirujuknya juga harus diikuti. Sistem nftables asli perlu diperiksa kumpulan aturan dan prioritas hook-nya, karena firmware jarang menghasilkan rantai yang identik.
Penghitung memberi tahu aturan mana yang benar-benar cocok, dan biasanya lebih informatif daripada tangkapan paket yang diambil setelah keputusan. Aturan dengan penghitung nol belum tercapai, apa pun yang disiratkan posisinya.
Nyatakan larangan secara independen dari status
Jika sekelompok klien tidak boleh pernah mencapai internet di luar terowongan, katakan itu langsung alih-alih mendekatkannya dengan satu status. Aturan harus memilih berdasarkan sumber, keluaran, dan tujuan tanpa bergantung pada status koneksi, dan harus berada di tempat yang tidak dapat dilewati penerimaan sebelumnya. Akses pengelolaan dan pengecualian jaringan lokal kemudian mendapat aturan eksplisitnya sendiri, sehingga maksudnya terlihat dalam kebijakan.
Memilih reject alih-alih drop mengubah cara lalu lintas yang cocok gagal, dan itu tidak memperluas kumpulan paket yang dipilih aturan. Koneksi yang ditolak dan waktu tunggu yang senyap adalah gejala berbeda yang menunjuk pada pilihan yang sama.
Kebijakan yang sengaja mengizinkan balasan atas akses yang dimulai dari jarak jauh melalui WAN dapat dipertahankan. Kebijakan itu hanya perlu dijelaskan seperti itu alih-alih disajikan sebagai isolasi total hanya melalui terowongan.
Periksa siapa yang sebenarnya ada di dalam grup
Contohnya mencakup lalu lintas IPv4 yang diteruskan dari satu prefiks keluar dari satu antarmuka. Contoh itu tidak mengatakan apa pun tentang IPv6, uplink kedua, atau lalu lintas yang dibuat router itu sendiri. Router yang bertindak sebagai penyelesai DNS mengirim kueri hulu miliknya sendiri, dan kueri itu tidak melewati rantai forward sama sekali.
Pastikan klien yang dilindungi masih memegang alamat di dalam prefiks yang dipilih, karena perangkat yang pindah ke luarnya menjadi langsung secara kebetulan dan bukan karena kebijakan. Memperluas blokir ke seluruh LAN tanpa meninjau rancangan pengecualian juga cenderung menghapus jalur administratif Anda sendiri.
iptables -S FORWARD
iptables -L FORWARD -v -n
cat /proc/net/nf_conntrack | grep -c ESTABLISHED
Lalu ujilah alur lama di samping alur baru. Percobaan koneksi baru dan transfer dua arah yang sudah aktif berperilaku berbeda di bawah aturan ini, dan hanya menguji keduanya yang menunjukkan kebijakan mana yang sebenarnya Anda miliki.