Cloudflare — это сервис, который располагается между пользователями и сервером владельца сайта, выступающий как обратный прокси-сервер для сайтов. Cloudflare предоставляет сеть доставки контента (CDN), защиту от DDoS атак и распределенные службы доменных имен (DNS).
Термин "origins" используется в Cloudflare, как сервер находящийся за облаком Cloudflare и принимающий запросы от него.
Предполагается, что ваш сайт уже настроен на работу с сервисами Cloudflare.
Создайте скрипт, который будет актуализировать информацию об IP адресах Cloudflare, а также обновлять конфигурацию в NGINX.
vi /root/cloudflare-ips.sh
#!/bin/bash
# GET Cloudflare IPs
curl https://www.cloudflare.com/ips-v4 > /etc/nginx/extras/ips-v4
# add "allow" to start and ";" to end of lines
sed 's/.*/allow &;/' /etc/nginx/extras/ips-v4 >> /tmp/cf-ips
mv -f /tmp/cf-ips /etc/nginx/extras/cf-ips
# test nginx conf
/usr/sbin/nginx -t
if [[ $? == 0 ]]; then
echo "Reload nginx configuration..."
systemctl reload nginx.service
else
echo "Cannot reload nginx because test conf failed..."
fi
Добавьте acl в нужный location в nginx:
include /etc/nginx/extras/cf-ips;
deny all;