Vi skanas la VPN-pordon, ricevas neniun respondon kaj konkludas, ke la servo estas elŝaltita aŭ ke la fajroŝirmilo estas fermita. Ĉe WireGuard kaj ĉe la kontrolkanaloj de OpenVPN, kiuj portas sian propran aŭtentikigon, tiu konkludo ne sekvas. Datagramo sen valida aŭtentikiga materialo estas forĵetata sen respondo, do silento estas tio, kiel sana servo aspektas de ekstere. La provo estas malĝusta antaŭ ol la tunelo estas.

Silento estas la protokolo, ne paneo

UDP ne havas konektan starigon, do ne ekzistas SYN kaj neniu konfirmo, kiu permesus al skanilo distingi malfermitan pordon disde filtrita. Provo alvenas kiel izolita datagramo, kaj la servo kontrolas, ĉu ĝi kongruas kun la protokolo, kiun ĝi atendas. Se ne, la paketo estas forĵetata, kaj forĵeto estas la dokumentita konduto, ne misfunkcio.

WireGuard kriptografie validigas siajn manpremajn mesaĝojn kaj ignoras ĉion, kio malsukcesas. OpenVPN kun tls-auth aŭ tls-crypt faras la samon por sia kontrolkanalo. En ambaŭ kazoj arbitra ŝarĝo neniam atingas uzantfrustan etapon, do estas nenio por respondi kaj neniu eraro por redoni.

TCP donus al vi restarigon de fermita pordo. UDP lasas vin en malklareco, kiun skaniloj solvas per presado de malfermita aŭ filtrita anstataŭ diveni.

Kion skanilo povas kaj ne povas konkludi

Skanrezulto estas nur tiom informa, kiom la ŝarĝo, kiun ĝi sendis. Ordigu la eblajn observojn laŭ tio, kion ĉiu el ili efektive subtenas:

ProbeObserved resultWhat it supports
Empty datagramNo replyNothing beyond the fact that UDP was used
Random payloadNo replyConsistent with an authenticated service
Valid handshake from a real clientA protocol replyThe service is alive and reachable
ICMP port unreachableUnreachable messageThe host answered, usually because nothing listens

Legu la trian vicon kiel la solan pozitivan teston en la listo. Ĝi postulas la veran profilon, la veran ŝlosilon kaj la ĝustan finpunkton, kio estas ĝuste tio, kion ĝenerala skanilo ne havas.

Rigardu ambaŭ finojn de la vojo

Por servilo, kiun vi administras, kaptu sur la interfaco antaŭ ol fari ajnan konkludon, poste demandu la servon, kion ĝi vidis. Ambaŭ komandoj bezonas root sur la pordego:

tcpdump -ni any udp port 51820
tcpdump -ni any udp port 1194
wg show

Se neniun paketon aperas sur la interfaco, la vojo forĵetis ĝin antaŭ ol la servo vidis ion, kaj la sekva halto estas enkursigo kaj filtrado. Se paketoj alvenas sed neniu manpremo kompletiĝas, la servo estas atingebla kaj la malkongruo estas en ŝlosiloj, finpunkta agordo aŭ protokola versio. Tiu komparo respondas la demandon, kiun la skanilo ne povis. Rulu ĝin dum reala kliento provas konektiĝi, ne dum la skanilo ripetas sin.

Ŝanĝu la teston, ne la protekton

La tentiga fuĝvojo estas malŝalti la protekton de la kontrolkanalo, por ke diagnozo ricevu respondon. Tio interŝanĝas realan sekurecan econ kontraŭ pli bela skanrezulto, kaj ĝi estas la malĝusta direkto. Anstataŭe uzu validan profilon el aprobita reto kaj notu la finpunkton kaj la tempon, por ke la komparo estu ripetebla.

La plej utila testo estas diferenca: la sama profilo sur vojo, kiu funkcias, kaj sur la vojo, kiu ne funkcias. Se la funkcianta vojo produktas manpremon kaj la malsukcesanta vojo produktas nenion sur la interfaco, vi lokalizis la rompon sen malfortigi ion ajn.

Senresponda UDP-paketo do pruvas nek ke la servilo estas eksterrete nek ke ĝi estas sekura. Ĝi pruvas, ke ĉi tiu provo, sur ĉi tiu vojo, en ĉi tiu momento, ne estis akceptita.

Rilataj artikoloj