VPN situs-ke-situs hanya bekerja satu arah: dua gangguan berbeda
Balasan yang tidak pernah kembali dan koneksi yang ditolak adalah dua gangguan berbeda. Bandingkan kebijakan, perutean, dan alamat sumber yang benar-benar dilihat server.
Situs A menjangkau B, B tidak dapat menjangkau A, dan terowongan tampak baik di kedua arah. Sebelum menyentuh terowongan, tentukan gangguan mana yang benar-benar Anda hadapi. Koneksi baru yang dimulai di B dan ditolak, serta balasan atas koneksi yang dimulai di A yang tidak pernah tiba, menghasilkan keluhan serupa dan diagnosis yang sangat berbeda. Yang satu masalah kebijakan atau rute di jalur; yang lain masalah jalur balik atau status untuk lalu lintas yang sudah diizinkan.
Perbedaan itulah yang menentukan perintah mana yang layak dijalankan.
Dua gangguan yang tampak identik
Pada kasus pertama, host B mengirim SYN ke A, dan tidak ada yang kembali. Pada kasus kedua, host A berhasil membuka sesi dan balasannya menghilang di jalur balik. Kedua pengguna mengatakan tautannya satu arah, dan keduanya menggambarkan paket yang hilang, jadi deskripsi saja tidak dapat memisahkan keduanya.
Tanyakan sisi mana yang memulai percobaan yang gagal. Satu fakta itu menghapus separuh kemungkinan penyebab.
Lalu pastikan pengujian memakai host dan layanan yang sama sepanjang waktu. Ping dari satu sisi dan koneksi berbagi berkas dari sisi lain menguji dua hal berbeda, dan diagnostik dari gateway bisa memilih alamat terowongan yang tidak pernah dipakai lalu lintas pengguna.
Kasus satu: jalur balik hilang
Server jauh yang menjawab melalui gateway default lain dapat menerima permintaan dan merutekan balasannya ke tempat lain. Firewall yang melacak status lalu menjatuhkan balasan asimetris karena tidak cocok dengan aliran yang sudah terbentuk, yang tampak persis seperti arah yang tidak pernah bekerja. Terjemahan menambah versi lain: tujuan melihat sumber yang diterjemahkan dan membalasnya, sehingga aturan yang ditulis untuk alamat asli tidak pernah cocok.
Periksa alamat yang benar-benar dilihat tujuan setelah penerjemahan, dan periksa rute balik untuk alamat itu, bukan untuk subnet asli.
Kasus dua: kebijakan tidak pernah mengizinkannya
Kasus sebaliknya lebih sederhana dan lebih umum daripada kelihatannya: satu kantor dimaksudkan memakai layanan pusat dan tidak pernah memulai koneksi ke pusat. Asimetri itu adalah keputusan akses yang disengaja, dan terowongan bekerja sesuai rancangan. Baca kebijakan akses sebelum mengubah pengaturan terowongan apa pun. Dokumen, bukan tangkapan paket, yang menyatakan arah mana yang dimaksudkan. Tangkapan hanya dapat menunjukkan apa yang terjadi, bukan apa yang diizinkan.
Jika inisiasi dua arah benar-benar diperlukan, tambahkan izin layanan tertentu melalui kumpulan aturan yang didukung platform. Membuat setiap subnet saling percaya untuk memperbaiki satu aplikasi mengubah kebutuhan sempit menjadi izin luas, dan pertukaran itu jarang ditinjau kembali.
Bandingkan sebelum dan sesudah pada host yang sama
Amati kedua ujung percobaan yang sama, bukan dua percobaan terpisah. Tangkap di gateway host yang memulai dan di tujuan, lalu bandingkan apa yang masuk, apa yang keluar, dan alamat mana yang dilihat sisi jauh.
tcpdump -ni any host 10.20.30.40 and port 445 conntrack -L | grep 10.20.30.40 ip route get 10.20.30.40 swanctl --list-sas
Jika tangkapan di tujuan menunjukkan permintaan dengan alamat sumber yang tak terduga, jawabannya ada di penerjemahan atau perutean, bukan di kebijakan keamanan terowongan. Jika tujuan sama sekali tidak menunjukkan permintaan, paket tidak pernah melewati jalur yang dilindungi.
Setelah koreksi, ulangi pengujian yang sama dari host yang sama dan pastikan akses tak terkait masih ditolak. Status terowongan “established” tidak mendukung salah satu dari dua kesimpulan itu sendiri.