Naciśnij ESC, aby zamknąć

Nginx Proxy & Cloudflare: Jak przywrócić prawdziwy adres IP

Cześć!

Dzisiaj zajmiemy się bardzo prostym zagadnieniem, które pojawia się przy stawianiu strony internetowej i podłączaniu jej pod proxy od Cloudflare.

Case study

Gdy twoja witryna jest obsługiwana przez Cloudflare, adresy IP zapisywane w logach serwera pochodzą od Cloudflare, a nie od rzeczywistych użytkowników odwiedzających stronę. To dlatego, że ruch przechodzi najpierw przez sieć Cloudflare. Cloudflare działa jak reverse proxy, przyspieszając ładowanie stron i buforując zasoby statyczne.

Taka sytuacja może stwarzać problemy dla niektórych aplikacji internetowych. Wiele z nich wymaga dostępu do prawdziwych adresów IP użytkowników np. w celu ich identyfikacji lub analizy ruchu. Na szczęście istnieje sposób na przywrócenie wyświetlania rzeczywistych adresów IP w logach serwera przy użyciu Nginx Proxy Manager i Cloudflare. W tym artykule wyjaśnimy, jak to zrobić i skonfigurować serwer Nginx, aby poprawnie logował prawdziwe adresy IP użytkowników.

Nginx Proxy Manager & Cloudflare, bez proxy Serwer bez proxy – w logach widoczny rzeczywisty publiczny adres IP klienta.

Nginx Proxy Manager & Cloudflare, z proxyWykorzystanie proxy Cloudflare – w logach widoczny adres proxy Cloudflare jako IP przychodzące.

Nginx Proxy Manager & Cloudflare, proxy z konfiguracjaWykorzystanie proxy Cloudflare oraz nową konfigurację w NPM – w logach widoczny rzeczywisty publiczny adres IP klienta.

Wstęp

Czym jest proxy od Cloudflare?

Cloudflare, logo

Reverse proxy od Cloudflare to usługa pośrednicząca w komunikacji pomiędzy klientami (przeglądarkami) a serwerem, na którym działa twoja strona. Gdy ruch jest kierowany przez proxy, to Cloudflare odbiera żądania od klientów. Następnie przekazuje je do twojego serwera pochodzenia (origin server) i odsyła odpowiedź z powrotem do klientów.

Działanie Cloudflare jako reverse proxy ma kilka kluczowych zalet:

  • Przyspiesza ładowanie stron internetowych. Cloudflare buforuje zasoby statyczne, takie jak obrazki, pliki JavaScript i CSS. Następnie dystrybuuje je ze swojej globalnej sieci serwerów brzegowych.
  • Stanowi dodatkową warstwę bezpieczeństwa, chroniąc przed wieloma rodzajami ataków, w tym DDoS.
  • Optymalizuje ruch sieciowy, kierując go najkrótszymi trasami.

Jednak taka architektura powoduje, że w logach serwera pochodzenia widzisz adresy IP serwerów Cloudflare zamiast prawdziwych adresów IP klientów odwiedzających twoją stronę. To właśnie ten problem rozwiążemy, konfigurując serwer Nginx do wyświetlania rzeczywistych adresów IP użytkowników.

Czym jest Nginx Proxy Manager?

Ikona: Nginx Proxy Manager

Nginx Proxy Manager (NPM) to popularne narzędzie open-source, które znacznie upraszcza zarządzanie i konfigurację serwera proxy Nginx. Obok Apache, jest jednym z najczęściej używanych serwerów HTTP na świecie. Jednak jego konfiguracja oparta na plikach tekstowych może być skomplikowana, zwłaszcza dla mniej doświadczonych użytkowników.

NPM dostarcza przyjazny interfejs graficzny typu „point-and-click”, który abstrakcyjnie przedstawia główne koncepcje Nginx, takie jak serwery proxy, hosty upstream, certyfikaty SSL i reguły przekierowań. Dzięki temu nawet osoby bez dogłębnej znajomości mogą w łatwy sposób konfigurować zaawansowane reguły routingu ruchu HTTP oraz zarządzać wieloma witryną i aplikacją działających na pojedynczym serwerze.

NPM jest szczególnie przydatny w scenariuszach, w których serwer jest używany jako centralne reverse proxy przed usługami takimi jak Nginx, Apache, lub innymi aplikacjami sieciowymi. Pozwala on na łatwą konfigurację i utrzymanie złożonych topologii routingu ruchu HTTP/HTTPS w jednym miejscu.

Przygotowanie

W celu przygotowania poradnika, przyjmiemy ustaloną nazwę domeny oraz określone nazwy konfiguracyjne, przedstawione poniżej. Dla dostosowania konfiguracji do własnych potrzeb, należy zastosować ustawienia według indywidualnych wymagań.

Krok 1 – Logowanie do Proxy Managera

  • Zaloguj się do menadżera:
    • Otwórz przeglądarkę internetową i przejdź pod adres na którym działa NPM (np. http://ADRES-IP:81).
    • Przejdź do listy Proxy Hostów i wybierz żądany host, który chcesz edytować.

    Nginx Proxy Manager & Cloudflare, menu proxy hosta

    • Przejdź do zakładki Advanced i wklej poniższy kod. Stworzony jest on w oparciu o listę adresów IP opisanych wyżej od Cloudflare.
# IPv6 Cloudflare - Jeżeli nie obsługujesz połączeń w tej adresacji, nie musisz wklejać tego do konfiguracji hosta
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;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;

# IPv4 Cloudflare
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/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;

real_ip_header X-Forwarded-For;
  • Całość w konfiguracji wyglada następująco, jak na poniższym screenie.
  • Zapisz konfigurację, klikając na przycisk Save.
  • Gotowe! 

Podsumowując – Jeśli masz dodatkowe pytania dotyczące konfiguracji, śmiało zostaw komentarz pod tym artykułem lub skontaktuj się ze mną bezpośrednio. Chętnie odpowiem na wszelkie wątpliwości i pomogę rozwiązać ewentualne problemy. Twoje pytania mogą pomóc w ulepszeniu poradników dla innych użytkowników.

Dodatkowe materiały i informacje

W celu dalszego zgłębienia tematu i uzyskania szczegółowych informacji, polecam sprawdzenie poniższych linków. Są one wartościowymi źródłami, które zostały wykorzystane podczas opracowywania tego poradnika.

Przeczytaj także

Filip Chochół

Filip Chochol runs two blogs: personal “chochol.io” and together with his girlfriend “Warsaw Travelers” about travel. He specializes in IT resource management and technical support, and has been active in the field of cyber security awareness for almost two years. A proponent of open-source technologies, he previously worked in the film and television industry in the camera division (2013-2021). After hours, he develops interests in smart homes and networking.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


This site uses Akismet to reduce spam. Learn how your comment data is processed.