CloudFlare to rozwiązanie z którego sam często korzystam, ale może powodować też pewne problemy – bez dodatkowej konfiguracji webserwer może zwracać zły adres IP klienta/użytkownika strony.

CloudFlare i filtrowanie ich adresów IP

Jednym z problemów – poza błędnymi adresami IP w logach serwera – może być rozpoznawanie IP użytkownika w skryptach PHP. Np. taki prosty kod:

echo $_SERVER['REMOTE_ADDR'];

Normalnie zwróci IP użytkownika (oczywiście pomijam kwestie dodatkowego Proxy). Ale gdy strona będzie schowana za CloudFlare zamiast IP użytkownika skrypt wyświetli nam adres IP należący do CloudFlare.

Listę adresów IP należących do CloudFlare znajdziecie na tej stronie…

Nginx + CloudFlare

By temu zaradzić w przypadku serwera Nginx możemy skorzystać z modułu „http_realip_module”, który zapewne macie w standardzie, a dzięki któremu odfiltrujemy IP należące do CloudFlare.

Filtracja na poziomie hosta (lokalnie)

Można te kilka linijek dodać do pliku z konfiguracją vHosta, w przypadku którego chcemy uzyskać prawdziwe IP użytkowników:

# Cloudflare MyRealIP
set_real_ip_from   199.27.128.0/21;
set_real_ip_from   173.245.48.0/20;
set_real_ip_from   103.21.244.0/22;
set_real_ip_from   103.22.200.0/22;
set_real_ip_from   103.31.4.0/22;
set_real_ip_from   141.101.64.0/18;
set_real_ip_from   108.162.192.0/18;
set_real_ip_from   190.93.240.0/20;
set_real_ip_from   188.114.96.0/20;
set_real_ip_from   197.234.240.0/22;
set_real_ip_from   198.41.128.0/17;
set_real_ip_from   162.158.0.0/15;
set_real_ip_from   104.16.0.0/12;
set_real_ip_from   2400:cb00::/32;
set_real_ip_from   2606:4700::/32;
set_real_ip_from   2803:f800::/32;
set_real_ip_from   2405:b500::/32;
set_real_ip_from   2405:8100::/32;
real_ip_header     CF-Connecting-IP;
#real_ip_header     X-Forwarded-For;
real_ip_recursive on;
# /Cloudflare MyRealIP

W przypadku gdy korzystamy na naszym serwerze tylko z CloudFlare, można zastosować rozwiązanie dedykowane CloudFlare:

real_ip_header CF-Connecting-IP;

Gdy korzystamy (również) z innych usług tego typu lepiej skorzystać z bardziej uniwersalnego rozwiania:

real_ip_header X-Forwarded-For;

Filtracja na poziomie serwera (globalnie)

Kod możecie dodać do głównego pliku konfiguracyjnego Nginx:

/etc/nginx/nginx.conf

Ale jeszcze lepszym wyjściem będzie wykorzystanie faktu, że Nginx automatycznie „zaciąga” pliki z konfiguracją, które znajdują się w katalogu:

/etc/nginx/conf.d/

Możecie taki plik (np. cloudflare.conf) umieścić w tym katalogu ręcznie, lub skorzystać z polecenia:

sudo wget //webinsider.pl/add/download/?link=nginx-cloudflare-ip-conf -O /etc/nginx/conf.d/nginx-cloudflare-ip.conf

Pamiętajcie by na koniec zmian (czy to ręczne, czy w formie pliku) odświeżyć ustawienia serwera:

sudo /etc/init.d/nginx configtest
sudo /etc/init.d/nginx reload
Cały proces można/warto zautomatyzować – przykładowy skrypt znajdziesz na tej stronie…

Apache2 + CloudFlare

W przypadku Apache2 możemy skorzystać z dodatkowego modułu przygotowanego przez CloudFlare, który wystarczy dodać do serwera.

Informacje jak to zrobić znajdziecie w pomocy CloudFlare, ja tylko szybko pokaże to na przykładzie systemu Debian, z którego najczęściej korzystam:

sudo apt-get install libtool apache2-dev libtool apache2-threaded-dev

wget https://www.cloudflare.com/static/misc/mod_cloudflare/mod_cloudflare.c

apxs -a -i -c mod_cloudflare.c
apxs2 -a -i -c mod_cloudflare.c

(apxs lub apxs2 – zależy od systemu, dlatego można wpisać oba polecenia)

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Roztańczona Karolina zapisała się do Newslettera WebInsider.pl i... teraz może tańczyć
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Roztańczona Karolina skorzystała z promocji dla czytelników WebInsider.pl i zapłaciła 80% mniej za księgowość internetową wFirma