VPN UDP senyap semasa imbasan port? Mengapa ia berlaku
WireGuard dan OpenVPN yang dikeraskan membuang datagram yang gagal pengesahan tanpa membalas. Kesenyapan daripada pengimbas ialah tingkah laku yang dijangka, bukan port tertutup.
Anda mengimbas port VPN, tidak menerima balasan dan menyimpulkan bahawa perkhidmatan sudah mati atau firewall ditutup. Dengan WireGuard, dan dengan saluran kawalan OpenVPN yang membawa pengesahannya sendiri, kesimpulan itu tidak menyusul. Datagram tanpa bahan pengesahan yang sah dibuang tanpa balasan, jadi kesenyapan ialah rupa perkhidmatan yang sihat dari luar. Ujian itu salah sebelum terowongnya salah.
Kesenyapan ialah protokol, bukan kerosakan
UDP tiada persediaan sambungan, jadi tiada SYN dan tiada pengakuan yang membolehkan pengimbas membezakan port terbuka daripada port yang ditapis. Ujian datang sebagai datagram terasing, dan perkhidmatan menyemak sama ada ia sepadan dengan protokol yang dijangkakannya. Apabila tidak sepadan, paket itu dibuang, dan pembuangan ialah tingkah laku yang didokumenkan, bukan kerosakan.
WireGuard mengesahkan mesej handshake-nya secara kriptografi dan mengabaikan apa-apa yang gagal. OpenVPN dengan tls-auth atau tls-crypt melakukan perkara yang sama untuk saluran kawalannya. Dalam kedua-dua kes, muatan sewenang-wenangnya tidak pernah sampai ke peringkat yang menghadap pengguna, jadi tiada apa untuk dibalas dan tiada ralat untuk dikembalikan.
TCP akan memberi anda reset daripada port tertutup. UDP meninggalkan anda dalam ketidakpastian, yang diselesaikan pengimbas dengan mencetak terbuka atau ditapis daripada meneka.
Apa yang pengimbas boleh dan tidak boleh simpulkan
Hasil imbasan hanya seinformatif muatan yang dihantarnya. Susun pemerhatian yang mungkin mengikut apa yang sebenarnya disokong oleh setiap satu:
| Probe | Observed result | What it supports |
|---|---|---|
| Empty datagram | No reply | Nothing beyond the fact that UDP was used |
| Random payload | No reply | Consistent with an authenticated service |
| Valid handshake from a real client | A protocol reply | The service is alive and reachable |
| ICMP port unreachable | Unreachable message | The host answered, usually because nothing listens |
Baca baris ketiga sebagai satu-satunya ujian positif dalam senarai. Ia memerlukan profil sebenar, kunci sebenar dan titik akhir yang betul, dan itulah yang tiada pada pengimbas generik.
Lihat kedua-dua hujung laluan
Untuk pelayan yang anda uruskan, tangkap pada antara muka sebelum membuat apa-apa kesimpulan, kemudian tanya perkhidmatan itu apa yang dilihatnya. Kedua-dua arahan memerlukan root pada gerbang:
tcpdump -ni any udp port 51820
tcpdump -ni any udp port 1194
wg show
Jika tiada paket muncul pada antara muka, laluan itu membuangnya sebelum perkhidmatan melihat apa-apa, dan perhentian seterusnya ialah penghalaan dan penapisan. Jika paket tiba tetapi tiada handshake selesai, perkhidmatan boleh dicapai dan ketidakseragaman terletak pada kunci, konfigurasi titik akhir atau versi protokol. Perbandingan itulah yang menjawab soalan yang pengimbas tidak dapat jawab. Jalankannya semasa klien sebenar cuba menyambung, bukan semasa pengimbas mengulang dirinya.
Tukar ujian, bukan perlindungan
Jalan pintas yang menggoda ialah mematikan perlindungan saluran kawalan supaya diagnostik mendapat balasan. Itu menukar sifat keselamatan sebenar dengan hasil imbasan yang lebih cantik, dan itu arah yang salah. Gunakan profil yang sah daripada rangkaian yang diluluskan, dan catat titik akhir serta masa supaya perbandingan boleh diulang.
Ujian yang paling berguna ialah ujian pembezaan: profil yang sama pada laluan yang berfungsi dan pada laluan yang tidak. Jika laluan yang berfungsi menghasilkan handshake dan laluan yang gagal tidak menghasilkan apa-apa pada antara muka, anda telah menemui tempat putusnya tanpa melemahkan apa-apa.
Jadi paket UDP yang tidak dijawab tidak membuktikan bahawa pelayan itu luar talian atau pun bahawa ia selamat. Ia membuktikan bahawa ujian ini, pada laluan ini, pada saat ini, tidak diterima.