Skrip turun atau peraturan firewall: yang mana menghentikan kebocoran?
Menurunkan antara muka semasa putus sambungan itu kasar dan selalunya berjalan tanpa keistimewaan. Bandingkan dengan peraturan firewall yang bertahan selepas putus dan menutup jurang.
Dua reka bentuk menjanjikan perkara yang sama: apabila terowong jatuh, tiada apa keluar dalam bentuk terbuka. Satu menjalankan skrip semasa pembongkaran dan memotong antara muka. Satu lagi membiarkan peraturan firewall berkuat kuasa dan tidak meminta apa-apa daripada klien VPN. Kedua-duanya berbeza dari segi siapa yang mempunyai keistimewaan untuk bertindak, apa yang berlaku semasa jurang dan bagaimana mesin kembali dalam talian selepas itu. Membandingkan keduanya pada tiga perkara itu lebih berguna daripada berdebat mana yang lebih ketat.
Kerja yang sama melalui dua mekanisme
Klien boleh menjalankan cangkuk apabila terowong naik dan apabila ia dibongkar, dengan syarat profil membenarkan pelaksanaan skrip. Cangkuk itu berjalan dalam kitaran hayat klien, pada saat sambungan menutup. Peraturan firewall, sebaliknya, dimiliki sistem dan tidak mengambil peduli sama ada klien berjalan, terhempas atau telah dibunuh.
| Property | Teardown script | Firewall unit |
|---|---|---|
| Runs when the client is killed | No | Yes |
| Needs privilege at teardown time | Usually yes | Configured once, at boot |
| Acts on the whole machine | Often, including recovery paths | Only on the flows it matches |
Jadual itu ialah seluruh hujah. Skrip yang hanya berjalan pada penutupan teratur meliputi kes yang paling kurang anda risaukan; kes yang penting ialah terhempas atau rangkaian yang hilang, dan kedua-duanya tidak menghasilkan pembongkaran bersih.
Apa yang boleh dan tidak boleh dilakukan cangkuk pembongkaran
Corak yang didokumenkan menelusuri antara muka rangkaian dan menurunkan segala-galanya kecuali loopback. Apabila peranti fizikal diturunkan, tiada apa yang boleh terlepas ke luar terowong, dan itulah niatnya.
#!/bin/sh
for dev in /sys/class/net/*; do
name=$(basename "$dev")
[ "$name" = lo ] || ip link set dev "$name" down
done
Ia juga menurunkan rangkaian tempatan, apa-apa perkhidmatan yang dihoskan mesin, dan laluan yang anda akan gunakan untuk membaiki masalah. Pada komputer riba peranti tanpa wayar kadangkala perlu ditukar secara manual selepas itu, jadi gangguan singkat menjadi sesi pembaikan. Lebih teruk lagi, cangkuk itu mungkin tidak dibenarkan melakukan apa-apa daripada itu: apabila klien melepaskan keistimewaan, skrip pembongkaran berjalan sebagai akaun tanpa keistimewaan, dan setiap perubahan antara muka gagal dengan ralat kebenaran yang ditulis pada saat tiada siapa membaca log.
Periksa bagaimana klien dimulakan sebelum mempercayai cangkuk itu. Skrip yang berfungsi apabila dijalankan secara manual sebagai root tidak membuktikan apa-apa tentang perkhidmatan yang bermula semasa but.
Apa yang peraturan firewall lakukan secara berbeza
Peraturan yang hanya membenarkan trafik terowong terus berfungsi apabila proses klien hilang, kerana kernel tidak bergantung pada proses itu. Peraturan itu juga lebih sempit: ia menyekat tepat aliran yang dipadankannya dan membiarkan loopback, subrangkaian tempatan dan laluan pemulihan, sebab itulah ia tidak menggantung mesin tanpa jalan keluar.
Harganya ialah peraturan itu mesti ditulis dan diselenggara oleh pemilik firewall hos, dan ia mesti menamakan peranti terowong yang sebenarnya dicipta klien. Ini bermakna peraturan dan profil mesti diselenggara bersama; antara muka yang dinamakan semula meninggalkan firewall yang menyekat segala-galanya dan tidak menjelaskan apa-apa.
Tiada satu mekanisme menjadikan yang lain berlebihan. Peraturan firewall yang tidak pernah dimuat semula selepas disunting sama fiksyennya dengan skrip yang tidak pernah berjalan.
persist-tun menentukan sama ada jurang wujud
Apabila peranti terowong bertahan selepas putus sambungan, laluan yang menunjuk ke dalamnya juga bertahan. Trafik kemudiannya digugurkan dan bukan dialihkan semula, jadi laluan lalai tidak jatuh kembali ke get laluan fizikal. Tingkah laku inilah yang menjadikan kebocoran tidak mungkin walaupun sebelum mana-mana peraturan firewall terlibat.
Tanpa tetapan itu peranti dialihkan keluar dan laluan bersamanya, dan laluan lalai boleh menunjuk semula ke get laluan fizikal. Sama ada ia berbuat demikian bergantung pada platform dan klien, dan sebab itulah keadaan mesti diperhatikan dan bukan diandaikan. Anggap tetapan itu sebagai sebahagian daripada kill switch, bukan pilihan prestasi.
Kekalkan laluan penyambungan semula hidup, kemudian uji empat keadaan
Sekatan ketat juga boleh menghalang klien daripada menyambung semula, kerana klien masih memerlukan laluan ke pelayan melalui get laluan fizikal sementara segala-galanya ditolak. Pasang laluan hos untuk satu alamat itu sebelum terowong naik, dan selesaikan nama terlebih dahulu, kerana DNS mungkin disekat pada masa anda memerlukannya.
ip route add 198.51.100.20/32 via 192.168.0.1 dev wlan0
Kemudian sahkan keadaan dan bukan label. Lakukan empat detik dengan sengaja: permulaan sejuk tanpa terowong, sesi sihat, putus yang tiada siapa minta, dan sesi selepas ia pulih. Pada setiap detik baca laluan lalai dan buat satu permintaan yang alamat keluarnya kelihatan. Aplikasi yang mengalah semasa terowong turun tidak berkata apa-apa tentang klien mel atau pengemaskini, jadi ulangi pemeriksaan terakhir dengan satu aplikasi latar belakang. Tuliskan peraturan, nama antara muka dan langkah pemulihan, kerana kill switch yang tiada siapa boleh sahkan hanyalah khabar angin.