So, endlich habe ich es geschafft, dass die Firewall ufw das macht, was sie soll. Ich wusste zwar schon aus vorherigen Projekten, dass es bei Linux einige Fallstricke gibt und man ohne das Internet ziemlich aufgeschmissen ist, wenn es um Detailfragen geht. Aber das sich das ganze als so zähflüssig erweisen würde, hätte ich nicht vermutet. Nun gut, vielleicht ist das auch meinem 60 Lenzen zuzuschreiben, in denen der Denkapparat nicht mehr ganz so flott arbeitet, wenn man sich mit neuen Dingen beschäftigt.
Das erste Problem waren die fehlenden Logeinträge. Es tauchte weder eine Datei ufw.log auf, noch wurde irgendwas in die Datei syslog geschrieben. Ich wurde dann im Internet fündig, dass in der Datei /etc/rsyslog.conf erst mal die Zeile module(load=“imklog“) entkommentiert werden muss, damit das Logging funktioniert. Ich hatte natürlich vorher das Logging mit dem Befehl ufw logging low aktiviert. So, das war dann ja schon mal ein kleiner Erfolg. Schöner wäre es allerdings, wenn die Einträge in der Datei ufw.log auftauchen würden. Weiteres stöbern im Netz ergab dann den Hinweis, dass man in der Datei /etc/rsyslog.d/20-ufw.conf die Zeile
& stop
entkommentieren soll. Damit hörten dann zwar die Einträge in der syslog auf, aber ein Datei ufw.log tauchte immer noch nicht auf, auch nicht nach einem Restart des rsyslog Service. Ok, dann die Datei ufw.log mit touch selbst angelegt und mit chown auf syslog/adm ändern. Heureka, jetzt endlich füllte sich die Datei mit Einträgen. Im nachhinein muss ich aber sagen, dass das Logging nicht gerade sehr übersichtlich ist. Es gibt jede Menge Einträge für Ports, die ich gar nicht aktiviert habe und meine durch die Regeln gefilterten IP Adressen konnte ich auch nicht ausmachen. Vielleicht hat aber nach dem erstellen der Regel auch niemand mehr mit dieser IP Adresse versucht, sich an meinen „offenen“ Ports gütlich zu tun. Trotzdem interessant zu sehen, was da alles so an Paketen weggefiltert wird.
Jetzt konnte ich endlich meine Adressen aus der Liste nehmen, die Postscreen als Blacklist verwendet hat und die Übeltäter bereits vorher in die Röhre schauen lassen… so der Plan. Den Fehler, den ich dabei gemacht habe, und was so nicht aus den Beschreibungen im Internet hervorging, war die Reihenfolge der Einträge.
Ich hatte erst mal die Defaults für incoming (deny) und outgoing (allow) gesetzt und dann meine verwendeten Ports als allow incoming definiert. Jetzt war ich erst mal sicher, mich nicht selbst auszusperren, nachdem ich die Firewall aktiviert hatte. Allerdings begann ich dann, die Adressen aus Postscreen mit ufw add deny from hinzuzufügen, was im nachhinein betrachtet ziemlich sinnentleert war, da nach dem Match der ersten ALLOW Regel für dieses Paket keine weitere Abarbeitung mehr stattfand. Die DENY Regeln wurden also nicht durchlaufen, was ich daran bemerkte, dass im mail.log die Adressen wieder von Postscreen als blacklisted auftauchten. Also die ganzen Adressen wieder aus ufw rausgepuhlt. Warum gibt es eigentlich keine Möglichkeit, eine Range von nummerierten Regeln zu löschen?
Nun gut, auch egal, dann eben die Sätze in der Datei /etc/ufw/user.rules löschen und ein anschließendes ufw reload ausführen. Die IP Adressen jetzt mit dem Befehl ufw insert 1 deny from einfügen und alles funktioniert, wie es soll.
Nachtrag: Ich hatte erst beim durchlesen der manual pages herausgefunden, dass man einen Kommentar für die Regeln hinterlegen kann. Ganz nützlich, um den „pösen Purschen“ einen treffenden Namen zu geben. Die Schimpfwörter werde ich hier jetzt nicht auflisten. 😉
ufw insert 1 deny from <pöser Pursche> comment „Apache sniffer“