Настройка Cloudflare
воскресенье, 1 мартa 2020 17:53:52, написал Admin
Cloudflare – это в первую очередь сервис по обеспечению безопасности сайта. Это облако, которое встает между нашим сервером и конечным посетителем. Что в итоге позволяет отбить элементарные ддос-атаки. Также сервис ускоряет работу сайта, кэшируя статическое содержимое. Кэшируются файлы размеры до 500 мб (на бесплатном тарифе). Также сервис скрывает за облаком настоящий IP-адрес сервера. Также он выдает внутренний сертификат сроком на 15 лет. Можно получить его до 100 поддоменов (чтобы закрыть все поддомены разом, нужен платный тариф)
После регистрации на сервисе необходимо добавить свой сайт и направить его днс на Cloudflare. Далее перейти на вкладку SSL/TLS, войти в Origin Certificates и создать новый сертефикат. Там будет публичный и приватный ключи. В nginx указываем пути к ним
ssl_certificate /etc/ssl/certs/cert.pem; ssl_certificate_key /etc/ssl/private/key.pem; ssl_client_certificate /etc/ssl/certs/cloudflare.crt;
Последний ключ я брал из этой статьи: https://www.8host.com/blog/obsluzhivanie-veb-sajta-s-pomoshhyu-cloudflare-i-nginx-v-ubuntu-16-04/
Проверяем, что сайт нормально открывается. Переходим к следующему шагу: т.к. мы находимся за облаком, то теперь все реальные IP-адреса посетителей нам не доступны. Я пытался настроить отображение адреса на апаче, но потерпел неудачу (нет поддержки Ubuntu 18). Сама установка простая:
curl -C - https://pkg.cloudflare.com/pubkey.gpg | sudo apt-key add - echo "deb http://pkg.cloudflare.com/ `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/cloudflare.list sudo apt-get update sudo apt-get install libapache2-mod-cloudflare sudo service apache2 restart sudo apache2ctl -M
- должно показать cloudfare_module (shared)
Мне же пришлось включать через nginx, модуль ngx_http_realip_module. С его помощью можно получить реальный IP адрес посетителей через Cloudflare.
Необходимо добавить в файл /etc/nginx/conf.d/cloudflare.conf следующий текст:
# Cloudflare Real IP 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 104.16.0.0/12; set_real_ip_from 108.162.192.0/18; set_real_ip_from 131.0.72.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 162.158.0.0/15; set_real_ip_from 172.64.0.0/13; set_real_ip_from 173.245.48.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 190.93.240.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 199.27.128.0/21; # If IPv6 support: set_real_ip_from 2400:cb00::/32; set_real_ip_from 2405:8100::/32; set_real_ip_from 2405:b500::/32; set_real_ip_from 2606:4700::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2c0f:f248::/32; set_real_ip_from 2a06:98c0::/29; # Real IP enable real_ip_header CF-Connecting-IP;
Список айпи адресов обновляем отсюда: https://www.cloudflare.com/ips/
После создания cloudflare.conf необходимо перезапустить nginx