Вы сканируете порт 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 без ответа не доказывает ни того, что сервер офлайн, ни того, что он безопасен. Он доказывает, что эта проверка, на этом пути, в этот момент не была принята.

Похожие статьи