Pemindaian UDP bilang terfilter: apakah peer WireGuard Anda benar-benar mati?
Probe tanpa autentikasi bisa tidak mendapat balasan sama sekali dari peer yang sehat. Uji klien yang sebenarnya, lalu korelasikan listener dan jalur paket di server.
Pemindai mencetak terbuka atau terfilter untuk port UDP, dan kesimpulannya biasanya datang dalam hitungan detik: terowongan rusak. Mungkin saja, tetapi pemindaian tidak membuktikannya. UDP tidak membawa handshake koneksi, dan WireGuard tidak menjawab apa pun yang tidak dapat dia autentikasi, jadi keheningan adalah jawaban yang diharapkan untuk sebagian besar probe.
Bekerjalah dari klien ke luar, dan perlakukan pemindaian sebagai satu titik data lemah di antara beberapa.
Apa yang bisa dan tidak bisa dilihat pemindai
Pemindai UDP mengirim muatan dan menunggu. Jika ICMP port-unreachable kembali, ia dapat melaporkan port sebagai tertutup. Jika tidak ada yang kembali, hasilnya ambigu secara desain: jalur terfilter, host yang tidak ada, dan layanan yang berjalan tetapi mengabaikan muatan semuanya menghasilkan keheningan yang sama. Tiga keadaan berbeda, satu string keluaran.
WireGuard sengaja memperburuk ambiguitas itu. Protokol hanya menerima paket ketika paket itu terautentikasi, sehingga probe dengan kunci yang salah dibuang tanpa balasan. Tidak ada banner, tidak ada string versi, dan tidak ada pesan kesalahan untuk diambil sidik jarinya.
Uji TCP pada nomor port yang sama tidak menguji apa pun yang terkait. Uji itu menjalankan listener lain yang mungkin tidak ada, dan penolakannya tidak mengatakan apa pun tentang UDP.
Jadi keadaan terbuka terfilter menggambarkan ketidakpastian pemindai lebih akurat daripada menggambarkan server Anda.
Telusuri klien yang sebenarnya dari profil ke dalam
Mulailah dari sudut pandang klien itu sendiri. Apakah antarmuka memiliki alamat, apakah konfigurasi menyebut titik akhir yang benar, dan apakah penghitung handshake bergerak saat koneksi dicoba? Klien yang tidak pernah mengirim paket dan klien yang paketnya dibuang terlihat identik di jendela status. Hanya penghitung yang membedakannya, jadi baca penghitungnya lebih dulu.
Lalu amati sisi server saat satu upaya resmi terjadi, alih-alih menjalankan pemindaian terpisah dari lokasi ketiga:
wg show wg0 latest-handshakes
tcpdump -n -i eth0 udp port 51820 -c 10
Perintah pertama melaporkan handshake terakhir per peer, yang merupakan bukti langsung bahwa pertukaran terautentikasi selesai. Perintah kedua menunjukkan apakah paket untuk listener tiba sama sekali, yang memisahkan masalah jalur dari masalah konfigurasi dalam satu langkah.
Jika tangkapan tidak menunjukkan apa pun, paket tidak pernah mencapai host dan konfigurasi terowongan bukan tersangka. Jika tangkapan menunjukkan paket datang dari alamat yang diharapkan sementara handshake tetap nol, kunci atau alamat yang diizinkan peer adalah tempat berikutnya untuk diperiksa.
Korelasikan di server saat Anda mengelolanya
Pastikan listener ada dan firewall penyedia mengizinkan port UDP. Aturan firewall host dan grup keamanan cloud adalah dua gerbang independen, dan salah satunya dapat membuang paket yang diizinkan yang lain. Periksa keduanya terhadap port sebenarnya dalam konfigurasi, bukan port yang Anda ingat.
Alamat sama pentingnya dengan port. Server yang mendengarkan pada alamat tertentu tidak akan menjawab paket yang tiba pada alamat lain, dan host multi-antarmuka dapat menerima probe pada antarmuka yang tidak Anda maksud.
Jaga setiap uji di dalam sistem yang Anda berwenang uji. Perbandingan yang berguna adalah antara satu upaya klien nyata dan jalur server yang diharapkan, bukan sapuan alamat yang lebih luas yang kebetulan milik penyedia yang sama.
Membaca hasil pemindaian dengan jujur
Pemindaian adalah cara murah untuk memeriksa bahwa host ada dan bahwa port tidak jelas diblokir oleh perangkat perantara. Pemindaian bukan bukti keterjangkauan untuk protokol terautentikasi, dan jelas bukan uji konfigurasi.
Bukti yang lebih kuat adalah handshake yang selesai dari klien yang benar-benar Anda pedulikan, diikuti permintaan yang menggunakan terowongan dan mendapat balasan. Urutan itu menguji kunci, alamat yang diizinkan, kedua firewall, dan jalur kembali sekaligus.
Ketika upaya nyata gagal, kegagalan tetap harus didiagnosis dengan penghitung klien dan tangkapan server, bukan dengan probe lain. Deskripsi protokol menjelaskan mengapa paket yang tidak terautentikasi tidak menerima jawaban, dan itulah seluruh alasan hasil pemindaian bersifat ambigu.