Als je een server beheert die aangesloten is op het internet, valt het je misschien op dat er continu aanvallen plaats vinden. Vaak probeert men van afstand wachtwoorden te brute-forcen. Waar ik zelf tegenaan liep was dat er veel verkeer vanuit Brazilië kwam op m'n webserver, dat alleen de server belastte.
Nu is het zo dat IP-adressen centraal worden uitgegeven door een organisatie genaamd ICANN en dochter organisatie IANA. Per land zijn er ranges, zo kan je zien waar een verbinding vandaan komt - middels 'whois <ip>' - maar kan je natuurlijk ook blokkeren op afstand. Zelf zie ik bijvoorbeeld regelmatig verkeer vanuit Brazilie en Rusland. Deze hebben niet heel veel op m'n server te zoeken, dus besloot ik deze te blokkeren.
Via iwik.org/ipcountry/ kan je lijsten ophalen van IP-ranges voor zowel IPv4 als IPv6 per land. Zelf heb ik een Linux-VPS en iptables als firewall. Omdat het veel ranges zijn - 20.000+ - heb ik er een aparte chain voor aangemaakt,
iptables -N GEOBLOCK
Vervolgens alle ranges hier aan toegevoegd met de target REJECT,
iptables -A GEOBLOCK -s 2.16.20.0/23 -j REJECT
....
Nadat deze ranges in de GEOBLOCK-chain staan, moet nog een rule worden aangemaakt, zodat deze wordt opgepakt. Standaard wordt de 'INPUT'-chain uitgevoerd bij inkomend verkeerd. Deze moet een jump maken naar de GEOBLOCK-chain,
iptables -I INPUT -j GEOBLOCK
Als je wilt dat deze instellingen worden opgeslagen na een reboot, kan je deze configuratie opslaan middels iptables-save. Hoe dit precies gaat is afhankelijk van je Linux distributie.