Peraturan UFW Baharu, Sambungan Lama: Keadaan Ditetapkan Menang
Penafian laluan UFW yang terbatas melangkau trafik yang telah diterima oleh peraturan sebelumnya. Lihat tempat menyisipkannya dan apa yang masih diluluskan oleh keadaan ditetapkan.
Menambah peraturan penafian dan melihat muat turun terbuka berterusan bukan pepijat UFW. Peraturan yang anda tambah terletak selepas peraturan yang telah menerima aliran itu, dan sambungan yang ditetapkan lebih awal terus sepadan dengannya. Membetulkannya bermakna menyisipkan di kedudukan yang betul dan memahami apa yang dijanjikan peraturan terdahulu. Versi sempit perubahan itu adalah seperti berikut.
Urutan yang menentukan, bukan kewujudan peraturan
UFW ialah antara muka yang menulis peraturan netfilter secara berperingkat: bahagian kerangka yang berjalan sebelum peraturan pengguna, kemudian peraturan pengguna itu sendiri, kemudian bahagian yang berjalan selepasnya. Peraturan sebelum lalai menerima trafik sambungan ditetapkan dan berkaitan, dan peraturan itu dinilai sebelum apa-apa yang anda tambah dengan allow atau deny biasa. Rujukan arahan UFW mendokumenkan sintaks sisipan dan paparan status bernombor yang menjadi asas perubahan ini.
Urutan itu menjelaskan kehairanan. Peraturan baharu anda benar dan berada dalam jadual yang betul, tetapi ia bukan keputusan pertama yang ditemui oleh paket. Sambungan yang sudah dijejaki sebagai ditetapkan tidak pernah mencapainya.
Gunakan peraturan route untuk kerja ini, kerana paket itu diteruskan melalui gerbang dan bukan dialamatkan kepada perkhidmatan gerbang itu sendiri. Peraturan input akan menapis trafik yang salah dan kelihatan tidak melakukan apa-apa.
Sisipkan di atas kebenaran yang luas
Pratonton sisipan sebelum menerapkannya, dan pastikan peraturan itu belum wujud di tempat lain dalam senarai. Menduplikasi dasar yang sama menjadikan pembuangan kemudian kabur, dan orang yang membuang salinan yang salah tidak akan menyedarinya selama berminggu-minggu.
sudo ufw --dry-run route insert 1 deny in on tun0 proto tcp from 10.88.0.55/32 to 192.0.2.88/32
Jika pratonton menunjukkan tepat satu peraturan pada kedudukan yang anda jangkakan, gunakan arahan yang sama tanpa bendera dry-run. Kedudukan 1 meletakkannya di atas kebenaran pengguna yang lebih luas, bukan di atas peraturan kerangka yang dibincangkan tadi. Sahkan nama antara muka sepadan dengan peranti terowong pada gerbang ini, kerana peraturan yang terikat pada antara muka yang tidak lagi wujud akan kekal dalam senarai dan kelihatan betul tanpa sepadan dengan apa-apa. Namakan semula rujukan peranti sebelum menggunakan, bukan selepas ujian gagal.
Tiada port destinasi dalam peraturan itu, jadi ia menafikan setiap port TCP pada alamat itu dan bukan hanya HTTPS. Jika niatnya satu perkhidmatan, namakan port itu; peraturan yang lebih luas daripada dasar ialah insiden masa depan yang menunggu pembaca pertamanya.
Hadkan sumber kepada satu alamat hanya jika alamat itu terikat pada identiti yang dimaksudkan. Kolam VPN dengan peruntukan dinamik boleh memberikan alamat yang sama kepada klien lain esok, dan penafian akan mengikut alamat itu dan bukan orangnya.
Aliran ditetapkan bertahan daripada peraturan baharu
Penjejakan sambungan ialah sebab sesi sedia ada berterusan. Sebaik sahaja aliran direkodkan sebagai ditetapkan, peraturan sebelum menerima paketnya sebelum penafian anda dirujuk, dan pemindahan selesai seolah-olah tiada apa yang berubah. Oleh itu, menguji dengan pelayar yang menggunakan semula sambungan terbuka tidak memberitahu anda apa-apa tentang dasar baharu. Penafian boleh kelihatan tidak berguna beberapa minit selepas penggunaan dan sepenuhnya berkesan untuk pengguna seterusnya yang menyambung.
Jika keperluan termasuk memotong trafik langsung, perubahan peraturan pengguna ini tidak dapat menyediakannya. Membatalkan keadaan yang dijejaki ialah tindakan berasingan dengan jejari kesannya sendiri, dan ia milik pemilik firewall dan bukan kepada sesiapa yang menambah peraturan. Mengosongkan setiap sambungan pada gerbang supaya satu sesi hilang ialah jenis pembaikan yang menjana insiden kedua.
Ingat juga hadnya. Peraturan ini tidak berkata apa-apa tentang ICMP, UDP atau IPv6, jadi ping yang berjaya bukan bukti bahawa penafian gagal. Satu alamat IPv4 juga bukan laman web: nama boleh diselesaikan kepada beberapa alamat, dan hanya yang anda namakan dilindungi.
Uji dengan aliran baharu
Baca peraturan pengguna bernombor dan paparan mentah yang berkesan, kemudian buka sambungan baharu daripada klien yang dipilih:
sudo ufw status numbered
sudo ufw show raw
# from 10.88.0.55, a new TCP connection to 192.0.2.88 should fail
Paparan mentah penting kerana status meninggalkan peraturan kerangka yang ditulis dengan tangan, jadi urutan boleh kelihatan berbeza daripada yang dikuatkuasakan oleh kernel. Bandingkan kedua-duanya sebelum membuat kesimpulan bahawa sesuatu peraturan berada di tempat yang salah.
Kemudian semak dua kawalan yang membuktikan peraturan itu terbatas dan bukan luas: destinasi yang dibenarkan daripada klien yang sama masih berfungsi, dan klien kedua masih mencapai destinasi yang dinafikan jika dasarnya membenarkan. Penafian yang merosakkan kedua-dua ujian ialah perubahan dasar, bukan tindakan bersasar.
Setelah ujian selesai, buang hanya peraturan yang anda tambah, dengan menyatakannya semula dengan tepat. Jika dasar itu kekal, serahkan kepada pemilik firewall bersama identiti klien, pemilik destinasi dan tarikh semakan, supaya alamat terowong yang diperuntukkan semula tidak meninggalkan penafian lapuk.