IPSet zum sperren größerer Mengen IPs verwenden

Hier hab ich ja schon geschrieben wie IPSet zu installieren ist, nun hier die Nutzung, falls ihr mal eine größere Anzahl an IPs zu sperren habt.

Als erstes legt ihr eine neue neuen Liste im IPSet an. Wir wollen einzelne IPs eintragen, also ist der Typ der Liste „iphash“

ipset --create blocked_hosts iphash

Damit habt ihr nun schon eine Liste, in die ihr die IPs eintragen könnt.

ipset --add blocked_hosts 17.172.224.47

Testen ob die IP in der Liste gefunden wird funktioniert mit –test:

ipset --test blocked_hosts 17.172.224.47
17.172.224.47 is in set blocked_hosts.

Nun muss das IPSet nur noch in die IPTables eingetragen werden und schon sind die IPs gesperrt.

iptables -I INPUT -m set --match-set blocked_hosts src -j DROP

IPSet läuft dabei viel performanter als die IPs einzeln direkt in den IPTables zu blocken. –add und –del funktionieren „on the fly“, greifen also ohne reloads oder ähnlichem direkt.

IPSet installieren auf Debian 6 Stable/Squeeze

Falls ihr mal viele IPs auf einem Server blocken müsst, dann empfiehlt es sich aus Performancegründen nicht jede IP bzw jedes Netz einzeln per IPTables zu sperren, sondern dafür IPSet zu nehmen.

IPSet ist eine Erweiterung für IPTables, die große Mengen an IPs verwalten kann.

Die Installation von IPSet auf einem Debian machte bei uns anfangs Probleme, ein einfaches

apt-get install ipset

reicht leider nicht aus. Dabei wird zwar IPSet installiert, aber beim verwenden bekommt man folgende Fehlermeldung:

FATAL: Module ip_set not found.

Lösung brachte dann ein paar Minuten googeln, man muss nämlich die Sourcen mit installieren und das Kernelmodul erstellen lassen. Das geht einfach mit

apt-get install ipset ipset-source
m-a a-i ipset

und schon ist IPSet installiert und kann verwendet werden.

Zur Verwendung davon wird es noch einen extra Post geben.