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.) нужна специальная конфигурация — 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 заголовок

Связанные статьи