Aturan Anda dipasang, terminal yang sudah Anda miliki terus menjawab, dan login berikutnya ditolak. Celah itulah seluruh kesulitan menguji perubahan firewall melalui koneksi yang sedang Anda ubah. Pelacakan koneksi memutuskan sekali lalu berhenti melihat, jadi aliran yang sudah terbentuk adalah satu-satunya pemeriksaan yang tidak dapat melihat kebijakan baru. Bagian berikut membandingkan tiga cara kembali, lalu menetapkan urutan mengubah dan memeriksa aturan.

Mengapa sesi yang bertahan adalah bukti terlemah

Firewall stateful mengevaluasi paket pertama suatu aliran dan menyimpan putusan itu selama entri masih hidup. Aturan yang ditambahkan sesudahnya berlaku untuk aliran yang mulai belakangan, itulah sebabnya jendela yang Anda ketikkan tetap bisa dipakai sementara semua orang lain ditolak. Apa pun yang Anda pelajari darinya menggambarkan kebijakan yang berlaku beberapa menit lalu. Bahkan tangkapan yang diambil pada aliran itu menunjukkan keputusan yang sudah diambil mesin.

Perlakukan sesi yang berfungsi sebagai jalan keluar darurat, bukan sebagai pengukuran. Setiap pemeriksaan yang layak dijalankan harus membuka aliran baru dari sumber yang akan dievaluasi aturan baru, dan pemeriksaan pertama seharusnya yang paling menyakitkan jika gagal. Ketika sesi itu adalah satu-satunya jalan masuk Anda, perubahan belum siap dilakukan.

Tiga cara kembali, diurutkan menurut apa yang menjadi sandaran masing-masing

Urutkan pilihan menurut seberapa bergantung pada perangkat yang diuji, karena urutan itulah yang Anda raih ketika aturan ternyata salah. Konsol yang tidak pernah melewati firewall itu independen, rollback yang dilatih hampir demikian, dan sesi yang sudah terbuka tidak.

Way back inWhat it survivesWhere it fails
out-of-band or hypervisor consolea policy that blocks new loginsneeds separate access you have already tried
rollback rehearsed on that platforma rule that breaks remote accessfails when nobody ever ran it
the session that is already openthe change itselfcannot show whether new flows work

Sebelum perubahan, masuk melalui konsol dan buktikan bahwa itu berfungsi, karena jalur out-of-band yang belum pernah Anda pakai adalah diagram, bukan cadangan. Rollback baru pantas setelah latihan di platform itu, dengan kumpulan aturan itu, mengikuti prosedur yang disetujui alih-alih berimprovisasi di mesin hidup. Tulis langkah-langkahnya dan minta orang lain membacakannya kembali. Jika urutannya membutuhkan ingatan Anda untuk selesai, itu bukan rencana.

Satu perubahan, lalu koneksi yang harus dievaluasi

Simpan kumpulan aturan yang berjalan dan file yang memilikinya, lalu lakukan satu penyuntingan sempit. Satu perubahan per uji membuat hasil tetap dapat diatribusikan; dua sekaligus meninggalkan Anda dengan mesin yang berfungsi dan tanpa tahu penyuntingan mana yang bekerja. Di tempat platform dapat mengurai konfigurasi tanpa memuatnya, lakukan itu lebih dulu, agar salah ketik gagal saat belum ada yang dipertaruhkan.

nft list ruleset > /root/ruleset.before
nft -c -f /etc/nftables.conf

Lalu mulai sesi baru dari sumber yang akan dicocokkan aturan yang diubah, sementara konsol masih terhubung. Ulangi sekali bila berhasil, karena percobaan pertama bisa mendarat pada entri yang sudah dipegang tabel. Bila gagal, Anda masih punya jalan masuk dan keputusan untuk dibatalkan, dan itu hasil buruk termurah yang tersedia.

Penghitung, status, dan file menjawab pertanyaan yang berbeda

Masing-masing dari tiga pengamatan dapat tampak meyakinkan sendiri dan menyesatkan Anda tentang dua lainnya. Penghitung menunjukkan apakah aliran yang baru Anda buat mencapai aturan yang Anda sunting. Tabel status menunjukkan aliran mana yang dianggap mesin sudah terbentuk, dan begitulah aturan yang rusak masih dapat tampak sehat. File yang disimpan menunjukkan apa yang akan dilakukan perangkat setelah muat ulang berikutnya, dan itu mungkin bukan yang dilakukan kumpulan aturan yang berjalan sekarang.

ss -tn state established

Baca penghitung sebagai delta, bukan total, karena satu-satunya angka yang penting adalah yang digerakkan aliran uji Anda. Aturan yang penghitungnya tidak pernah bertambah tidak cocok, seberapa benar pun tampaknya di atas kertas. Pastikan juga kasus penolakan: kebijakan yang tidak pernah menolak apa pun belum pernah membuktikan bahwa ia menolak apa yang ingin Anda blokir. Telusuri satu antarmuka di setiap keluarga yang benar-benar dibawa penerapan, karena aturan v4 tidak mengatakan apa pun tentang aliran v6.

Pulihkan dari kumpulan aturan yang disimpan, lalu selaraskan file

Ketika perubahan gagal, muat kumpulan aturan yang disimpan alih-alih menambahkan aturan permisif sampai login berfungsi lagi. Setiap izin tambahan meredam gejala dan meninggalkan lubang yang hidup lebih lama daripada insiden dan ingatannya. Pulihkan, sambungkan ulang, lalu simpan perbandingan yang gagal di samping catatan apa yang Anda coba.

Setelah perubahan berhasil, buat file di disk menggambarkan kumpulan aturan yang berjalan, dan pastikan muat ulang mereproduksinya. Kumpulan aturan hidup yang menyimpang dari file konfigurasinya sendiri adalah jebakan bagi reboot berikutnya.

Artikel terkait