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).

Selbstverteidigung per iptables

In meiner fail2ban Konfiguration habe ich den apache-badbots Filter eingeschaltet, weil der Dauerbeschuß von Abmahnbots meinen kleinen Raspberry Pi doch ziemlich gefordert hat. Allerdings musste ich die badbots.conf anpassen:

failregex = ^reauktion.de:80 <HOST> -.*(?:%(badbots)s|%(badbotscustom)s)

Außerdem habe ich in badbotscustom noch ein wenig optimiert:

waybackarchive|AhrefsBot|EmailCollector|
WebEMailExtrac|Ezooms|sogou music spider|MJ12bot|
Pixray|Yandex|BLEXBot|Exabot|coccoc|linkdexbot|
CareerBot|TurnitinBot|Yeti|yacybot

PixRay tarnt sich nicht nur als “waybackarchive.org”, sondern kommt bisweilen ohne User Agent (nur eine Java Version) daher. Bis auf weiteres habe ich die IPv6-Addresse von Pixray geblockt:

ip6tables -A INPUT -s 2001:4ba0:ffe1:76::2 -j DROP

Außerdem habe ich dieses Perl Script eingerichtet. Damit ist nicht nur ziemliche Ruhe in den Log-Dateien, der WordPress Kommentarspam scheint auch drastisch abzunehmen.

Einfach genial!

Ich habe gestern mal eine Aufnahme von “Einfach genial”, seiner Meinung nach ein Erfindermagazin, gesehen. Allerdings habe ich das Gefühl, dass ich da keine Erfinder, sondern BWL-Hipster betrachten durfte. Z. B. einen Jungunternehmer, der Zusatzgeräte zu Heizungssteuerungen vertreibt, die die Raumtemperatur per Smartphone (und location based services) verwaltet.

Erfunden hat der das eher nicht. Auch nicht zusammengebastelt. Sein Verdienst ist eher, dass er für die Media Coverage sorgt, und mit einem Business Plan einen Geldgeber überzeugt hat. Ist ja auch eine Leistung, aber keine Erfinderleistung.

In der gleichen Sendung wurde der Weg des appgestützten Heizungsan- und -ausschalters zu einer Studentin nach München verfolgt. Direkt aus dem Leben gegriffen, unsere Studentin lebt in einer 120m² Altbauwohnung – in München. Ich meine, als Zuschauer sollte ich der guten Frau eher zu dem “guten Fang” namens Freund gratulieren als zu einem Hipstergadget für Heizungssteuerung.

Meine zwei Cents…

Markus little helper

As you’ve probably seen, I moved my server to a raspberry pi. Irony: now, that I have this server, I am adding more functionality to it than I had on the dedicated virtual server that I had flugphase hosted on before. A small list:

  • openvpn (as a fallback for my home vpn server)
  • roundcube (as a fallback for gmail, work mail, local mail) with managesieve
  • dovecot, postfix and sieve (mail server, mail transfer and mail filtering, which I didn’t have set up before)
  • owncloud with
    • carddav – contacts for android and thunderbird
    • caldav – calendar for android and thunderbird (lightning)
    • webdav / webservice as a (drop-)box and ubuntu one replacement

With those services all hosted on the little pi, it probably will be too small soon :-)

Mission accomplished

The move to my new raspberry pi server is completed. In addition to wordpress, I have owncloud and roundcube installed. With a bit of tuning of the apache-mpm-prefork server (the configuration I used originally) and the installation of php-apc, the performance is quite good.

I decided to move sideways from the cloud. Since the Snowden leaks showed that all cloud-data ultimately seems to end up at some state’s secret agencies, I’ve taken measures to move my personal data (contacts, calendar entries, location information, mails) “out of the cloud” where possible. And the pi server (€62,50 for the hardware and €3 / month for colocation) is a cheap way to facilitate that.

Why Big Data Isn’t Necessarily Better Data

They note that “greater value can be obtained by combining GFT with other near–real-time health data.” For example, “by combining GFT and lagged CDC data, as well as dynamically recalibrating GFT, we can substantially improve on the performance of GFT or the CDC alone.” Big data could likewise be an effective tool for better understanding the unknown, in areas where CDC data does not work well, such as presenting flu prevalence at very local levels.

via Why Big Data Isn’t Necessarily Better Data | Observations, Scientific American Blog Network.

Polemisch gesagt: “Und dann führen wir noch einen Faktor ein, der die Vorhersage ex post an die Realität anpasst”.

Wochenend ToDos

Ich habe mal ein Script geschrieben, dass die von mir verwendeten externen IPs in einer Datenbank ablegt. Ich will ja nicht, dass mein Datenverkehr mit dem von Bittorrent-nutzenden Senioren verwechselt wird. Die Frage ist natürlich: wie beweisfähig ist das? Darüber bin zuerst bei Trusted Timestamps gestolpert, und dann bei Crypto Stamp, dass Zeitstempel über einfügen in die BitCoin Blockchain absichert.

Nebenbei habe ich dann mal mein NAS aufgeräumt, indem ich mittels md5sum, find, awk und Einlesen und Abfragen in PostgreSQL mal nach Doppelgängern gesucht habe.

Was man halt am Wochenende so macht.