Cara IPsec berasaskan laluan berfungsi dengan antara muka XFRM
Antara muka XFRM memberikan IPsec berasaskan laluan peranti untuk menghala. if_id, persatuan keselamatan di belakangnya dan laluan luar semuanya mesti sepadan.
IPsec berasaskan laluan menyerahkan kepada jadual penghalaan satu keputusan yang dahulunya dibuat oleh pemilih dasar. Pada Linux, bahagian yang memungkinkan perkara ini ialah antara muka XFRM: peranti maya yang trafiknya dipadankan dengan keadaan IPsec melalui pengecam antara muka dan bukan melalui pemilih. Mencipta satu hanya memerlukan satu arahan dan tidak membuktikan apa-apa tentang kewujudan terowong. Peranti ini ialah cangkuk antara penghalaan dan dasar keselamatan, dan kedua-dua belah cangkuk itu mesti dikonfigurasikan sebelum apa-apa dilindungi.
Apa itu peranti dan apa yang bukan
Antara muka XFRM ialah pemegang penghalaan. Paket yang dihala ke dalamnya dipadankan dengan dasar XFRM yang merujuk pengecam antara muka yang sama, dan jika dasar dan keadaan wujud, ia dikapsulkan. Tanpanya, antara muka wujud, pembilang tidak bergerak, dan trafik pergi ke tempat yang tidak berguna.
Itulah pemisahan diagnostik pertama. Laluan ke dalam peranti ialah fakta penghalaan, keadaan yang dipasang ialah fakta keselamatan, dan pembilang yang naik pada peranti bukan kedua-duanya. Apabila orang berkata terowong sudah naik kerana antara muka menunjukkan UP, mereka menggambarkan bendera pautan peranti maya yang tiada pasangannya sendiri. Bendera itu bermaksud peranti telah dicipta dan didayakan, tidak lebih.
Satu lagi sempadan: pengecam antara muka bukan nama. Dua peranti dengan nama serupa dan pengecam berbeza tidak berkongsi keadaan, dan sambungan yang dikonfigurasikan dengan pengecam salah memasang keadaan yang tidak akan digunakan oleh mana-mana laluan.
Bina satu mengikut urutan yang betul
Mulakan dengan peranti luar dan nombor yang juga akan anda masukkan ke dalam konfigurasi daemon. Contoh menggunakan eth0 sebagai antara muka luar dan 42 sebagai pengecam, alamat yang patut anda gantikan dengan milik anda sendiri.
Naikkan peranti, kemudian sahkan pengecam yang direkodkan oleh kernel sebelum menyentuh konfigurasi VPN:
sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip link set xfrm0 up
ip -d link show xfrm0 | grep -o 'if_id [0-9]*'Sekarang konfigurasikan sambungan dalam strongSwan dengan pengecam yang sama, kerana daemon mesti memasang dasar dan keadaan yang merujuknya. Tetapkan pemilih trafik tempatan dan jauh kepada julat yang anda ingin hala, kemudian hala julat itu ke dalam peranti. Konfigurasi daemon dan jadual penghalaan mesti bersetuju tentang pengecam dan destinasi, dan tidak ada yang membekalkan yang lain.
Jauhkan IKE dan ESP daripada laluan terowong
Laluan lalai yang menunjuk ke dalam peranti XFRM menangkap paket berkapsul serta trafik yang dibawanya. Hasilnya ialah gelung: gateway cuba menghantar ESP sendiri melalui terowong yang sepatutnya dibina oleh ESP.
Penyelesaiannya ialah laluan yang lebih khusus untuk alamat luar rakan melalui antara muka fizikal, yang mengalahkan laluan lalai kerana sepadan dengan lebih banyak bit. Penghalaan berasaskan tanda melakukan kerja yang sama apabila beberapa terowong berkongsi satu jadual, dan strongSwan mendokumenkan kedua-dua pendekatan untuk penggunaan berasaskan laluan.
Apa pun yang anda pilih, sahkan bahawa paket luar keluar tanpa pengekodan. Semakan pantas ialah ping alamat luar rakan selepas terowong naik; jika ia gagal semasa antara muka naik, syak penangkapan dan bukan kebolehsampaian. Logik yang sama terpakai pada port IKE, kerana trafik UDP daemon sendiri tidak boleh dihala ke dalam peranti yang cuba diwujudkannya.
Periksa pembilang di dua tempat sebelum menyalahkan penyulitan
Pembilang antara muka dan pembilang keadaan mengukur peringkat yang berbeza. Paket yang dihala ke dalam peranti meningkatkan pembilang peranti walaupun tiada keadaan sepadan, manakala pembilang keadaan hanya bergerak untuk trafik yang benar-benar dikapsulkan.
Baca kedua-duanya, kemudian baca pandangan daemon tentang persatuan anak:
ip -s link show xfrm0
sudo ip xfrm state list | grep -E 'src|proto|mode'
sudo swanctl --list-sasPembilang peranti yang naik dengan keluaran keadaan kosong bermakna penghalaan berfungsi dan dasar tidak sepadan, biasanya kesilapan pengecam atau pemilih. Pembilang keadaan yang naik semasa pihak jauh tidak melaporkan apa-apa bermakna paket keluar tetapi tidak sampai atau gagal pengesahan, yang menunjuk kepada laluan atau konfigurasi rakan. Persatuan anak yang tersenarai tanpa trafik ialah masalah pemilih di satu hujung, bukan sifer yang rosak.
Tentukan siapa yang memasang laluan
Dua pemilik untuk satu jadual penghalaan ialah punca biasa flapping. Jika daemon memasang laluan secara automatik, pengurus rangkaian anda tidak boleh turut memasang laluan lalai melalui peranti yang sama, dan laluan manual yang ditambah oleh skrip permulaan akan dialihkan pada kali seterusnya daemon mengkonfigurasi semula.
Pilih seorang pemilik dan tuliskannya. Apabila daemon memiliki laluan, jauhkan skrip permulaan daripada jadual dan biarkan definisi sambungan menerangkan pemilih trafik. Apabila pengurus rangkaian memilikinya, matikan pemasangan automatik dan terima bahawa daemon tidak akan membaiki laluan yang hilang semasa menyambung semula.
Peraturan pemajuan dan firewall ialah keputusan berasingan di atasnya, kerana gateway yang meluluskan trafik hos lain memerlukan kedua-duanya. IPsec berasaskan laluan menjadikan trafik itu mudah dinyatakan dengan alat penghalaan biasa; ia tidak menjadikan lapisan dasar pilihan.