Der Pihole kommt nur mit einer rudimentären URL-Liste von zu blockenden URLs daher aber die Wirksamkeit steht und fällt mit einer guten Auswahl an Filterlisten. Dabei sollen nach Möglichkeit alle bösen Domains geblockt werden aber falsche weitgehend korrekt wieder gegeben werden. Naturgemäß sind die Ansichten welche Domains „böse“ sind bei jedem anders. Es gibt eine Reihe von gepflegten Listen für den Pihole von Sempervideo auf GitHub. Im Folgenden sind meine Filterlisten aufgeführt:
Debian
Individualisierte Fehlermeldung bei URLs die durch Pihole geblockt wurden
Pihole ist ein gutes Werkzeug im Netzwerk um lästige Werbung auszufiltern. Das macht Pihole über eine Liste an URL Wird nun so eine betroffene URL aufgerufen dann beantwortet Pihole im lokalen Netzwerk die DNS-Anfrage selber und es wird in der Standardeinstellung im Browser folgende nichtssagende Fehlermeldung angezeigt:
Man kann so leider nicht unterscheiden ob die URL von Pihole geblockt wird, die URL ungültig ist oder ein Netzwerkproblem vorliegt.
Ein schneller Weg einen Linux-Desktoprechner neu zu installieren
Wenn das Desktopbetriebssystem nicht mehr das macht was man möchte ist es bei einer alten Installation manchmal einfacher den Rechner neu zu installieren. Von Vorteil ist es dabei wenn man, als man den Rechner installiert hatte, eine separate Partition für /home hatte denn dann käme man ohne Backup der Home-Verzeichnisse aus. Sicherheitshalber sollte man jedoch immer vorher /home und /root sichern. Vorsicht /root liegt normalerweise auf der Partion mit dem Mountpoint / also wird auf alle Fälle beim Installieren überschrieben. Bei mir lagern dort vor allem selbstgeschriebene Scripte. Sichern sollte man diese Verzeichnisse jedoch auf alle Fälle da bei einem Fehler Datenverlust droht. Bei einem Server wird dieser Weg nicht funktionieren, da dort normalerweise viel unter /etc und anderen Verzeichnissen konfiguriert ist. Da sichert man am besten den kompletten Rechner oder lässt ihn von seinem Serverprovider sichern.
PDF-Formulare unter Linux bearbeiten
Heutzutage ist man öfter gezwungen Formulare in PDF-Dateien zu bearbeiten. Einerseits eine positive Entwicklung da das Verfahren was früher angewandt wurde, (MS) Office-Dokumente als zum Ausfüllen zu benutzen, sowohl nicht barrierefrei (nicht jeder hat eine Lizenz für MS-Office) als auch gefährlich ist (Stichwort Macroviren). Auf meinem Mailsystem werden u.a. Mails die Officedokumente enthalten, aus Sicherheitsgründen verworfen. Linux-Distribution haben normalerweise einen ganzen Zoo an Programmen in den Repositorien die PDF-Dateien anzeigen können (wie Xpdf, Acrobat Reader) und auch Programme zum Bearbeiten von PDF-Dateien (wie z.b. LibreOffice oder Pdf-Arranger). Will man nun die Formulare, nicht den Inhalt des PDFs, bearbeiten wird die Luft allerdings sehr dünn.
Spamassassin – test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )
Nach einem Systemupgrade hatte ich (wieder) Mails in meiner Mailbox mit dem Subjekt: „test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )“ und dem Inhalt:
/etc/cron.daily/spamassassin: Wide character in print at /usr/bin/sa-compile line 433, <$fh> line 2518. Wide character in print at /usr/bin/sa-compile line 433, <$fh> line 2931.
Ich konnte mich dunkel daran erinnern, dass ich genau das schon einmal hatte und gelöst hatte. Offensichtlich liegt das Problem also in dem neuen Spamassissin. Wieder begann erneut eine Suche im Internet nach der Lösung denn ich hatte vergessen wie ich das damals gerade gebogen hatte. Daher habe ich hier die Lösung jetzt dokumentiert denn ich fürchte spätestens mit dem Upgrade auf Bullseye (Debian 11), vermutlich im Sommer dieses Jahres, wird das Problem erneut auftreten.
vi und vim – eine Kommandoreferenz
Unter Unix und unixoiden Betriebssystemen, zu denen auch Linux gehört, ist es oftmals nötig Textdateien zu editieren denn die Konfigurationsdateien z.B. sind, im Gegensatz zu Windows, meistens einfache Textdateien im ASCII-Format. Daher gibt es unter diesen Betriebssystemen einen ganzen Zoo an Editoren. Einer der meist genutzten Editoren ist vi bzw. seine Erweiterung vim. Der Grund ist das vi ein Editor für die Konsole ist und damit auch zu gebrauchen ist wenn die grafische Oberfläche nicht starten will aber auch seine sehr mächtigen Werkzeuge. Ein weiterer Grund ist, dass vi auf jedem POSIX-System installiert ist was in Rettungssituationen einfach notwendig ist den Editor bedienen zu können.
vi ist ein recht alter Editor der entwickelt wurde bevor es grafische Oberflächen gab und kann daher komplett mit der Tastatur bedient werden. Für Neulinge ist etwas ungewohnt, dass vi verschiedene Modi kennt. Auf vielen Linux-Distributionen ist vi ein symbolischer Link auf vim, also den verbesserten vi-Editor (vim steht für vi-improved), und es wird daher beim Aufruf von vi in Wirklichkeit vim gestartet.
Postfix mit DKIM, SPF und DMARC ausstatten
Viele Betreiber von kleineren Email-Servern kennen das Problem, dass die großen Anbieter die Mails von ihren Servern gerne mal als Spam einsortieren. t-online.de geht sogar soweit, dass sie Mails von kleinen Servern direkt abweisen und man muss erst durch Email an die angegebene Email-Adresse seinen Mailserver freischalten lassen. Mit einer neuen IP-Adresse beginnt das Spiel dann von neuem.
Daher ist es sinnvoll seine Mails mit allem Möglichen und möglichst fehlerfrei auszustatten was als state-of-the-art auf dem Gebiet der Email-Sicherheit betrifft gilt. Die Sinnhaftigkeit und Wirkung dieser Maßnahme was das Identifizieren von potentiellen Spam betrifft braucht man da nicht in Frage zu stellen denn oft macht es wenig sinn denn niemand verhindert, dass Spammer die gleichen Methoden benutzen. Gängig auf dem Gebiet ist DKIM, SPF und DMARC. Interessanterweise haben viele größere Email-Provider Probleme mit ihrer eigenen korrekten Implementierung oder verzichten ganz darauf.
Wikipedia definiert folgendes:
- DKIM: DomainKeys, auch bekannt unter DomainKeys Identified Mail (DKIM), ist ein Identifikationsprotokoll zur Sicherstellung der Authentizität von E-Mail-Absendern. Es wurde konzipiert, um bei der Eindämmung von unerwünschter E-Mail wie Spam oder Phishing zu helfen.
- SPF: Das Sender Policy Framework (SPF; früher Sender Permitted From) ist ein Verfahren, mit dem das Fälschen der Absenderadresse einer E-Mail verhindert werden soll, genauer das Versenden von E-Mail über nicht legitimierte Mail Transfer Agents (MTAs) unterbindet. Es entstand als Verfahren zur Abwehr von Spam. Bei SPF trägt der Inhaber einer Domain in das Domain Name System ein, welche Adressen von MTAs zum Versand von E-Mails für diese Domain berechtigt sind.
- DMARC: Domain-based Message Authentication, Reporting and Conformance (DMARC) ist eine Spezifikation, die entwickelt wurde, um den Missbrauch von E-Mails zu reduzieren, wie er etwa bei Mail-Spoofing vorkommt. DMARC versucht einige seit langem bestehende Unzulänglichkeiten im Zusammenhang mit der Authentifizierung von E-Mails zu beheben und wurde bei der IETF zur Standardisierung eingereicht.
fail2ban – was machen wenn man sich selber ausgesperrt hat?
fail2ban ist ein tolles Werkzeug um ungebetene Gäste von seinem Server fern zu halten. Nach vordefinierten Regeln überwacht fail2ban in Echzeit die Logfiles nach verdächtigen Angriffsmustern. Nach einer frei definierbaren Anzahl an Fehlversuchen wird die verursachende IP-Adresse für eine ebenfalls frei definierbare Zeit durch iptables geblockt. Die häufigesten Angriffsversuche sind mit brute-force-Angriffen auf den ssh-Daemon Angriffe auf WordPress oder Postfix bzw. Dovecot, also das Mailsystem. Nun kann es vorkommen, dass man sich bzw. seine IP-Adresse unbeabsichtigt selber aussperrt. Das kann durch Schusseligkeit aber auch durch einen fehlkonfigurierten Email-Client oder ähnlichem vorkommen. fail2ban bzw. iptables macht keinen Unterschied zwischen den Diensten beim Sperren von IP-Adressen. Das hat nun den blöden Nebeneffekt, dass man für eine bestimmte Zeit keinen Zugriff mehr auf seinen Server hat.
Zunächst muss man seine eigene öffentliche IP-Adresse heraus bekommen. Da die meisten Menschen heutzutage über einen Router mit NAT im Internet sind entspricht die IP-Adresse im lokalen Netzwerk nicht seiner öffentlichen IP-Adresse. Die öffentliche IP-Adresse ist meist die internetseitige IP-Adresse des Routers. In der Shell kann man seine öffentliche IP-Adresse einfach ermitteln:
$ host myip.opendns.com resolver1.opendns.com | grep "myip.opendns.com has" | awk '{print $4}' 123.456.789.123
Sound fällt nach Systemabsturz aus
Auch Linux hat einmal einen Hänger oder zumindest das X-Window/KDE hängt und man muss einen harten Reset machen. Letztens ist mir das passiert und das System startete auch wieder ganz normal. Leider war der Sound weg und im pavucontrol wurde mir nur ein Dummydevice statt der eingebauten Soundkarte angezeigt. Mehrere Neuboots brachten keine Besserung ebenso wenig wie Herunterfahren des Systems und Neustart. Was macht der geneigte Benutzer? Ja, er befragt die Suchmaschine seines geringsten Misstrauens.
Die Lösung des Problems war dann recht einfach. Man schaut mit fuser nach welche Devices belegt sind:
# fuser -v /dev/snd/* BEN. PID ZUGR. BEFEHL /dev/snd/controlC0: root 820 f.... alsactl timidity 932 F.... timidity /dev/snd/pcmC0D0p: timidity 932 F...m timidity /dev/snd/seq: timidity 932 F.... timidity /dev/snd/timer: timidity 932 f.... timidity
Durch fail2ban geblockte IPs an AbuseIPDB melden
Wenn man eine funktionierende Installation von fail2ban hat kann man die geblockten IP-Adressen an AbuseIPDB weiterleiten. AbuseIPDB sammelt bösartige IPs die auf verschiedenen Weise Server angreifen. Um IP-Adressen zu melden braucht man einen API-Schlüssel. Den erhält man dadurch das man sich bei AbuseIPDB einen Account erstellt und unter API einen Schlüssel erstellt. Der API-Schlüssel ist ein längerer hexadezimaler Wert.
Leider ist das Debian-10-Paket von fail2ban so alt, dass der API-Aufruf nicht mehr funktioniert. Zum Glück ist es nur eine Datei die aktualisiert werden muss. Dazu wechselt man in das Verzeichnis /etc/fail2ban/action.d/ und lädt mit:
wget https://raw.githubusercontent.com/fail2ban/fail2ban/master/config/action.d/abuseipdb.conf
die aktuelle Datei abuseipdb.conf in das korrekte Verzeichnis. Unten in dieser Datei wird auch in der untersten Zeile bei der Variablen abuseipdb_apikey der API-Schlüssel eingetragen.