При установке сайта за Cloudflare, всегда остается возможность подключения напрямую к серверу.
Cloudflare хранит списки актуальных IP-адреса в двух текстовых файлах. Они находятся в https://www.cloudflare.com/ips-v4 и https://www.cloudflare.com/ips-v6.
Скрипт ниже позволяет разрешить доступ к серверу по HTTP и HTTPS, только с адресов Cloudflare.
создаем файл, к примеру
1 2 | mkdir -p /opt /opt/cloudflare.sh |
со следующим текстом
1 2 3 4 5 6 7 8 9 | #!/bin/sh #IPv4 for i in `curl https://www.cloudflare.com/ips-v4`; do iptables -I INPUT -p tcp -m multiport --dports http,https -s $i -j ACCEPT; done iptables -A INPUT -p tcp -m multiport --dports http,https -j DROP #IPv6 for i in `curl https://www.cloudflare.com/ips-v6`; do ip6tables -I INPUT -p tcp -m multiport --dports http,https -s $i -j ACCEPT; done ip6tables -A INPUT -p tcp -m multiport --dports http,https -j DROP |
Скрипт специально разделен на части IPv4 и IPv6, если IPv6 отключен в системе, использование ip6tables вызовет ошибку.
После его написания, необходимо будет добавить его в Cron. Один раз в сутки.