trueten.de

"An allem Unfug, der passiert, sind nicht etwa nur die schuld, die ihn tun, sondern auch die, die ihn nicht verhindern." Erich Kästner

Mini HowTo: OpenDKIM für Postfix installieren

Foto: Lourdes Cardenal
Campo de Criptana Molinos de Viento / La Mancha.
Foto: Lourdes Cardenal, CC BY-SA 3.0, via Wikimedia Commons
Bekanntlich bin ich der Ansicht, daß alle Spammer an ihren Eiern aufgehängt gehören. Da dieser Wunsch für mich momentan etwas schwierig umzusetzen ist, ich aber trotzdem Interesse an einer weitestgehend Spam bzw. Phishing freien Mailverkehr habe, muss ich wie einst Sisyphos (oder war es Don Quixote?) gegen unerwünschte Mails kämpfen. Da ich nicht der einzige bin, der diesen Wunsch hegt, gibt es eine breite Palette an Tools, die einen dabei unterstützen. Als Domaindiktator setze ich dabei am Mailserver an: "DomainKeys ist ein Identifikationsprotokoll zur Sicherstellung der Authentizität von E-Mail-Absendern, das von Yahoo entwickelt wurde und seit Ende 2013 ein Internet-Standard ist. Es wurde konzipiert, um bei der Eindämmung von unerwünschter E-Mail wie Spam oder Phishing zu helfen."  DKIM-Signaturen machen also Veränderungen an Header und Body einer Mail erkennbar.
Da es einige Stolperfallen bei der Einrichtung gibt, die das korrekte Funktionieren verhindern können, habe ich mir ein kurzes und rudimentäres HowTo verfasst:

Das Szenario: Alle Mails der Doman domainname.de sollen signiert werden. Alle eingehenden Mails sollen verifiziert werden. Wir haben Zugriff auf Nameservereinträge der Domain und ein Postfix Server sowie Amavis und Spamassassin verrichten ihren Dienst auf einem debian System. Den DKIM Dienst soll openDKIM übernehmen, das wir gleich mal in einem Terminal zusammen mit ein paar Tools installieren:
sudo apt install opendkim opendkim-tools

Dann legen wir ein Schlüsselverzeichnis an und generieren den Schlüssel. Wichtig ist die korrekte Rechtevergabe in den Schlüsselverzeichnissen! Zudem sollte der Dienst nicht als root laufen sondern unter dem User opendkim. Dieser darf in keiner anderen Gruppe Mitglied sein, ansonsten quittiert der Dienst den selbigen mit einer Fehlermeldung.
mkdir /etc/opendkim/keys/domainname.de
/usr/bin/opendkim-genkey -D /etc/opendkim/keys/domainname.de/ -d domainname.de -s 2020
chown -R root:opendkim /etc/opendkim/keys/domainname.de
chmod 640 /etc/opendkim/keys/domainname.de/2020.private
chmod 644 /etc/opendkim/keys/domainname.de/2020.txt

Im Anschluss bearbeiten wir die /etc/opendkim.conf:
Domain   domainname.de
Selector 2020                             # Das ist der im vorigen Schritt angegebene Selector. Interessant für diejenigen, die den DKIM Key regelmäßig aktualisieren.
KeyFile  /etc/opendkim/domainname.de/2020.private
Socket   inet:8891@localhost
Canonicalization        relaxed/simple    # Auf Headermodifikationen nicht gleich allergisch reagieren
Mode                    sv                # Mails [s]ignieren und [v]erifizieren

Wir starten den Dienst:  sudo systemctl restart opendkim und regeln, daß der Dienst beim Systemstart gleich gestartet wird:  systemctl enable opendkim. Dann befassen wir uns mit der Integration von openDKIM in Postfix. Dazu editieren wir die /etc/postfix/main.cf:
smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters

Danach muss  Postfix diese Änderung bekannt gegeben werden: sudo systemctl reload postfix.

Das war es im Grunde dann auch schon. Bis auf eine Kleinigkeit: Die Integration des Schlüssels als TXT Record im Nameservereintrag von domainname.de. Diese Einstellung unterscheidet sich von Provider zu Provider, daher an der Stelle auch nur der allgemeine Hinweis:


