Как узнать, где хостится сайт (и когда это невозможно)
Путь от домена к IP-адресу и владельцу сети, чтение обратного DNS, почему CDN скрывает исходный сервер и где кончаются публичные данные.
Опубликовано: · 5 мин чтения
«На каком хостинге этот сайт?» звучит как вопрос с одним ответом. На практике честный ответ — это чаще короткая цепочка: DNS ведёт одна компания, трафик проходит через другую, сервер принадлежит третьей, а почта не имеет отношения ни к одной из них.
В этой статье метод показан по шагам: что каждый шаг на самом деле доказывает и где публичные данные заканчиваются.
Шаг 1. Разрешите домен в IP-адреса
Всё начинается с записей A (IPv4) и AAAA (IPv6).
$ dig +short A www.example.com
192.0.2.10
$ dig +short AAAA www.example.com
2001:db8::10
В Windows ту же информацию даёт nslookup www.example.com.
Две детали легко упустить:
example.comиwww.example.com— разные имена. Часто они указывают в одно место, но не всегда. Одно может быть сервисом редиректа, а другое — настоящим сайтом. Проверяйте то имя хоста, на котором посетители в итоге оказываются.- Между ними может быть CNAME. Если
www— псевдоним чего-то вродеexample.hosting-platform.example.net, целевое имя уже многое говорит. Имена хостов платформ и CDN обычно узнаваемы.
$ dig +short www.example.com
sites.platform.example.net.
192.0.2.10
Шаг 2. Найдите сеть, которой принадлежит IP
IP-адрес входит в блок, а этот блок анонсирует в интернет автономная система (AS): сеть с собственной политикой маршрутизации и номером вроде AS64500. Хостинг-компании, облачные провайдеры, интернет-провайдеры и крупные предприятия — все они управляют автономными системами.
Сопоставление адреса с его AS даёт:
- номер и название AS, например «AS64500 EXAMPLE-HOSTING»;
- префикс, в котором маршрутизируется адрес, например
192.0.2.0/24; - страну выделения, зафиксированную региональным интернет-регистратором (RIPE NCC, ARIN, APNIC, LACNIC или AFRINIC).
Для сайта на обычном виртуальном хостинге, VPS или облачном инстансе название AS и есть тот ответ, который нужен большинству. Если сеть принадлежит известной хостинг-компании, сервер обслуживает эта компания.
Вот чего это не доказывает:
- Реселлеры невидимы. Небольшой хостинг-бренд, арендующий серверы у крупного оператора дата-центров, выглядит как этот крупный оператор.
- Облако — не хостинг в традиционном смысле. Название AS крупного облачного провайдера говорит, где работает машина. Оно ничего не говорит о том, кто её администрирует.
- Страна выделения — не местоположение сервера. Это страна, где организация зарегистрировала блок. Провайдер может использовать блок, зарегистрированный в одной стране, в дата-центре на другом континенте. Коммерческие базы геолокации пытаются делать лучше, но и они — обоснованные предположения.
Шаг 3. Прочитайте обратный DNS
Обратный DNS сопоставляет адрес с именем через PTR-запись.
$ dig +short -x 192.0.2.10
srv-10.fra1.hosting.example.net.
PTR-запись контролирует тот, кто владеет блоком IP-адресов, а не владелец сайта. Именно это делает её полезной. Имена по умолчанию у провайдеров часто содержат их собственный домен, код региона или дата-центра (здесь fra1) и идентификатор сервера. Собственная PTR-запись вроде web01.example.com указывает на выделенный сервер или VPS, чей владелец потрудился её настроить.
Оговорки: у многих адресов PTR-записи нет вовсе, а PTR — всего лишь утверждение владельца блока. Если это важно, проверьте, что имя разрешается обратно в тот же адрес. Подробнее в статье обратный DNS и PTR-записи.
Почему CDN и прокси скрывают исходный сервер
Если шаг 2 возвращает Cloudflare, Fastly, Akamai, Amazon CloudFront или похожую сеть, вы нашли границу (edge), а не хостинг.
CDN с обратным прокси работает так: DNS домена указывает на адреса CDN. Посетители подключаются к ближайшей точке CDN. CDN отдаёт кэшированный контент или передаёт запрос исходному серверу (origin), адрес которого известен только CDN и владельцу сайта.
Из этого следует:
- IP-адрес, который вы видите, делят очень много не связанных между собой сайтов.
- Обычно это anycast: один и тот же адрес анонсируется сразу из многих городов. Вопрос «в какой он стране» не имеет осмысленного ответа.
- Исходный сервер может быть где угодно: облачный инстанс, сервер в офисе, другая хостинг-компания.
Это сделано намеренно. Сокрытие исходного сервера — часть того, как эти сервисы защищают сайты от прямых атак. Для сайта за CDN правильный ответ на вопрос «где он хостится?» такой: за этой CDN; исходный сервер публично не наблюдаем.
Вам встретятся статьи с приёмами раскрытия исходного сервера: исторические данные DNS, перебор поддоменов, поиск других хостов в журналах сертификатов. Иногда они находят устаревшую или неверно настроенную запись. Они ненадёжны, результат легко истолковать неверно, а использование их для обхода защиты, которую кто-то поставил намеренно, превращает проверку в разведку. Если у вас законная причина связаться с оператором, например злоупотребление, правовой вопрос или сообщение об уязвимости, для этого существуют процедура abuse у CDN и контактные каналы регистратора.
Что добавляют записи NS и MX
Два других типа записей помогают дополнить картину.
NS-серверы (NS) показывают, кто ведёт DNS домена.
$ dig +short NS example.com
ns1.dns-provider.example.net.
ns2.dns-provider.example.net.
- NS-серверы хостинг-компании часто означают, что сайт размещён там же, потому что виртуальный хостинг идёт в комплекте с DNS.
- NS-серверы регистратора означают только то, что владелец пользуется DNS регистратора по умолчанию.
- NS-серверы CDN подтверждают, что CDN стоит впереди.
Почтовые серверы (MX) показывают, где принимается почта. Нередко это отдельный почтовый провайдер, не связанный с веб-хостингом. Если MX указывает на mail.example.com с адресом рядом с веб-сервером, сайт, вероятно, стоит на классическом хостинг-пакете «всё в одном». SPF-запись иногда перечисляет и другие сервисы, через которые владелец отправляет почту.
Ни один из этих признаков не доказательство. Вместе их обычно хватает для разумного вывода вроде «DNS и CDN у одного провайдера, почта у другого, исходный сервер неизвестен». Что означает каждый тип записи, разобрано в статье типы DNS-записей.
Разбор примера
Допустим, вы проверяете shop.example и находите:
www— CNAME наshops.platform.example.net;- адрес разрешается в сеть, названную по имени крупного облачного провайдера;
- обратный DNS показывает типовое облачное имя хоста;
- NS-записи указывают на регистратора домена;
- MX-записи указывают на хостинговый почтовый сервис.
Разумное прочтение: магазин работает на хостинговой платформе электронной коммерции (её выдаёт CNAME), которая сама работает в крупном облаке. Владелец пользуется DNS регистратора и отдельным почтовым провайдером. У вопроса «кто его хостит?» два честных ответа, платформа и облако под ней, и какой из них вам нужен, зависит от того, зачем вы спрашиваете.
Границы и этика
- Ограничивайтесь публичными запросами. DNS-запросы, сопоставление IP с ASN и обычный HTTPS-запрос — это то, что и так делает каждый браузер и резолвер. Сканирование портов, перебор поддоменов и поиск исходных серверов — другая деятельность с другим правовым и этическим весом.
- Не вычитывайте из данных лишнего. Название сети идентифицирует инфраструктуру, а не человека, который ведёт сайт. Страна выделения — не установление юрисдикции.
- Сообщайте о злоупотреблениях по правильному адресу. Контакт abuse сети (указан в записях RIR), форма abuse у CDN и адрес abuse регистратора — каналы, которые куда-то ведут.
- Ожидайте перемен. Сайты переезжают. Ответ — это снимок с отметкой времени.
Проверьте в OrbitProbe
Проверка IP и хостинга в OrbitProbe разрешает домен в его IPv4- и IPv6-адреса и показывает для каждого обратный DNS, ASN, название сети, префикс и страну выделения. Адреса из известных диапазонов CDN и прокси помечаются как граничные, чтобы вы не приняли их за исходный сервер. Чтобы увидеть рядом NS-серверы, MX и регистрационные данные, воспользуйтесь полным отчётом о домене.