Printer di meja berhenti menjawab saat terowongan naik, dan tidak ada satu pun bagian konfigurasi terowongan yang menyebut printer. Yang biasanya terjadi adalah rentang terlindungi ditulis cukup luas hingga mencakupnya, sehingga mesin sekarang mencoba mengenkripsi lalu lintas yang seharusnya tetap di segmen lokal. Membaca kebijakan yang terpasang menjelaskan penangkapan itu; menyempitkannya di tempat yang benar menjaga lalu lintas jauh tetap terlindungi. Perjalanan dari permintaan yang gagal ke kebijakan yang cocok memakan beberapa menit.

Telusuri alurnya sebelum mengubah selektor

Mulai dari permintaan yang gagal dan catat empat nilai: alamat sumber yang dipakai mesin, tujuan yang tepat, rute yang dipilih kernel, dan kebijakan yang cocok dengan pasangan itu.

Keempat fakta ini menentukan apakah penangkapan itu disengaja atau kebetulan. Tujuan yang jatuh di dalam selektor jauh dilindungi menurut rancangan, meskipun rancangannya keliru. Tujuan di luarnya yang tetap tertangkap berarti ada hal lain yang cocok, dan mengubah selektor tidak akan membantu. Kedua kasus umum terjadi, dan satu perintah membedakannya.

Lakukan ini sebelum menyunting apa pun, karena kasus yang menarik adalah subnet lokal yang tumpang tindih dengan rentang privat yang dilindungi koneksi. Prefiks yang familier seperti 192.168.0.0/16 muncul di banyak jaringan, dan selektor yang ditulis untuk salah satunya bisa diam-diam mencakup milik Anda.

Tiga jenis lokal yang berperilaku berbeda

Tujuan yang ditetapkan ke host ini, tujuan di tautan yang sama, dan tujuan di balik antarmuka lain adalah tiga kasus berbeda. Kernel memperlakukan masing-masing secara berbeda saat memutuskan apakah lalu lintas perlu perlindungan.

Lalu lintas yang dihasilkan gateway itu sendiri juga tidak sama dengan lalu lintas yang diteruskan dari klien. Kebijakan yang tampak benar untuk lalu lintas yang diteruskan bisa menangkap sesi manajemen gateway itu sendiri, dan begitulah seorang administrator kehilangan akses saat memperbaiki terowongan.

Kebiasaan yang berguna adalah menyebut kasusnya dengan lantang: apakah paket ini datang dari saya, menuju tautan saya, atau lewat saya? Setiap jawaban menunjuk ke tempat berbeda untuk disempitkan. Menuliskan kasusnya juga mencegah orang berikutnya mengulang pekerjaan yang sama.

Ketika rentang terlindungi adalah seluruh ruang privat, ketiga kasus bisa jatuh ke dalamnya sekaligus, dan gejalanya menjadi mesin yang tidak menjangkau apa pun kecuali titik akhir terowongan.

Baca kebijakan yang terpasang, bukan berkasnya

Berkas konfigurasi menjelaskan niat; kernel menyimpan kebijakan yang benar-benar cocok. Tampilkan keduanya dan perlakukan ketidakcocokan sebagai temuan pertama.

Perintah ini menunjukkan rute yang dipilih untuk tujuan dan kebijakan yang terpasang di setiap arah:

ip route get 192.168.50.20
ip xfrm policy list
sudo swanctl --list-conns

Rute memberi tahu antarmuka mana yang akan dipakai paket. Daftar kebijakan memberi tahu apakah templat kemudian diterapkan ke paket itu, dan daftar koneksi menunjukkan selektor mana yang dianggap telah dipasang oleh daemon. Jika tujuan muncul di selektor jauh, Anda menemukan penangkapan itu tanpa menebak.

Sempitkan selektor atau lewati tujuan

Ada dua perbaikan yang didukung dan keduanya menjawab pertanyaan berbeda. Menyempitkan selektor berarti koneksi ini hanya melindungi rentang yang lebih kecil, yang benar ketika rentang yang lebih luas adalah kesalahan. Menambahkan jalan pintas berarti tujuan khusus ini tidak boleh pernah dilindungi, yang benar ketika rentang terlindungi memang lebar dan satu tujuan adalah pengecualian.

Pilih yang pertama bila bisa, karena selektor yang lebih kecil lebih mudah dipahami dan terlihat di definisi koneksi. Pilih yang kedua bila rentang lebar itu disengaja dan pengecualiannya adalah satu host atau subnet yang bisa Anda sebutkan.

Keduanya termasuk dalam konfigurasi yang memiliki koneksi. Aturan waktu proses yang ditambahkan dengan tangan hilang pada penyambungan ulang berikutnya, dan kegagalan kembali pada saat tidak ada yang mengingat jalan pintas itu.

Pengecualian yang aman terhadap pemasangan ulang

Setelah perubahan, ulangi permintaan tidak berbahaya yang sama dan lihat penghitung yang sama. Tujuan lokal seharusnya menjawab, dan tujuan jauh yang dimaksud seharusnya tetap menunjukkan lalu lintas terenkripsi.

Kedua pemeriksaan ini memastikan pengecualian bertahan dan perlindungannya tidak:

ip xfrm policy list | grep -c out
ping -c 3 192.168.50.20

Lalu putuskan dan sambungkan kembali terowongan dengan sengaja, dan ulangi keduanya. Pengecualian yang berfungsi sebelum penyambungan ulang dan gagal sesudahnya diterapkan pada lapisan yang salah, dan itulah cara paling umum masalah ini kembali.

Artikel terkait