Record NameRecord TypeText
mail._domainkeyTXTv=DKIM1; k=rsa; p=MI.. (Hier Inhalt von /etc/opendkim/keys/domainname.de/2020.txt einfügen, dabei alle >"< entfernen und alle Zeilen nach p= in einen Schlüssel ohne Leerzeichen verbinden.)

Das korrekte Eintragen des Schlüssels kann kompliziert sein, vor allem der Teil nach "p=" darf weder um- noch unterbrochen sein. Ansonsten wird der Schlüssel nicht erkannt!

Testen des Keys:
# opendkim-testkey -d domainname.de -s mail -vvv

opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key 'mail._domainkey.domainname.de'
opendkim-testkey: key not secure
opendkim-testkey: key OK

Sofern keine Fehlermeldungen auftreten, kann man sich nun darum kümmern, eingehenden Spam weiter zu filtern. In Amavis ist der DKIM Filter in einigen Debian Derivaten deaktiviert, lässt sich aber einfach aktivieren. Dazu muss in der Konfigurationsdatei /etc/amavis/conf.d/20-debian-defaults folgender Parameter gesetzt werden:
$enable_dkim_verification = 1;

In der Datei /etc/amavis/conf.d/50-user muss für eine erweitere Anzeige der Überprüfungsergebnisse dann als letztes noch folgender Parameter gesetzt werden:
$allowed_added_header_fields{lc('Authentication-Results')} = 1;

Im täglichen Mailverkehr empfiehlt sich darüber hinaus ein Addon für den freien Mailclient Thunderbird zur Kontrolle der empfangenen Mails: Den DKIM Verifier. Dieses Addon überprüft beim Öffnen einer Mail die Gültigkeit der Signatur. Somit kann man sich (halbwegs) sicher sein, daß die Mail vom signierenden Mailserver stammt. Natürlich nutzen auch einzelne Spammer DKIM. "Es ist wichtig zu beachten, dass eine E-Mail durch eine beliebige Domain signiert seinen kann. Eine gültige Signatur alleine ist daher kein Hinweis auf eine vertrauenswürdige E-Mail. Um zu entscheiden ob eine E-Mail vertrauenswürdig ist sollte immer überprüft werden wer der Signierende ist! In einigen Fällen kann die Abwesenheit einer DKIM Signatur nützlich sein um betrügerische E-Mails zu erkennen. Falls bekannt ist, dass eine Domain alle ihre E-Mails mittels DKIM signiert, ist das Nichtvorhandensein einer DKIM Signatur ein starker Hinweis auf eine gefälschte E-Mail." (Aus der Addon Beschreibung)

Quellen:
debianwiki, Steven Jenkins, Michael Kofler, WikiPediaPhilippe Lieser, Patrick Koetter

Raspberry PI 4 mit SSD betreiben

Vor einiger Zeit hatte ich bei thingiverse ein Teil veröffentlicht, mit dem es möglich ist, in Verbindung mit dem empfehlenswerten "AmoredPI" Gehäuse 2,5" SSD Festplatten mit dem Einplatinenrechner Raspberry PI 3 bzw. 4 zu verbinden und so das übliche Gedrösel mit dem Kabelwirrwar etwas abzumildern.

Indessen war bis vor kurzem der Start des Raspberrys von der SSD auf die 3er Modelle beschränkt. Nun ist seit September dieses Manko Geschichte und es steht dem Betrieb des Rechners via Festplatte nichts entgegen. Fast nichts. Denn leider gibt es keine Garantie, daß jeder SSD / USB3 Festplattenadapter für den Betrieb geeignet ist, zumindest, was das Booten betrifft. Michael Kofler hat in seinem Blog unterschiedliche Adapter getestet, er hatte mit dem von GHB vertriebenen 6GB Adapter die wenigsten Probleme, weshalb ich auch meine Empfehlung auf ebendiese abgebe. Der bisher von mir auf den PIs der 3er Reihe ohne Probleme verwendete Adapter führte bei mir in keinem Fall zu einem fehlerfreien Systemstart oder dauerhaft störungsfreien Betrieb. Wenngleich der Raspberry PI 4 damit verbundene SSDs erkennt und auch problemlos liest bzw. schreibt, ist der Bootvorgang fehlerhaft. Inzwischen läuft hier ein Raspberry PI 4 mit 8 Gigabyte Speicher und einer  Silicon Power SSD 256GB 3D NAND A55 SLC Cache Performance Boost seit mehreren Tagen ohne Probleme, wenngleich Lesevorgänge beinahe doppelt so schnell wie Schreibvorgänge sind, was ich allerdings noch mit anderen SSDs wie der SanDisk SSD PLUS 240GB Sata III gegentesten muss.

Die Installation auf die Platte verläuft problemlos, ich habe zuerst den üblichen Weg mittels einer MicroSD Karte und NOOBS beschritten um sofort die aktuellste Raspbian Version auf der Platte zu haben, es funktioniert natürlich auch der über ein via etcher auf die MicroSD Karte geschriebenes Image. Nach der Aktualisierung des Systems aktiviert man via 'sudo raspi-config' die Boot Option über USB, formatiert die SSD, entpackt darauf NOOBS und bootet dann (hoffentlich) erfolgreich von der SSD. Natürlich muss dazu die MicroSD Karte abgezogen sein. ;-)

