Firewalld Kullanarak CloudFlare Trafiğinin Kabul Edilmesi

Neredeyse her firewall yönetim aracıyla ilgili CloudFlare ip aralıklarını beyaz listeye alma konusunda aksiyon aldık. Şimdi sıra geldi firewalld için bunu yapmaya.

Çoğu işletim sisteminde ön tanımlı olarak kullanılması önerildiği için isteyenler aşağıdaki betiği kullanabilir.

Betik bana ait değil sadece düzenlemesini gerçekleştirdiğimi hatırlatayım.

#!/usr/bin/env bash

# Instructions:
#
# 1) Place this script in the /root/ directory, give it proper permissions.
#    $ sudo chmod +x /root/open-cloudflare.sh
#
# 2) Open the cron job editor
#    $ sudo crontab -e
#
# 3) Add the following to the last line
#    12 0 * * * root /root/open-cloudflare.sh
#
# https://gist.github.com/rraallvv/602ea1ed32f40074c1c509b5161da77d
# Actual script:

# remove all public rules first
IFS=
\n'
for i in $(sudo firewall-cmd --list-rich-rules --zone=public); do
        echo "removing '$i'"
        sudo firewall-cmd --permanent --zone=public --remove-rich-rule "$i"
done

# IPv4 HTTPS
echo "adding IPv4 HTTPS"
for i in $(curl "https://www.cloudflare.com/ips-v4"); do
        echo "adding '$i'"
        sudo firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="'$i'" port port=443 protocol=tcp accept';
done

# IPv6 HTTPS
echo "adding IPv6 HTTPS"
for i in $(curl "https://www.cloudflare.com/ips-v6"); do
        echo "adding '$i'"
        sudo firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv6" source address="'$i'" port port=443 protocol=tcp accept';
done

# SSH
#firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="myip" port port=22 protocol=tcp accept'
#firewall-cmd --permanent --change-zone=eth0 --zone=public

echo "reloading..."
sudo firewall-cmd --reload
Share this:

Leave a Comment

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.