Menguji perubahan firewall tanpa mengunci diri sendiri di luar
Susun laluan pemulihan anda sebelum peraturan masuk, kemudian sahkan dengan aliran yang mesti dinilai oleh dasar baharu, bukan dengan sesi yang terselamat.
Peraturan masuk, terminal yang sudah anda miliki terus menjawab, dan log masuk seterusnya ditolak. Jurang itulah seluruh kesukaran menguji perubahan firewall melalui sambungan yang sedang anda ubah. Penjejakan sambungan membuat keputusan sekali lalu berhenti memerhati, jadi aliran yang sudah mantap ialah satu-satunya pemeriksaan yang tidak dapat melihat dasar baharu. Yang berikut membandingkan tiga cara kembali, kemudian menetapkan urutan untuk mengubah dan memeriksa peraturan.
Mengapa sesi yang terselamat ialah bukti paling lemah
Firewall stateful menilai paket pertama sesuatu aliran dan mengekalkan keputusan itu selagi entri masih hidup. Peraturan yang ditambah selepas itu terpakai pada aliran yang bermula kemudian, itulah sebabnya tetingkap yang anda taip kekal boleh digunakan sementara semua orang lain ditolak. Apa pun yang anda pelajari daripadanya menggambarkan dasar yang berkuat kuasa beberapa minit lalu. Malah tangkapan yang diambil pada aliran itu menunjukkan keputusan yang sudah dibuat oleh mesin.
Layan sesi yang berfungsi sebagai jalan keluar kecemasan, bukan sebagai ukuran. Setiap pemeriksaan yang berbaloi mesti membuka aliran baharu daripada sumber yang akan dinilai oleh peraturan baharu, dan pemeriksaan pertama sepatutnya yang paling menyakitkan jika gagal. Apabila sesi itu satu-satunya jalan masuk anda, perubahan itu belum bersedia untuk dilakukan.
Tiga cara kembali, disusun mengikut apa yang setiap satu bergantung pada
Susun pilihan mengikut sejauh mana ia bergantung pada peranti yang diuji, kerana urutan itulah yang anda capai apabila peraturan ternyata salah. Konsol yang tidak pernah melalui firewall adalah bebas, gulung balik yang dilatih hampir begitu, dan sesi yang sudah terbuka tidak.
| Way back in | What it survives | Where it fails |
|---|---|---|
| out-of-band or hypervisor console | a policy that blocks new logins | needs separate access you have already tried |
| rollback rehearsed on that platform | a rule that breaks remote access | fails when nobody ever ran it |
| the session that is already open | the change itself | cannot show whether new flows work |
Sebelum perubahan, log masuk melalui konsol dan buktikan ia berfungsi, kerana laluan luar jalur yang tidak pernah anda gunakan ialah gambar rajah, bukan sandaran. Gulung balik hanya berbaloi selepas latihan pada platform itu, dengan set peraturan itu, mengikut prosedur yang diluluskan dan bukan berimprovisasi pada mesin hidup. Tulis langkah-langkahnya dan minta orang lain membacakannya kembali. Jika urutan itu memerlukan ingatan anda untuk selesai, ia bukan rancangan.
Satu perubahan, kemudian sambungan yang mesti dinilai
Simpan set peraturan yang sedang berjalan dan fail yang memilikinya, kemudian buat satu suntingan sempit. Satu perubahan setiap ujian mengekalkan hasil boleh diatribusikan; dua sekali gus meninggalkan anda dengan mesin yang berfungsi dan tiada idea suntingan mana yang berjaya. Di tempat platform boleh menghurai konfigurasi tanpa memuatkannya, lakukan itu dahulu, supaya kesilapan menaip gagal ketika tiada apa yang dipertaruhkan.
nft list ruleset > /root/ruleset.before
nft -c -f /etc/nftables.conf
Kemudian mulakan sesi baharu daripada sumber yang akan dipadankan oleh peraturan yang diubah, sementara konsol masih bersambung. Ulangi sekali jika berjaya, kerana percubaan pertama mungkin mendarat pada entri yang sudah dipegang jadual. Jika gagal, anda masih mempunyai jalan masuk dan keputusan untuk dibatalkan, dan itulah hasil buruk termurah yang tersedia.
Pembilang, keadaan dan fail menjawab soalan yang berbeza
Setiap satu daripada tiga pemerhatian boleh kelihatan meyakinkan sendiri dan mengelirukan anda tentang dua yang lain. Pembilang menunjukkan sama ada aliran yang baru anda cipta mencapai peraturan yang anda sunting. Jadual keadaan menunjukkan aliran mana yang dianggap mesin sudah mantap, dan begitulah peraturan yang rosak masih boleh kelihatan sihat. Fail yang disimpan menunjukkan apa yang akan dilakukan peranti selepas muat semula seterusnya, dan itu mungkin bukan apa yang dilakukan set peraturan yang berjalan sekarang.
ss -tn state established
Baca pembilang sebagai delta dan bukan jumlah, kerana satu-satunya nombor yang penting ialah yang digerakkan oleh aliran ujian anda. Peraturan yang pembilangnya tidak pernah bertambah tidak sepadan, walau betul mana pun ia kelihatan di atas kertas. Sahkan juga kes penolakan: dasar yang tidak pernah menolak apa-apa belum pernah membuktikan bahawa ia menolak apa yang anda mahu sekat. Lalui satu antara muka dalam setiap keluarga yang benar-benar dibawa oleh penggunaan, kerana peraturan v4 tidak mengatakan apa-apa tentang aliran v6.
Pulihkan daripada set peraturan yang disimpan, kemudian selaraskan fail
Apabila perubahan gagal, muat set peraturan yang disimpan dan bukannya menambah peraturan permisif sehingga log masuk berfungsi semula. Setiap kebenaran tambahan menenangkan gejala dan meninggalkan lubang yang hidup lebih lama daripada insiden dan ingatannya. Pulihkan, sambung semula, kemudian simpan perbandingan yang gagal di sebelah rekod apa yang anda cuba.
Selepas perubahan yang berjaya, jadikan fail pada cakera menggambarkan set peraturan yang sedang berjalan, dan sahkan bahawa muat semula menghasilkannya semula. Set peraturan hidup yang telah menyimpang daripada fail konfigurasinya sendiri ialah perangkap untuk but semula seterusnya.