Update 14. November 2020: Dieser Adapter von ugreen ist ebenfalls kompatibel und sogar noch etwas günstiger als der oben verlinkte.

Die Datenbanken der Polizei

INPOL, Polas, LIMO, PHW und nun noch PIAV. Kaum jemand weiß, was sich hinter den Kürzeln verbirgt. Die Veranstaltung gibt einen ersten Einblick in die Welt der Polizeidatenbanken. Neben einer Bestandsaufnahme wollen wir auch vermitteln, dass weder Schockstarre noch Resignation angebracht sind.

08.10.2020, 19:30 Uhr

Datenschutzgruppe der Roten Hilfe HD/Mannheim

Bibliothek am Mailänder Platz, Mailänder Platz 1,70173 Stuttgart

N48.790324 E9.183079 (Karte)

Bitte beachtet die geltenden Regeln der Bibliothek und die Reservierungspflicht

F*45 Flange One

The bottom of the flange
The 4 Axis digital display (DRO) from Ditron, I installed on my milling machine (Chinese F * 45 class) enables the RPM to be displayed during machining. Unfortunately it is a little tricky to attach the Hall sensor used for this to the spindle in such a way that it can pick up the signals from the magnet, which functions as a transmitter, without disturbing the work.
I also like to use anLED ring lightto illuminate the work area of the tool. So it made sense for me to combine both and cobble together an adapter flange. Maybe someone else can use the part. I printed withSpectrum PLA Proon myAnyCubic I3 Mega.

Available at thingiverse and prusaprinters.org

Releasenotes:
Initial Version 2.1

Sonntagsarbeit

Seit einigen Wochen nervt mich ein dauerhaftes Provisorium ™ an einer Fräse. Ein Hallsensor greift die Drehzahlen der Spindel ab, gleichzeitig soll ein China LED Ring den Ort des Geschehens adäquat ausleuchten. Viel Platz ist auch ein Fremdwort. Also alle Werte in FreeCAD eingegeben, einmal Enter gedrückt und fertig ist die Laube. Oder so ähnlich. Bevor ich das als Aluteil fertige, soll der 3D Drucker mal den Prototypen runterlassen.

Serendipity Update 2.3.0 auf 2.3.3

Gestern erschien das Update unserer Blogsoftware auf die Version 2.3.3. Das Update verlief wie immer problemlos.

This bugfix release Serendipity 2.3.3 will bring you quite some smaller and larger fixes and minor enhancements backported from our master branch:


  • Update bundled event_mailer plugin to support forcibly sending mails on published blog entries and add the ability to prepend a mail body. Also fixes missing "keep strip tags" configuration option.

  • Media Library: Checkboxes allow you to insert multiple media files in a kind of gallery. Fall back to single-asset view when just one file has been selected. Let checkboxes be selected when clicking on the asset title, and hide the the 'Insert all' button when no assets are selected.

  • Media Library: Use the <video> tag for videos in the library and for inserting them into an entry.

  • Media Library: Allow plugins to skip HTML block insertion to use their own markup.

  • Fix: Media Library: Items that are not images now get the correct link.

  • Fix: Media Library: Prevent renaming an asset into an existing file, resulting in deletion of both from disk and database.

  • Fix: Media Library: Remember directory from last upload.

  • Fix: Media Library: Missing variable initialisation when removing empty folders.

  • Fix: Stop generation of default page every time when serving JS (functions_routing.php).

  • Fix: Don't allow requesting an archive page that doesn't exist.
    Thanks to @lotharsm!

  • Fix: Add valid HTTP referrer when trying to delete a trackback from the frontend.

  • Fix: Update bundled plugin plugin_comments to wrap text at word boundaries only, removing spurious whitespace in comment output.

  • Fix: Update bundled plugin event_bbcode to get roman numerals working.
    Thanks to Fabien Chabreuil!

  • Fix: Force positive limits for number of entries shown on title page and in RSS feed and fix potential SQL error with limit set to 0 in serendipity_fetchEntries().

  • Fix: Escape version string in update notifier to avoid potential for XSS.


You can download the release file and unzip it to your installation as usual, or update from within Serendipity using the Serendipity Autoupdate Plugin (serendipity_event_autoupdate).

clamav-inofficial-sigs? Fangfrisch!

Screenshot
Nach der jüngsten Diskussion auf der ClamAV Mailingliste über verschiedene Sicherheitsrisiken, die bei der Verwendung des ClamAV Unofficial Signatures Updater script über das ich hier mal berichtet hatte, auftreten können, hat Ralph Seichter "Fangfrisch" als sichere Alternative entwickelt. Es war zunächst für den persönlichen Gebrauch gedacht, aber es funktioniert so gut, dass er auch eine ausführliche Dokumentation dazu geschrieben hat, in der Hoffnung, dass andere auch Fangfrisch benutzen.

