К содержимому
DDoS·Protect
База знаний

Как скрыть IP-адрес сервера, чтобы защиту нельзя было обойти

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

Шаг 1. Найти утечки

  • Проверьте историю DNS домена в публичных сервисах исторических записей: если сайт когда-то работал без защиты, старый адрес почти наверняка там есть.
  • Переберите поддомены: mail, ftp, cpanel, admin, dev, test, staging, old. Каждый, который указывает прямо на сервер, раскрывает его адрес.
  • Отправьте письмо с сайта (например, восстановление пароля) и посмотрите заголовки Received.
  • Проверьте журналы прозрачности сертификатов на все выпущенные имена — там видны забытые поддомены.
  • Найдите функции сайта, которые делают исходящие запросы по ссылке пользователя: загрузка картинки по URL, предпросмотр ссылок, вебхуки.
  • Проверьте TXT-запись SPF: в ней часто прямо указан IP сервера (ip4:...).
  • Посмотрите, не отдаёт ли сервер свой адрес в заголовках ответа, страницах ошибок или файлах вроде phpinfo.
# Какие адреса сейчас отдают поддомены
for s in www mail ftp cpanel admin dev test staging old api; do
  printf '%-10s ' "$s"; dig +short "$s.example.ru" A | tr '\n' ' '; echo
done

# Есть ли IP в SPF
dig +short example.ru TXT | grep spf
Замените example.ru своим доменом

Шаг 2. Сменить адрес

Если адрес нашёлся в истории DNS или где-то ещё, единственный надёжный путь — получить у хостинга новый IP и сразу подключить его к фильтру, нигде не публикуя. Перед сменой убедитесь, что новый адрес не попадёт в те же места: поддомены переведены на фильтр или удалены, почта вынесена, SPF не содержит адрес веб-сервера.

Шаг 3. Закрыть прямой доступ

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

# iptables: HTTP(S) только с узлов фильтрации (адреса условные)
iptables -A INPUT -p tcp -m multiport --dports 80,443 -s 203.0.113.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -s 198.51.100.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j DROP
Пример; сохраните правила способом, принятым в вашей системе

Шаг 4. Вынести почту

MX-запись указывает прямо на почтовый сервер. Если почта работает на том же сервере, что и сайт, вынесите её на отдельный сервер или внешний сервис. Письма с сайта отправляйте через внешний SMTP: тогда в заголовках будет адрес почтового сервиса, а не ваш.

Шаг 5. Проверить результат

Попробуйте открыть сайт по IP напрямую с внешней машины: curl -k https://IP/ -H 'Host: example.ru' должен завершиться таймаутом. Повторяйте проверку утечек после каждого нового поддомена и смены почтовой схемы.

Вопросы и ответы

Можно ли не менять IP, а просто закрыть доступ файрволом?

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

Как быть с SSH и панелью управления?

Их адрес тот же, что у сервера. Ограничьте доступ к ним своими адресами или VPN, а панель управления не публикуйте на поддомене основного домена.

Помогает ли CDN скрыть адрес?

Только если весь трафик идёт через него, а прямой доступ закрыт. CDN, через который отдаётся лишь статика, адрес основного сервера не скрывает.

Ранний доступ

Подключим ваш сайт одним из первых

Сервис готовится к запуску. Оставьте заявку: проверим, от чего нужно защищать ваш проект, и подключим его в числе первых на условиях раннего доступа.