riko.dev | 2020-08-08 15:59:32 UTC | #1
Podany skrypt jest pomocny w sytuacji, kiedy z jakiegoś powodu chcesz ukryć posiadanie serwera www na swoim vpsie lub dedyku przed skanerami typu Shodan, lub osobami, które celowo chcą pominąć firewall CloudFlare.
Oczywiście sudo można pominąć, jeśli ktoś jest większym kozakiem i leci na roocie. :(
Zacznijmy od pobrania skryptu.
wget https://gist.githubusercontent.com/Manouchehri/cdd4e56db6596e7c3c5a/raw/be3c3ef3459a39e97aad4e643c9e0992d49cef96/cloudflare.sh
Pora nadać wymagane uprawnienia: sudo chmod +x cloudflare.sh
Ostatni krok to uruchomienie skryptu: sudo ./cloudflare.sh
Gotowe! Efekt można podziwiać wchodząc na adres naszego serwera WWW (adresip:80 / adresip:443). Próba połączenia zakończy się niepowodzeniem.
IPTables domyślnie nie zapamiętuje dodawanych reguł. Najprostszym sposobem na rozwiązanie tego problemu jest dopisanie naszego skryptu do cron’a.
sudo crontab -e
@reboot sh /lokalizacja/skryptu/cloudflare.sh
Jasne, jednak cloudflare może zaktualizować pule używanych IP. Chcesz za każdym razem usuwać stare reguły i dodawać nowe? ;)
# Source:
# https://www.cloudflare.com/ips
# https://support.cloudflare.com/hc/en-us/articles/200169166-How-do-I-whitelist-CloudFlare-s-IP-addresses-in-iptables-
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
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
# Avoid racking up billing/attacks
# WARNING: If you get attacked and CloudFlare drops you, your site(s) will be unreachable.
iptables -A INPUT -p tcp -m multiport --dports http,https -j DROP
ip6tables -A INPUT -p tcp -m multiport --dports http,https -j DROP
BeGood | 2020-07-27 18:00:28 UTC | #2
Czyli jak będę sie łączyć przez domenę która ma dns na cloudflare to normalnie zobaczę stronę, strona nie wyświetli sie tylko w tedy kiedy spróbuje sie połączyć BEZPOŚREDNI (BEZ PROXY CLOUDFLARE) z IPv4/IPV6 przy pisanego do VPS/DEDYKA. Dziękuje za odpowiedź
riko.dev | 2020-07-27 18:01:17 UTC | #3
Dokładnie. Bez użycia proxy cloudflare nikt nie połączy się z serwerem WWW. :)
KMatuszak | 2021-02-09 20:23:16 UTC | #4
Cudowny poradnik, dzięki :heart:
Axerr | 2021-02-10 08:18:06 UTC | #5
Zrobisz poradnik, który współpracowałby z Dockerem?
Ustalanie reguł iptables, gdy Docker jest uruchomiony to istna katorga.
SystemZ | 2021-02-11 12:02:16 UTC | #6
Przy dockerze trochę inaczej to wygląda ale nie jest to dramat czy coś.
Reguły należy umieszczać w łańcuchu DOCKER-USER
po starcie dockerd
, da się to ogarnąć w miarę prosto przez usługę systemd.
Powiązane:
https://docs.docker.com/network/iptables/