Grepular

Blocking Russian IPs

Written 19 days ago by Mike Cardwell

You might run some websites behind Nginx on Debian 12 and you might find yourself wanting to block requests from Russian IPs. It’s trivial. Here’s how to do it:

# apt install libnginx-mod-http-geoip
# echo "geoip_country /usr/share/GeoIP/GeoIP.dat;" > /etc/nginx/conf.d/geoip.conf
# cat << EOF > /etc/nginx/cc-block.conf
if ($geoip_country_code3 = "RUS") {
    rewrite / /block-russia;
}

location /block-russia {
    default_type text/plain;
    return 200 'Russian IPs are blocked here, due to your unjust and unprovoked War against Ukraine.';
}
EOF

Now for each of the vhosts in /etc/conf.d/sites-enabled/ that you want to block access for, just add “include cc-block.conf;” inside the server block. Then of course, do an “nginx -t” to test your config and a “service nginx reload” to load the changes.

You can test what your website looks like from different IPs using https://geotargetly.com/geo-browse

Want to leave a tip?BitcoinMoneroZcashPaypalYou can follow this Blog using RSS or Mastodon. To read more, visit my blog index.