strongSwan ESP-in-UDP: apabila tiada NAT untuk dikesan
Pengesanan NAT menemui terjemahan alamat, bukan dasar firewall. Sambungan tapak tanpa NAT masih boleh memerlukan pilihan ESP-in-UDP yang eksplisit.
Pengesanan NAT menjawab satu soalan: adakah alamat atau port berubah dalam perjalanan? Ia tidak menjawab sama ada firewall membenarkan protokol IP 50. Gateway tapak tanpa sebarang terjemahan masih boleh berada di belakang dasar yang menggugurkan native ESP, dan keperluan itu mesti dikonfigurasikan, bukan ditemui. Mekanismenya ialah ESP-in-UDP, dan ia satu keputusan, bukan sandaran yang muncul sendiri.
Pengesanan ialah aritmetik pada alamat, bukan siasatan firewall
IKEv2 membawa muatan pengesanan NAT yang mengandungi cincangan alamat dan port sumber serta destinasi. Setiap pihak membandingkan apa yang diterimanya dengan apa yang dilihat secara setempat, dan ketidakpadanan memberitahunya bahawa sesuatu telah menterjemah paket itu. Tiada apa dalam pertukaran itu yang menguji sama ada penghala di tengah meneruskan protokol 50.
Kesimpulan praktikalnya wajar dinyatakan secara terus. Terowong yang berfungsi dengan native ESP tidak akan menemui sendiri firewall baharu yang menyekat, dan percubaan seterusnya gagal pada peringkat data sementara IKE terus berjaya. Anda akan melihat persatuan keselamatan IKE yang terjalin dan tiada trafik terlindung, yang kelihatan seperti kerosakan penghalaan sehingga anda tangkap pada wayar.
Enkapsulasi oleh itu ialah sifat sambungan yang anda konfigurasikan, bukan hasil yang dirundingkan oleh rakan sebaya daripada tingkah laku rangkaian.
Bagaimana encap mengubah pertukaran
Dalam penggunaan strongSwan moden yang diurus melalui swanctl.conf, tetapan encap = yes pada sambungan mempengaruhi pertukaran pengesanan NAT supaya kedua-dua rakan sebaya menggunakan enkapsulasi UDP untuk ESP. Paket terlindung kemudian bergerak di dalam UDP, biasanya pada port 4500, dan kedua-dua hujung mesti bersetuju dengan susunan itu.
connections {
site {
encap = yes
# existing approved peer, authentication and child settings
}
}
Serpihan itu tergolong dalam definisi sambungan sebenar dan bukan profil tapak yang lengkap. Kekalkan alamat rakan sebaya, pengesahan dan pemilih trafik child yang anda jalankan; satu-satunya kunci yang ditambah mengubah cara data terlindung dibalut, bukan apa yang dilindunginya.
Panduan strongSwan tentang NAT-traversal menerangkan tingkah laku ini, termasuk interaksi dengan port terapung apabila MOBIKE digunakan.
Gunakan tetapan yang tergolong dalam backend anda
strongSwan mempunyai dua backend konfigurasi, dan kuncinya berbeza antara keduanya. swanctl.conf sambungan mengambil encap, manakala ipsec.conf sambungan lama mengambil forceencaps. Meletakkan kata kunci satu backend ke dalam yang lain menghasilkan konfigurasi yang dimuatkan tanpa rungutan dan tidak mengubah apa-apa, yang lebih buruk daripada ralat.
Semak daemon mana yang benar-benar berjalan sebelum anda menyunting apa-apa. Dalam banyak pengedaran kedua-dua fail wujud kerana satu ialah sisa migrasi terdahulu, dan yang aktif ialah yang dimulakan oleh unit perkhidmatan. Baca unit itu dan bukan meneka daripada cap masa fail. Semakan lima saat di sini menghalang berjam-jam menguji tetapan yang tiada apa memuatkannya.
Gunakan perubahan melalui pemilik sambungan dan tubuhkan semula persatuan dalam tetingkap terkawal. Child yang sudah dipasang mengekalkan enkapsulasi semasanya sehingga diganti, jadi menyunting fail sahaja tidak membuktikan susunan baharu sedang digunakan.
Sahkan data yang dibalut, bukan port sahaja
Tangkap pada gateway semasa trafik terlindung mengalir, kemudian bandingkan dengan pandangan strongSwan sendiri:
$ sudo tcpdump -ni eth0 'udp port 4500' -c 20
$ sudo swanctl --list-sas --ike site
$ sudo ip xfrm state list
Native ESP muncul sebagai protokol IP 50 dan sama sekali tidak menyerupai UDP. ESP terbungkus muncul sebagai datagram UDP pada 4500 yang muatannya bukan IKE. Trafik IKE pada port yang sama bukan bukti enkapsulasi, kerana MOBIKE boleh memindahkan IKE ke sana sementara laluan data kekal native, jadi baca muatan, bukan nombor port.
Ingat juga MTU laluan. Balutan menambah overhed, dan laluan yang membawa native ESP mungkin memerlukan pelarasan apabila paket membesar. Pengendalian ICMP yang diperlukan sepatutnya sudah menjadi sebahagian reka bentuk; enkapsulasi tidak menghapuskan kebergantungan itu.
Terima perubahan apabila trafik aplikasi baharu di dalam terowong kelihatan dalam tangkapan sebagai ESP terbungkus di kedua-dua hujung, dan apabila perkhidmatan dalaman serta laluan pulangnya masih berfungsi. Apa-apa yang kurang ialah konfigurasi yang kelihatan betul dalam fail.