
Вопрос «покажите все поддомены сайта» звучит просто, а честный ответ на него неприятный: полного списка не существует ни у одного сервиса в мире. DNS устроен так, что отдаёт ответ только на конкретный вопрос — «есть ли имя shop.example.uz?» — и никогда не перечисляет содержимое зоны целиком. Зато есть обходной путь, который на практике находит большую часть имён: журналы выпущенных сертификатов. Введите домен, и проверка соберёт оттуда известные поддомены, а потом проверит по DNS, какие из них живы прямо сейчас.
Почему полного списка нет
Когда-то перечислить зону было можно: существует команда переноса зоны, AXFR, которой серверы имён обмениваются между собой. Лет двадцать назад её нередко оставляли открытой для всех, и любой желающий выкачивал список имён целиком. Сегодня это считается грубой ошибкой настройки и закрыто практически везде.
Всё, что осталось, — спрашивать по одному. Поэтому любой сервис «покажи поддомены» делает одно из двух: либо перебирает словарь популярных имён (mail, ftp, test, dev, api, shop и ещё пара тысяч), либо смотрит в чужие архивы, куда имена попали сами. Второй способ точнее, и именно он у нас под капотом.
Журналы прозрачности сертификатов
С 2018 года браузеры доверяют сертификату только при условии, что факт его выпуска опубликован в открытых журналах Certificate Transparency. Задумывалось это как защита от поддельных сертификатов: любой владелец домена может увидеть, что кто-то выписал бумагу на его имя. Побочный эффект — публичный список имён, на которые когда-либо выпускались сертификаты.
Поскольку сертификат сегодня получает почти каждый живой поддомен, из этих журналов складывается неплохая карта инфраструктуры. Наша проверка запрашивает их, отбрасывает дубли и служебные записи, а оставшиеся имена проверяет по DNS — и помечает, у каких есть адрес, а какие числятся только в архиве.
У способа два честных ограничения. Первое: поддомен без сертификата — внутренний сервис, стенд по http, имя без веб-сервера — в журналы не попадёт никогда. Второе: сертификат вида *.example.uz закрывает сразу все имена и ни одного не называет. Компания с wildcard-сертификатом видна в журналах одной строкой со звёздочкой, и что за ней — неизвестно.
Какие ещё есть способы
- Перебор по словарю. Берут список типовых имён и спрашивают каждое у DNS. Находит именно то, что называется стандартно, и не находит ничего с нестандартным именем.
- Поисковые операторы. Запрос site:example.uz -www в Google и Яндексе показывает проиндексированные поддомены. Работает только для того, что открыто для роботов.
- Ссылки и sitemap. Карта сайта, меню, поддомены в ссылках с главной — самый простой источник, о котором забывают.
- Обратный DNS по диапазону. Если сервер свой и адресов много, обратные записи иногда выдают имена. Как это работает, разобрано в статье про IP-адрес сайта.
- Собственная зона. Если домен ваш, полный список лежит в панели DNS-хостинга. Это единственный по-настоящему полный источник, и он доступен только владельцу.
Зачем вообще искать поддомены
Инвентаризация. У любой компании старше пары лет находятся имена, о которых никто не помнит: стенд подрядчика, старая версия сайта, лендинг давней акции. Они продолжают работать, их индексирует поиск, на них крутится устаревший код.
Безопасность. Забытый поддомен — самая удобная дверь. На нём стоит версия CMS трёхлетней давности, у него нет обновлений, и его не мониторят. Взлом такого стенда часто даёт доступ к общей базе или к тому же серверу, где живёт основной сайт.
Перехват поддомена. Отдельный класс проблем: CNAME остался указывать на внешний сервис, а услугу там давно отключили. Кто угодно может зарегистрировать освободившийся аккаунт и получить сайт на вашем имени — с вашим доменом в адресной строке и валидным сертификатом. Проверяется просто: если поддомен резолвится, а по адресу отдаётся страница провайдера вида «проект не найден» — удалите запись.
SEO. Дубли основного сайта на тестовых поддоменах отлично индексируются и конкурируют с оригиналом. Если проверка показала живой stage или dev — это первое, что стоит закрыть.
Что делать с лишними поддоменами
Ненужное — удалять из зоны целиком: нет записи, нет имени, нет проблемы. Нужное, но служебное — закрывать по-настоящему, а не наполовину. Правильный набор для тестового стенда: пароль на уровне сервера (basic auth) или доступ по списку адресов, заголовок X-Robots-Tag: noindex и отсутствие ссылок на него с публичных страниц. Полагаться на один robots.txt нельзя: он запрещает обход, но не мешает адресу попасть в индекс по ссылке, и тем более не мешает чужому боту зайти.
И обратное: если поддомен нужен посетителям, он должен жить по тем же правилам, что основной сайт, — отдельный сертификат, редирект с http, мониторинг доступности. Проверить его по всем пунктам можно теми же инструментами: SSL, заголовки и редиректы, скорость.
Поддомен или подпапка
Вопрос всплывает всякий раз, когда запускают блог или языковую версию. Коротко: поиск считает поддомен отдельным сайтом, и авторитет основного домена переходит на него не полностью и не сразу. Поэтому раздел, который должен усиливать основной сайт, — блог, справка, каталог — логичнее делать подпапкой. Поддомен оправдан, когда проект действительно отдельный: другая аудитория, другой технологический стек, другая команда, иногда другой язык с собственной редакцией.
Частые вопросы
Почему в списке нет поддомена, который я точно знаю? На него не выпускали отдельный сертификат либо он покрыт wildcard-сертификатом. Из журналов такое имя не достать.
Почему в списке есть имена, которые не открываются? Сертификат когда-то выпускали, а запись потом удалили. Проверка помечает такие имена как не резолвящиеся — это история, а не текущее состояние.
Что такое autodiscover, cpanel, webdisk в результатах? Служебные имена, которые панели управления хостингом создают автоматически. У большинства сайтов они есть и ничего не значат.
Законно ли это? Да: журналы сертификатов и DNS — публичные данные, никакого взлома здесь нет. Мы не сканируем порты и не пытаемся войти.
Можно ли скрыть свои поддомены? Полностью — нет, публичность CT-журналов отключить нельзя. Частично — да: один wildcard-сертификат на всё вместо отдельных имён скрывает состав зоны.
Дальше: DNS-записи домена, на каком хостинге стоит сайт и все инструменты на одной странице.
Читайте также
Дроп-домены .uz: где искать освобождающиеся имена и как их отбирать
Как устроен выкупной период в зоне .uz, где брать списки освобождающихся имён, по каким метрикам их отбирать и как рассчитать…
Как проверить скорость загрузки сайта: TTFB, время ответа сервера и что ускорять первым
Проверка онлайн: DNS, соединение, TLS, TTFB и размер страницы. Чем это отличается от PageSpeed, почему сервер думает долго и восемь…
HTTP-заголовки и редиректы: как проверить ответ сервера и цепочку 301
Коды ответа от 200 до 504, правило одного редиректа, склейка http и www, опасный X-Robots-Tag и заголовки безопасности: проверка цепочки…