Der auf Version > 3.7 basierende Python-Code funktioniert zuverlässig auf diversen Servern, daher ist die Zeit reif für einen öffentlichen Beta-Test. Ralph Seichter ist dankbar für ein Feedback.

Ich teste das hier auf einem nicht öffentlichen Server unter Raspbian Stretch.

OnePlus Handy gebrickt? No Problem.

Screenshot: Msmdownloadtool
Vor einigen Wochen wurde endlich LineAgeOS 16 für das OnePlus 6T veröffentlicht. Die Installation hatte ich seither vor mir her geschoben, obwohl ich das Handy voriges Jahr bereits gerootet hatte: Eine Konvertierung der Benutzerdaten über Systemgrenzen hinweg ist trotz Tools wie Titanium Backup nach wie vor nicht ganz trivial. Aber machbar, dachte ich mir und bin dann zur Tat geschritten. Da der root Zugriff unter unter dem Hersteller Betriebssystem OxygenOS Dank TWRP und Magisk zwar einwandfrei funktionierte, jedoch nach jedem Upgrade wiederholt aktiviert werden musste, dachte ich mir, daß ich dann eigentlich gleich LineAgeOS installieren könnte. Also Backup anfertigen, ins Recovery booten und dann erst LineAgeOS, dann OpenGapps und Magisk installieren. Dabei ging irgendetwas schief - möglichweise war das TWRP von Bluespark  nicht ganz unschuldig daran, soweit ich mich entsinne, hatte sich dieses nur in einen der beiden Slots installieren lassen. Jedenfalls scheiterte der Versuch, das offizielle TWRP zu installieren mit der Meldung:

FAILED (remote: Failed to load/authenticate boot image: Load Error)

Nicht nur das, fortan weigerte sich das Mistding hartnäckig, überhaupt in Fastboot oder ins Recovery zu booten geschweige denn, TWRP zu flashen oder via fastboot zu starten. Also keine Chance, das Handy irgendwie zum Laufen zu bewegen. Toll. Verzweiflung macht sich breit. Ein gescheitertes Update führte in der Vergangenheit schließlich oft genug dazu, das teure Telefon zu "bricken" d.h. es war nur noch als teurer Briefbeschwerer und dem sozialen Umfeld zur Mahnung zu gebrauchen. Ich gebe zu, sogar einmal kurz die Supportseite angeklickt zu haben, um das Teil ggf. zur Reparatur einzuschicken. Aber nur für ca. 5 Sekunden. ;-)

Mit den entsprechenden Suchbegriffen bin ich jedenfalls bei xda-developers fündig geworden, wo es für diverse Geräte Unbrick Tools gibt, so auch für das OnePlus 6T. Solange sich das Gerät noch einschalten lässt, ermöglicht dieses (Windows)-Programm eine Wiederbelebung des Zombies. (Angeblich läuft das Programm auch in einer virtuellen Windows Maschine oder unter WINE, das habe ich jedoch nicht probiert, da ich zufällig noch einen Windows Rechner herumstehen habe.)

Das MsmDownloadTool v4.0.59 ist gute 2 Gigabyte groß, denn es enthält OxygenOS v9.0.13. Nach dem Start präsentiert sich das Programm sehr aufgeräumt. Zuvor sollte allerdings das Handy via Datenkabel mit dem Rechner verbunden sein und in der Systemsteuerung solltem QUSB_BULK oder unter Ports > Qualcomm angezeigt werden, was für den OnePlus Chipsatz steht.

Nach dem Start und einigen nicht sonderlich transparenten Aktionen, während derer an einen Kaffee trinken gehen kann, wird das Handy auf den Auslieferungszustand unter OxygenOS v9.0.13 zurückgesetzt, d.h. alle Daten sind weg. Sofern man kein Backup gemacht. Ach ja, und dieses auf einen entsprechenden, externen Datenträger gespeichert hat. Nicht nur wegen der fehlenden transparenten Aktionen bei der Wiederherstellung würde ich auf jeden Fall als erstes entweder TWRP flashen, /Data und /System wipen und das Originalbetriebssystem von OnePlus oder gleich LineAgeOS installieren. Das geht dann "einfach".

Und der Blutdruck sinkt. ;-)

OnePlus 6T: LineAgeOS 16 veröffentlicht

Gestern Nacht wurde endlich die erste offizielle Nightly Version von LineAgeOS 16 für das OnePlus 6T (fajita) veröffentlicht. Ich werde selbiges wohl die Tage mal auf mein Gerät bügeln, zwar gibt es mit OxygenOS keine Probleme bisher, jedoch nervt es schon ein wenig, daß nach jedem Update neu gerootet werden muss.