# \[Poradnik\] Ograniczenie połączeń WWW do adresów z puli CloudFlare

**URL:** <https://anyforum.pl/t/poradnik-ograniczenie-polaczen-www-do-adresow-z-puli-cloudflare/2692>\
**Category:** Ogólne\
**Tags:** poradnik, vps, cloudflare, iptables\
**Created:** [29 Październik 2023 16:01 UTC](https://anyforum.pl/t/poradnik-ograniczenie-polaczen-www-do-adresow-z-puli-cloudflare/2692 "2023-10-29T16:01:01Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Autor:** ![RikoDEV](https://anyforum.pl/user_avatar/anyforum.pl/rikodev/32/1597_2.png) [@RikoDEV](https://anyforum.pl/u/RikoDEV)\
**Data wpisu:** [29 Październik 2023 16:01 UTC](https://anyforum.pl/t/poradnik-ograniczenie-polaczen-www-do-adresow-z-puli-cloudflare/2692/1 "2023-10-29T16:01:02Z")

</div>

## Komu to potrzebne? 🤨

Podany skrypt jest pomocny w sytuacji, kiedy z jakiegoś powodu chcesz ukryć posiadanie serwera www na swoim vpsie lub dedyku przed skanerami typu [Shodan](https://www.shodan.io/), lub osobami, które celowo chcą pominąć firewall CloudFlare.

## Składniki do przepisu 👨‍🍳

- ~~60 g mąki, dwa jajka, szczypta soli~~ …
- Serwer WWW na portach 80/443.
- IPTables, zainstalowany wget/curl oraz pomarańczowa chmurka w panelu CloudFlare ⛅

## Instalacja

> Oczywiście sudo można pominąć, jeśli ktoś jest większym kozakiem i leci na roocie. ☹

1. Zacznijmy od pobrania skryptu.  
`wget https://gist.githubusercontent.com/Manouchehri/cdd4e56db6596e7c3c5a/raw/be3c3ef3459a39e97aad4e643c9e0992d49cef96/cloudflare.sh`

2. Pora nadać wymagane uprawnienia: `sudo chmod +x cloudflare.sh`

3. Ostatni krok to uruchomienie skryptu: `sudo ./cloudflare.sh`

4. Gotowe! Efekt można podziwiać wchodząc na adres naszego serwera WWW (adres\_ip:80 / adres\_ip:443). Próba połączenia zakończy się niepowodzeniem.

## Uruchomiłem ponownie VPS, czemu ten skrypt nie działa?!1?!

IPTables domyślnie nie zapamiętuje dodawanych reguł. Najprostszym sposobem na rozwiązanie tego problemu jest dopisanie naszego skryptu do cron’a.

1. Wpisujemy polecenie `sudo crontab -e`
2. Dopisujemy linijkę `@reboot sh /lokalizacja/skryptu/cloudflare.sh`
3. Gotowe.

### Dlaczego crontab, przecież są lepsze sposoby!

Jasne, jednak cloudflare może zaktualizować pule używanych IP. Chcesz za każdym razem usuwać stare reguły i dodawać nowe? 😉

## Kod skryptu:

```auto
# 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

```
