Cloudflare: проксирование или только DNS — когда включать облако
Практика3 минРедакция Innovialabs
Коротко
Включайте проксирование (оранжевое облако) для веб-трафика сайта — так вы скрываете IP сервера и получаете кэш, WAF и защиту от DDoS; почту, SSH, базы данных и другие не-HTTP сервисы оставляйте DNS-only, а режим SSL ставьте Full (strict).
Коротко: в чём разница
У каждой A, AAAA и CNAME-записи в Cloudflare есть переключатель:
- Proxied (оранжевое облако) — DNS отдаёт посетителю IP-адреса Cloudflare, а не вашего сервера. Весь трафик идёт через сеть Cloudflare, и только потом — на origin.
- DNS only (серое облако) — Cloudflare работает как обычный DNS-сервер и отдаёт настоящий IP. Трафик идёт напрямую на сервер.
Правило простое: HTTP/HTTPS-трафик сайта — через прокси, всё остальное — DNS-only.
Что даёт проксирование
- Скрытый IP origin-сервера. Атакующему сложнее ударить напрямую по серверу.
- Кэширование. Статика (картинки, CSS, JS) отдаётся с ближайшего к посетителю узла Cloudflare. HTML по умолчанию не кэшируется — это включается отдельными правилами.
- WAF и защита от DDoS. Фильтрация вредоносных запросов до того, как они дойдут до сервера.
- SSL-терминация. Сертификат для посетителей выдаёт и обслуживает Cloudflare; соединение до origin настраивается отдельно.
- Правила, редиректы, сжатие и другие функции, которые работают только для проксируемого трафика.
Ограничение: прокси понимает только HTTP и HTTPS, причём на определённом списке портов. Остальные протоколы через него не пройдут.
Какие записи оставить DNS-only
| Запись | Почему без прокси |
|---|---|
MX и хост почтового сервера (mail.example.com) | Почта работает по SMTP/IMAP, прокси их не пропустит |
| SSH, FTP, SFTP | Не HTTP-протоколы |
| Базы данных, игровые серверы, VPN | Нестандартные порты и протоколы |
| API на нестандартном порту | Порт может не входить в поддерживаемый список |
| Записи для верификации у сторонних сервисов | Сервис часто проверяет, что CNAME указывает именно на него |
Сами MX и TXT-записи проксировать нельзя — переключатель есть только у A, AAAA и CNAME. Но если MX указывает на mail.example.com, а эта A-запись проксирована, почта сломается.
Учтите: DNS-only запись, указывающая на тот же сервер, что и сайт, раскрывает его IP. Если важно скрыть origin, вынесите почту и прочие сервисы на отдельные адреса или используйте Cloudflare Tunnel для SSH.
Проблема 1: в логах только IP Cloudflare
После включения прокси сервер видит IP-адреса Cloudflare вместо посетителей. Ломаются логи, аналитика, лимиты по IP и блокировки. Реальный адрес приходит в заголовке CF-Connecting-IP (и в X-Forwarded-For). Для nginx:
# повторите для каждого диапазона из официального списка Cloudflare
set_real_ip_from 173.245.48.0/20;
real_ip_header CF-Connecting-IP;
Доверяйте заголовку только от адресов Cloudflare — иначе любой сможет подставить чужой IP. Список диапазонов опубликован на сайте Cloudflare и иногда обновляется. В Apache то же делает модуль mod_remoteip, в приложениях — настройка trusted proxies фреймворка.
Проблема 2: бесконечный редирект
Ошибка ERR_TOO_MANY_REDIRECTS почти всегда возникает так: в Cloudflare выбран режим Flexible, а сервер перенаправляет HTTP на HTTPS. Cloudflare ходит на origin по HTTP, сервер отвечает «иди на HTTPS», браузер снова приходит в Cloudflare — и по кругу.
Решение — не убирать редирект на сервере, а установить на origin сертификат и переключить режим на Full (strict).
Как выбрать режим SSL
| Режим | Посетитель → Cloudflare | Cloudflare → сервер |
|---|---|---|
| Off | HTTP | HTTP |
| Flexible | HTTPS | HTTP, без шифрования |
| Full | HTTPS | HTTPS, сертификат не проверяется |
| Full (strict) | HTTPS | HTTPS, сертификат проверяется |
Full (strict) — правильный выбор почти всегда. На сервер подойдёт бесплатный Cloudflare Origin CA сертификат (ему доверяет только Cloudflare, поэтому сайт должен оставаться проксированным) или сертификат Let's Encrypt. Flexible создаёт ложное ощущение безопасности: замок в браузере есть, а участок до сервера не зашифрован.
Чек-лист перед включением облака
- Сайт работает по HTTPS на origin с валидным сертификатом.
- Режим SSL — Full (strict).
- Почтовые и служебные хосты — DNS-only.
- Сервер восстанавливает реальный IP из
CF-Connecting-IP. - Файрвол сервера при желании принимает веб-трафик только с диапазонов Cloudflare.