Det er alltid givende og spennende å sette opp en webapplikasjon i skyen.
Nylig publiserte jeg et nytt verktøy for tipsbilk.net Tools, som er plassert i AWS, beskyttet av Cloudflare.
Jeg bruker AWS sin lastbalansering sammen med Nginx som webserver. Etter at applikasjonen var oppe og gikk, sjekket jeg access.log og oppdaget at alle forespørsler var markert som kommende fra interne IP-adresser (lastbalansererens).
Dette er ikke optimalt hvis man ønsker å analysere webserverlogger for besøkslokasjoner. Jeg innså at jeg enten manglet en konfigurasjon, eller trengte å gjøre noen justeringer for å hente den faktiske klient-IP-adressen.
Er du i en lignende situasjon?
Her er en fremgangsmåte for å få klient-IP-en i Nginx sine tilgangslogger.
Hent besøkendes IP fra AWS eller Google Cloud LB
- Logg inn på Nginx webserveren din
- Naviger til installasjonsstien (standard er /etc/nginx)
- Ta en sikkerhetskopi av filen nginx.conf
- Legg til følgende i HTTP-blokken:
real_ip_header X-Forwarded-For; set_real_ip_from 0.0.0.0/0;
- Start Nginx på nytt, og du vil nå kunne se den besøkendes IP-adresse i access.log-filen.
Dersom du bruker Cloudflare, vil du se deres IP-adresser i stedet for klientens, og dermed må du gjøre følgende i tillegg.
Få klient-IP fra Cloudflare
Cloudflare er en utmerket leverandør av CDN og sikkerhetstjenester, og jeg er veldig fornøyd med deres løsning. Hvis du, som meg, bruker Cloudflare og ønsker å gjenopprette de besøkendes IP-adresser i webserverloggene, kan du gjøre følgende:
Forutsatt at du er logget på Nginx-serveren:
Ta en sikkerhetskopi av konfigurasjonsfilen for nettstedet ditt (vanligvis plassert her: /etc/nginx/sites-available/dittdomene)
Legg til følgende i starten av filen:
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;
Merk: Det kan være lurt å dobbeltsjekke IP-listen fra deres offisielle side.
Start Nginx på nytt, og du vil nå kunne se klientens IP-adresser. Dette har vært nyttig for meg, og jeg håper det hjelper deg også.
Neste steg er å undersøke hvordan du kan implementere sikre overskrifter ved hjelp av Cloudflare Workers.
Synes du artikkelen var interessant? Hva med å dele den med andre?