Konfigurisanje veb aplikacije u oblaku je uvek dinamičan i stimulativan proces.
Nedavno sam pokrenuo alatku nazvanu vdzvdz Tools, koja funkcioniše na AWS platformi, zaštićena Clooudflare servisom.
Koristim AWS Application Load Balancer zajedno sa Nginx-om kao veb serverom. Nakon što sam sve podesio, primetio sam u `access.log` fajlu da svi zahtevi dolaze sa interne IP adrese (load balancer-a).
Ovo nije optimalno ukoliko želite da analizirate logove vašeg veb servera radi pregleda lokacija posetilaca. Shvatio sam da je potrebno da izmenim konfiguraciju kako bih prikazao pravu IP adresu klijenata.
Da li ste se i vi našli u sličnoj situaciji?
U nastavku sledi opis kako možete vratiti IP adresu klijenta u Nginx pristupnim logovima.
Preuzimanje IP adrese posetioca sa AWS ili Google Cloud LB-a
- Pristupite vašem Nginx veb serveru.
- Navigirajte do lokacije gde je instaliran (obično `/etc/nginx`).
- Kreirajte rezervnu kopiju `nginx.conf` datoteke.
- Dodajte sledeće unutar `http` bloka:
real_ip_header X-Forwarded-For; set_real_ip_from 0.0.0.0/0;
- Restartujte Nginx i sada biste trebali da vidite IP adresu posetioca u `access.log` fajlu.
Ako se nalazite iza Cloudflare-a, videćete njihove IP adrese umesto IP adresa klijenata. Zbog toga je potrebno uraditi i sledeće.
Dobijanje IP adrese klijenta preko Cloudflare-a
Cloudflare je sjajan CDN i bezbednosni provajder, i veoma mi se dopada. Ako koristite Cloudflare, kao i ja, i želite da dobijete IP adresu posetioca u logovima vašeg veb servera, evo kako to možete postići.
Pretpostavljajući da ste već prijavljeni na vaš Nginx server:
Napravite kopiju konfiguracijske datoteke vaše veb lokacije (obično locirana ovde – `/etc/nginx/sites-available/vašdomen`).
Dodajte sledeće na početak datoteke:
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 104.16.0.0/13; set_real_ip_from 104.24.0.0/14; set_real_ip_from 108.162.192.0/18; set_real_ip_from 131.0.72.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 162.158.0.0/15; set_real_ip_from 172.64.0.0/13; set_real_ip_from 173.245.48.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 190.93.240.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 199.27.128.0/21; 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 2c0f:f248::/32; set_real_ip_from 2a06:98c0::/29; real_ip_header CF-Connecting-IP;
Napomena: Preporučuje se da proverite IP listu sa njihove zvanične stranice.
Restartujte Nginx i trebalo bi da sada u logovima vidite IP adresu klijenta. Meni je ovo pomoglo, i nadam se da će i vama.
U nastavku saznajte kako možete implementirati bezbednosne header-e koristeći Cloudflare Workers.
Da li vam se dopao članak? Razmislite da ga podelite sa drugima!