cross-posted from: https://lemmy.world/post/11162262
Hey,
For all of you that are running proper setups and use nftables to protect your servers be aware that
pvxe/nftables-geoip
now has the ability to generate IP lists by country.This can be used to, for instance, drop all traffic from specific countries or the opposite, drop everything except for your own country.
https://github.com/pvxe/nftables-geoip/commit/c137151ebc05f4562c56e6802761e0a93ed107a2
Here’s how you can block / track traffic from certain countries:
- https://wiki.nftables.org/wiki-nftables/index.php/GeoIP_matching
- https://www.mybluelinux.com/nftables-and-geoip
Previously you had to load the entire geoip DB containing multiple GB and would end up using a LOT of RAM. Those guides aren’t yet updated to use the country specific files but it’s just about changing the
include
line to whatever you’ve generated withpvxe/nftables-geoip
.
Not people, it’s more about adding an extra protection step for some services like a system management-only VPN or SSH (if not behind the VPN) and it shouldn’t be the only thing deployed. Fail2ban and others should be there as well.
After all it doesn’t make sense to allow access to your VPN from China or maybe restrict it to your country if you’re not traveling. There’s another use case that is, you need to access some service from another system where you can’t have a VPN and that system doesn’t have a static IP, this increases the security a bit. It should be narrowed down to the ISP ranges level but that’s not always possible.
Sure, I didn’t list what I meant by ‘valid use-cases’. If it’s just your private VPN or SSH endpoint, it’s like blocking your bank card from being used abroad. It might backfire once you travel and forgot about it. But I think it’s a valid use case. Ultimately it’s not the countries you want to block but address ranges which get used by attackers. But security is complex, it may not be feasible to allow-list just the carriers you use to connect, or find a suitable blocklist.
I’d be happy if georestriction wasn’t a thing and I could stream Doctor Who from the BBC and some news sites wouldn’t refuse service to me because I live in the EU and they don’t want to implement the GDPR.
But I agree, this is just a tool. And it can be used for good things and bad things.
I don’t complain if the same tool is used to route my requests to a datacenter nearby.