Knowledge Base
Реальный IP сервера раскрыт в обход Cloudflare
Cloudflare Origin IP Leak — Collapse Point
Категория: Web App Security · Риск: critical
Cloudflare Origin IP Leak — Collapse Point
Что это означает
Ваш сайт защищён Cloudflare (WAF, DDoS-фильтр, rate-limit), но **реальный IP VPS обнаружен через DNS-запись поддомена**, который не проксируется через Cloudflare.
Атакующий может подключиться к VPS напрямую — **минуя всю защиту Cloudflare полностью**.
Обычный трафик: User → Cloudflare (WAF+DDoS) → Origin VPS
После утечки: Attacker → Origin VPS (напрямую, без WAF)
Почему это Collapse Point
| Защита Cloudflare | Работает при утечке? | |-----------------------|----------------------| | WAF (SQL injection, XSS) | ❌ НЕТ | | DDoS protection | ❌ НЕТ | | Rate limiting | ❌ НЕТ | | Bot management | ❌ НЕТ | | IP reputation | ❌ НЕТ |
Одна leaked IP = вся периметральная защита обнулена.
Частые причины утечки
1. Поддомен не за Cloudflare Proxy
mail.example.com → A 1.2.3.4 (серое облако = прямой DNS, НЕ проксируется)
smtp.example.com → A 1.2.3.4
ftp.example.com → A 1.2.3.4
DNS-запрос `dig mail.example.com A` вернёт настоящий IP VPS.
2. MX-запись указывает на реальный IP
MX example.com → mail.example.com
A mail.example.com → 1.2.3.4 ← реальный IP
3. Исторические DNS-записи
Если сайт был переведён на Cloudflare недавно — старый IP мог попасть в Shodan, Censys, SecurityTrails и другие пассивные базы.
Исправление
Шаг 1. Проксируйте все записи (оранжевое облако)
В Cloudflare DNS panel — все A/AAAA записи должны иметь **оранжевый облак** (Proxied).
Особенно проверьте:
- `mail.`, `smtp.`, `ftp.`, `direct.`, `origin.`, `vpn.`, `remote.`
Для почты (mail.) нужна специальная конфигурация — MX не может проксироваться, используйте Cloudflare Email Routing или внешний почтовый сервис.
Шаг 2. Закройте 80/443 на VPS — принимать только с Cloudflare
# Скачайте актуальные диапазоны:
# https://www.cloudflare.com/ips-v4
# ufw — пример для нескольких диапазонов CF
for cidr in \
103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 \
104.16.0.0/13 104.24.0.0/14 \
108.162.192.0/18 131.0.72.0/22 141.101.64.0/18 \
162.158.0.0/15 172.64.0.0/13 173.245.48.0/20 \
188.114.96.0/20 190.93.240.0/20 197.234.240.0/22 \
198.41.128.0/17; do
ufw allow from $cidr to any port 80
ufw allow from $cidr to any port 443
done
ufw deny 80
ufw deny 443
ufw reload
Шаг 3. Cloudflare Authenticated Origin Pull (рекомендуется дополнительно)
Nginx принимает только запросы с Cloudflare-сертификатом:
# /etc/nginx/conf.d/cloudflare-origin-pull.conf
ssl_client_certificate /etc/nginx/cloudflare_ca.crt;
ssl_verify_client on;
Сертификат: https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull/
Шаг 4. Смените IP, если он был в базах Shodan
Если IP уже индексирован — файрвол помогает, но атакующий уже знает реальный IP. Рассмотрите смену IP VPS и перевод нового IP сразу за файрвол.
Проверка исправления
# После настройки — реальный IP должен НЕ отвечать напрямую
curl -I http://<REAL_IP>/ --resolve example.com:<REAL_IP>
# Ожидаемо: Connection refused (или timeout)
# Через Cloudflare должно работать
curl -I https://example.com/
# Ответ должен содержать cf-ray заголовок
Связанные статьи
- [Настройка Cloudflare](/kb/cdn/cloudflare-setup)
- [Cloudflare Authenticated Origin Pull](/kb/cdn/premium-origin-enforcement-audit)
- [Container public ports](/kb/server_hardening/container-public-ports-inventory)