Сканирате порта на VPN, не получавате отговор и заключавате, че услугата не работи или защитната стена е затворена. При WireGuard и при контролните канали на OpenVPN, които носят собствено удостоверяване, това заключение не следва. Датаграма без валиден материал за удостоверяване се отхвърля без отговор, така че мълчанието е това, което здравата услуга изглежда отвън. Пробата е грешна, преди тунелът да е.

Мълчанието е протоколът, а не дефект

UDP няма установяване на връзка, така че няма SYN и няма потвърждение, което да позволи на скенер да различи отворен порт от филтриран. Пробата пристига като изолирана датаграма и услугата проверява дали тя съответства на протокола, който очаква. Когато не съответства, пакетът се отхвърля, а отхвърлянето е документираното поведение, а не неизправност.

WireGuard проверява криптографски своите съобщения за ръкостискане и игнорира всичко, което не премине. OpenVPN с tls-auth или tls-crypt прави същото за своя контролен канал. И в двата случая произволен полезен товар никога не достига до етап, обърнат към потребителя, така че няма с какво да се отговори и няма грешка за връщане.

TCP щеше да ви даде нулиране от затворен порт. UDP ви оставя с неопределеност, която скенерите решават, като отпечатват отворен или филтриран, вместо да гадаят.

Какво скенерът може и какво не може да заключи

Резултатът от сканиране е толкова информативен, колкото е полезният товар, който е изпратен. Подредете възможните наблюдения по това какво всъщност подкрепя всяко от тях:

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

Четете третия ред като единствения положителен тест в списъка. Той изисква истинския профил, истинския ключ и правилната крайна точка, а точно това общ скенер няма.

Погледнете двата края на пътя

За сървър, който администрирате, направете заснемане на интерфейса, преди да правите каквото и да е заключение, след което попитайте услугата какво е видяла. И двете команди изискват root на шлюза:

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

Ако на интерфейса не се появи пакет, пътят го е отхвърлил, преди услугата да види каквото и да е, и следващата спирка е маршрутизиране и филтриране. Ако пакети пристигат, но ръкостискане не завършва, услугата е достъпна и несъответствието е в ключове, конфигурация на крайната точка или версия на протокола. Това сравнение отговаря на въпроса, на който скенерът не можа. Изпълнете го, докато истински клиент се опитва да се свърже, а не докато скенерът се повтаря.

Променете теста, не защитата

Изкушаващият пряк път е да изключите защитата на контролния канал, за да получи диагностиката отговор. Това разменя истинско свойство на сигурността срещу по-красив резултат от сканиране и е грешната посока. Вместо това използвайте валиден профил от одобрена мрежа и запишете крайната точка и времето, за да може сравнението да се повтори.

Най-полезният тест е диференциален: същият профил по път, който работи, и по пътя, който не работи. Ако работещият път дава ръкостискане, а неуспешният път не дава нищо на интерфейса, вие сте намерили прекъсването, без да отслабвате нищо.

Следователно пакетът UDP без отговор не доказва нито че сървърът е офлайн, нито че е безопасен. Той доказва, че тази проба, по този път, в този момент, не е била приета.

Подобни статии