Firewalling automatisieren mit lua und blocklist.de

tl;dr: Download blocklist.lua

Dieses Wochenende habe ich mich ein wenig mit Blacklists beschäftigt. Eine Blacklist, auf die ich aufmerksam geworden bin, ist die von blocklist.de, die automatisiert von mehreren Freiwilligen unter Zuhilfenahme von fail2ban erstellt wird.

Wie im Beitrag vorher schon geschrieben, habe ich zunächst ein im Forum gefundenes Perl-Skript verwendet, um diese Blocklist in meine Server-Firewall zu übernehmen. Das Skript arbeitet aber nicht mit IPv6-Adressen zusammen. Deswegen habe ich das Skript als Vorlage genommen, mein eigenes mit Lua-Skript zu implementieren.

Um das Skript zu verwenden, müssen iptables, ip6tables und ipset installiert sein. Weiterhin muss die „nixio“-Library von Lua installiert werden – z.B. via „sudo luarocks install nixio“ (das hat bei mir nicht auf Anhieb funktioniert, deswegen habe ich mir die nixio-Bibliothek von Luci geborgt; Luci per subversion gezogen und per make übersetzt, danach mittels ‚find -name „nixio.so“ -type f‘ die Bibliothek ausfinding gemacht und ins Verzeichnis von blocklist.lua kopiert).

Nun wird das Skript einmal in der Stunde per cron ausgeführt:

21 */1 * * * /root/blocklist.lua > /dev/null 2>&1

Außerdem wird die Datei /root/bannedips.txt ausgewertet, die mit einer Leerzeile starten muss (so blocke ich Pixray von der IP 2001:4ba0:ffe1:76::2).

Das Script liest dle blocklist aus, trägt die neu hinzugekommenen IPs in die Firewall ein und entfernt die IPs, die nicht mehr auf  der Blocklist stehen. Für IPv4 wird auf Host-Ebene gesperrt, bei IPv6 mindestens das 64er-Subnet (es sei denn, in der Blocklist ist ein größerer Netzbereich eingetragen).

1 Kommentar

Kommentare sind geschlossen.