Имена хостов и флаги стран выглядят как факты о сервере, и ни то ни другое ими не является. Имя указывает на адреса, которые могут меняться, а слова внутри него выбрал тот, кто его зарегистрировал. Протокол, место выхода и поведение при журналировании требуют каждый своего доказательства. Начните с того, во что имя действительно разрешается, а затем решите, что всё ещё неизвестно.

Имя разрешается, и больше ничего не установлено

Имя хоста — это указатель в DNS, а записи за ним могут различаться в зависимости от резолвера, от времени суток и от семейства адресов, которое предпочитает клиент. Два человека, читающие одну и ту же запись каталога, могут совершенно законно попасть на разные машины. Имя говорит, что запрашивать, а не что ответит.

Результаты поиска тоже меняются без предупреждения, что важно, когда профиль фиксирует адрес вместо имени. Профиль с жёстко вписанным старым адресом продолжает сбоить после того, как оператор переносит службу, и сбой выглядит как заблокированный порт. Держите разрешённые адреса рядом с профилем, чтобы у последующего сравнения была отправная точка. Ничто из этого не говорит о том, кто управляет другим концом.

dig +short vpn.example.net A
dig +short vpn.example.net AAAA
dig +short vpn.example.net A @1.1.1.1

Транспорт и подлинность — отдельные вопросы

Открытая веб-страница на имени хоста проверяет одного слушателя на одном порту. OpenVPN, IPsec и SSTP слушают в другом месте, на своих портах и протоколах, поэтому доступный веб-сервер ничего о них не говорит.

Запись в каталоге и профиль должны совпадать по транспорту, порту и учётным данным. Подлинность проверяется цепочкой сертификатов или отпечатком ключа партнёра, с которым был настроен клиент, а не написанием имени хоста. Имя, содержащее знакомое слово проекта, доказывает лишь то, что кто-то его зарегистрировал. Прочитайте сертификат, который предъявляет служба, и сравните издателя и субъект с тем, что ожидает профиль.

openssl s_client -connect vpn.example.net:443 -servername vpn.example.net </dev/null 2>/dev/null |
  openssl x509 -noout -subject -issuer -dates

Слова стран — не аудит местоположения

Метка jp или de в каталоге — это регистрация, а базы геолокации IP расходятся достаточно часто, чтобы ни одну из них не стоило считать абсолютной истиной. Общий хостинг, anycast и простая ошибка настройки — всё это смещает наблюдаемое местоположение от метки.

Практическая проверка — это собственный путь приложения: до какого адреса оно доходит и что показывает проверка адреса выхода изнутри сеанса. Наблюдаемый адрес выхода — свойство маршрута в этот момент, а не гарантия, привязанная к имени. Каталоги добровольцев добавляют ещё один слой, потому что тот, кто зарегистрировал запись, не обязательно тот, кто управляет машиной. Запишите, что вы измерили и когда, а не то, что обещала запись.

Проверьте предлагаемую службу, затем оператора

Когда транспорт и подлинность установлены, остаётся вопрос о поведении оператора, и для него нужны документальные доказательства, а не догадки. Политика конфиденциальности, опубликованный контакт и уведомление о прозрачности — это доказательства намерения; ни одно из них не доказывает практику, а отсутствие всех трёх тоже информация.

Для публичного узла или узла, которым управляют добровольцы, исходите из того, что выход общий и тот, кто его держит, может видеть, что через него проходит. Это допущение, а не имя хоста, должно решать, что вы отправляете через туннель.

curl -sSI https://vpn.example.net/ | head -n 5
whois 203.0.113.25 | grep -i -E 'orgname|netname'

Оставьте имени то, в чём оно хорошо: находить конечную точку и подключаться к ней. Всё остальное нужно проверять отдельно, в тот день, когда это важно.

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