Jaga kebijakan nftables tetap stabil saat antarmuka VPN muncul
Aturan nftables berbasis nama bertahan melewati terowongan yang muncul dan hilang, tetapi rute dan aliran yang ada tidak mengikuti secara otomatis. Pisahkan pemiliknya.
Terowongan bersifat sekali pakai; kebijakan seharusnya tidak. Di gateway Linux, aturan nftables yang mencocokkan antarmuka terowongan berdasarkan nama dapat dimuat sekali dan tetap berlaku setiap kali antarmuka itu muncul. Antarmuka tetap memiliki siklus hidup: ia dibuat, ia hilang, dan rute serta terjemahan di sekitarnya mengikuti jadwalnya sendiri. Memisahkan pemilik itulah yang menjaga akses tetap stabil selama koneksi ulang.
Pencocokan nama bertahan lebih lama daripada antarmuka
nftables menawarkan pencocokan indeks antarmuka yang numerik dan pencocokan nama yang dinamis iifname dan oifname. Aturan yang memakai nama itu dimuat dengan bersih bahkan ketika perangkat terowongan belum dibuat, yang persis dibutuhkan kumpulan aturan saat boot. Pencocokan berhenti jika antarmuka diganti nama dan berlanjut saat antarmuka baru mengambil nama itu. Indeks numerik tidak memiliki sifat itu, karena itulah bentuk nama menjadi pilihan biasa untuk terowongan.
Nama adalah kunci pencocokan, bukan bukti siapa yang ada di ujung lain. Autentikasi rekan tetap tugas VPN.
Baca rantai sebelum menambahkan aturan
Lihat apa isi kumpulan aturan sekarang dan di mana aturan baru akan duduk, karena urutan menentukan hasilnya.
nft list ruleset
nft -c -f /etc/nftables.confDaftar menunjukkan rantai, aturan, dan pegangan, dan mode periksa memvalidasi berkas kandidat tanpa memuatnya. Izin khusus terowongan yang diletakkan setelah penerimaan sebelumnya untuk aliran yang sama tidak mengubah apa pun, karena aturan pertama yang cocok menang. Karena itu aturan yang datang terlambat bisa terlihat benar tetapi tidak berefek. Baca rantai berurutan dan pastikan larangan lalu lintas klien ke uplink masih mendahului apa pun yang lebih luas.
Rute, terjemahan, dan aliran punya pemilik lain
Kehadiran antarmuka tidak membuat rute dan tidak mengautentikasi rekan. Itu milik manajer VPN, sedangkan terjemahan punya siklus hidup ketiga.
conntrack -L -s 10.20.0.0/24 | head
ip route show dev vpn0Daftar conntrack menunjukkan aliran yang ada beserta nilai asli dan terjemahannya, dan daftar rute menunjukkan apa yang dipasang manajer untuk antarmuka. Aturan NAT membentuk status pelacakan koneksi pada paket pertama, jadi aliran yang sudah terbentuk mempertahankan terjemahannya bahkan setelah aturan berubah. Karena itu aturan yang diperbarui dan aliran yang memakai jalur baru adalah dua pernyataan berbeda. Putuskan sesi mana yang harus tersambung ulang dan biarkan aliran tak terkait.
Terima boot dingin, kehilangan, dan pemulihan
Uji gateway dengan terowongan tidak ada saat boot, lalu ada, lalu setelah putus dan kembali. Pastikan penerusan terlarang tetap ditolak selama terowongan hilang, aliran baru yang diizinkan bekerja setelah rekan diautentikasi, dan pemulihan tidak memerlukan penghapusan status tak terkait. Jangan hapus seluruh rantai POSTROUTING atau setiap entri conntrack sebagai tindakan berhenti satu profil, karena layanan lain memakainya bersama. Catat komponen mana yang mengubah antarmuka, rute, dan kebijakan, bukan hanya bahwa kait mulai keluar dengan nol.
Kebijakan yang bertahan melewati koneksi ulang adalah kebijakan yang pemiliknya disebutkan dan aturannya diuji dengan terowongan baik mati maupun hidup. Kait yang melaporkan keberhasilan hanya membuktikan bahwa kait itu berjalan.