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.shJasne, 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
Poradnik miesiąca: lipiec 2020BeGood | 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/