Перейти к основному содержимому
Вернуться в категорию

Интеграция Cloudflare: защита от DDoS и CDN

Полное руководство по настройке Cloudflare, конфигурации DNS, правилам WAF, Page Rules, режиму Under Attack и скрытию IP-адреса сервера для защиты от DDoS-атак.

Время чтения: 15 мин Защита от DDoS и безопасность
cloudflareddoscdnwafdnsбезопасностьpage-rules

Содержание

Интеграция Cloudflare: защита от DDoS и CDN

Cloudflare — это мощная платформа, которая защищает ваш сайт от DDoS-атак, предоставляет сеть доставки контента (CDN) и повышает производительность. В этом руководстве рассматривается интеграция Cloudflare с вашим сервером, настройка DNS, создание правил WAF и расширенные функции защиты.

На серверах REXE интеграция Cloudflare может использоваться совместно с защитой Path Panel DDoS для обеспечения многоуровневой безопасности.

Создание учётной записи и добавление сайта

Для начала работы с Cloudflare необходимо создать учётную запись и добавить сайт.

Создание учётной записи

  1. Перейдите на cloudflare.com
  2. Нажмите кнопку "Sign Up"
  3. Зарегистрируйтесь с помощью email и пароля
  4. Подтвердите email

Добавление сайта

  1. Нажмите "Add a Site" на панели управления
  2. Введите имя домена (например, example.com)
  3. Выберите план (бесплатный план включает защиту от DDoS)
  4. Cloudflare автоматически сканирует существующие DNS-записи

Настройка DNS

Для работы Cloudflare необходимо направить серверы имён вашего домена на Cloudflare.

Изменение серверов имён

Cloudflare предоставляет два адреса серверов имён:

ns1.cloudflare.com
ns2.cloudflare.com

Обновите эти адреса в панели вашего регистратора доменов.

Управление DNS-записями

Управляйте записями в панели DNS Cloudflare:

Тип    Имя            Содержимое          Прокси
A      example.com    185.x.x.x          Proxied (оранжевое облако)
A      www            185.x.x.x          Proxied
A      api            185.x.x.x          Proxied
MX     example.com    mail.example.com    DNS only (серое облако)
TXT    example.com    v=spf1 ...         DNS only

Оставьте записи электронной почты (MX, SPF, DKIM) в режиме "DNS only" (серое облако). Почтовые сервисы не работают в режиме прокси.

Статус прокси (Оранжевое/Серое облако)

СтатусОписание
Proxied (Оранжевое)Трафик проходит через Cloudflare, защита от DDoS активна
DNS Only (Серое)Только DNS-разрешение, без защиты
hljs bash
# Проверка DNS-разрешения
dig +short example.com
# При активном прокси Cloudflare отображаются IP-адреса Cloudflare

# Проверка реального IP
curl -s https://www.cloudflare.com/ips-v4

Скрытие IP-адреса сервера

Одно из важнейших преимуществ Cloudflare — скрытие реального IP-адреса вашего сервера. Однако следует обратить внимание на возможные точки утечки.

Точки утечки IP и решения

hljs bash
# 1. Утечка IP через заголовки почтового сервера
# Решение: используйте другой IP/сервер для электронной почты

# 2. Старые DNS-записи (SecurityTrails, Shodan)
# Решение: смените IP после настройки Cloudflare

# 3. Прямой доступ по IP
# Решение: разрешите на сервере только трафик от IP Cloudflare

Ограничение IP Cloudflare на сервере

hljs bash
# Разрешить только IP Cloudflare с помощью iptables
#!/bin/bash

# Диапазоны IPv4 Cloudflare
CF_IPS=$(curl -s https://www.cloudflare.com/ips-v4)

# Удалить существующие правила HTTP/HTTPS
iptables -D INPUT -p tcp --dport 80 -j ACCEPT 2>/dev/null
iptables -D INPUT -p tcp --dport 443 -j ACCEPT 2>/dev/null

# Разрешить только IP Cloudflare
for ip in $CF_IPS; do
    iptables -A INPUT -p tcp --dport 80 -s $ip -j ACCEPT
    iptables -A INPUT -p tcp --dport 443 -s $ip -j ACCEPT
done

# Заблокировать остальной HTTP/HTTPS трафик
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -j DROP

echo "Ограничение IP Cloudflare применено."

Получение реального IP с помощью Nginx

hljs nginx
# /etc/nginx/conf.d/cloudflare.conf

# Cloudflare IPv4
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;

real_ip_header CF-Connecting-IP;

Правила WAF (Web Application Firewall)

Cloudflare WAF защищает ваше веб-приложение от SQL-инъекций, XSS и других атак.

Пользовательские правила WAF

# Блокировка трафика из определённых стран
(ip.geoip.country eq "XX") -> Block

# Блокировка определённых User-Agent
(http.user_agent contains "BadBot") -> Block

# Доступ к wp-admin только с определённого IP
(http.request.uri.path contains "/wp-admin" and not ip.src eq 1.2.3.4) -> Block

# Ограничение скорости: более 100 запросов в минуту
(http.request.uri.path eq "/api/*") -> Rate Limit (100 req/min)

Настройка Page Rules

# 1. Всегда использовать HTTPS
URL: http://*example.com/*
Настройка: Always Use HTTPS

# 2. Отключить кеш для API
URL: *example.com/api/*
Настройка: Cache Level = Bypass

# 3. Агрессивное кеширование статических файлов
URL: *example.com/static/*
Настройка: Cache Level = Cache Everything
           Edge Cache TTL = 1 month

Режим Under Attack

Активируйте режим Under Attack во время активной DDoS-атаки.

Активация через API

hljs bash
# Включить режим Under Attack
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/ZONE_ID/settings/security_level" \
  -H "Authorization: Bearer API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"value":"under_attack"}'

# Вернуться в нормальный режим
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/ZONE_ID/settings/security_level" \
  -H "Authorization: Bearer API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"value":"medium"}'

Не забудьте отключить режим Under Attack после окончания атаки. Постоянная активация негативно влияет на пользовательский опыт.

Настройка SSL/TLS

# Dashboard > SSL/TLS > Overview

Режим шифрования:
- Off: Без SSL (не рекомендуется)
- Flexible: SSL между Cloudflare и посетителем (origin HTTP)
- Full: Самоподписанный сертификат на origin
- Full (Strict): Действительный сертификат на origin (рекомендуется)

Лучшие практики REXE + Cloudflare

  1. Двойная защита: Path Panel + Cloudflare WAF
  2. Скрытие IP origin: прокси Cloudflare + ограничение iptables
  3. SSL Full Strict: сквозное шифрование с сертификатом origin
  4. Rate Limiting: ограничение запросов для API-эндпоинтов
  5. Управление ботами: фильтрация вредоносных ботов
  6. Оптимизация кеша: CDN-кеш для статического контента

Устранение неполадок

hljs bash
# Проверка подключения Cloudflare
curl -sI https://example.com | grep -i 'cf-ray\|server\|cf-cache'

# Проверка распространения DNS
dig +trace example.com

# Коды ошибок Cloudflare
# 520: Веб-сервер возвращает неизвестную ошибку
# 521: Веб-сервер недоступен
# 522: Тайм-аут подключения
# 523: Origin недоступен
# 524: Произошёл тайм-аут

Заключение

Интеграция Cloudflare обеспечивает мощный уровень защиты от DDoS, производительность CDN и безопасность WAF для вашего сервера REXE. Правильная настройка DNS, скрытие IP origin и правила WAF позволяют комплексно защитить ваш сервер.