Запрещаем веб трафик на origins, кроме Cloudflare IPs
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;
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Салом, можно ещё создать файл в /etc/nginx/proxy_params, a потом добавить туда следующие строки:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
после просто подключить в конфиге nginx:
proxy_pass https://your_backend;
include proxy_params;
на Ubuntu такой файл уже существует можно просто подключить
Можно ещё так:
1. Создаем отдельную сеть для наших контейнеров
docker network create zbx-net
2. Указываем сеть по умолчанию в docker-compose.yml
networks:
default:
name: zbx-net
external: true
Спасибо за отзыв, написал отдельную статью по установке и настройке Ansible
certbot certonly --force-renew -d newsite.com