Guiden kan benyttes dersom du ønsker å blokkere eller tillate trafikk fra enkelte land. Guiden tar i tillegg høyde for å tillate kommunikasjon fra eget LAN. (Ikke LAN Marie Berg Ngyen, altså, men f.eks 192.168.10.0/24).
Sjekk først at du har geoip_module installert:
nginx -V
Installer geoip-database:
sudo apt-get install geoip-database libgeoip1
Endre nginx config i /etc/nginx/nginx.conf og legg til følgende i http()-blokken før include-statement:
geo $localnet {
default 0;
192.168.10.0/24 1;
}
geoip_country /usr/share/GeoIP/GeoIP.dat;
I virtual host, legg til følgende i server-blokken, hvor ($geoip_country_code !~ (NO|US)) modifiseres med tillatte landskoder etter eget ønske, i dette tilfellet Norge og USA:
set $geoblock 0;
if ($geoip_country_code !~ (NO|US)) {
set $geoblock 1;
}
if ($localnet = 1) {
set $geoblock 0;
}
if ($geoblock = 1){
return 403;
}
Til slutt – restart nginx:
sudo systemctl reload nginx
Praktisk tips med kommando for å finne unike IP-adresser i access log, dersom du ønsker å sjekke hvilke IP-adresser som allerede aksesserer ditt system:
cat nginx-eksempel.access.log | cut -f1 -d ' ' | sort | uniq -c