Autorenarchiv: Jörg Kastning

Was uns antreibt zu bloggen

Vorwort

Die Blogs von Benedikt, Dirk und Robert feiern dieses Jahr Geburtstag. Zu diesem Anlass haben die Drei die #BlogWochen2025 ausgerufen. Jede Bloggerin und jeder Blogger ist eingeladen, dabei mitzumachen. Details könnt ihr in den Blogs der drei nachlesen:

Zum Thema des heutigen Tages steuere ich gerne einen Beitrag bei.

Was mich zum Bloggen antreibt

Ich verfolge mit meinem Blog drei Ziele:

  • Dinge aufschreiben, die mir hilfreich waren bzw. die ich nützlich finde und die ich in Zukunft noch einmal gebrauchen kann – Mein Blog ist mein Gedächtnis für IT-Dinge
  • Mein Wissen mit der Welt teilen, damit andere davon profitieren können
  • Meine Meinung mit der Welt teilen, um mit anderen ins Gespräch zu kommen und andere Meinungen kennenzulernen

Da es im IT-Bereich bereits sehr viele gute Blogs in englischer Sprache gibt, habe ich mich zu Beginn entschieden, in Deutsch zu bloggen, um zur deutschsprachigen Gemeinschaft beizutragen. Meine Idee war und ist, damit denen zu helfen, für die Englisch gegebenenfalls noch eine Hürde darstellt. Diesen Grundsatz behalte ich bis auf ganz wenige Ausnahmen bis heute bei. Meine Artikel in englischer Sprache veröffentliche ich an anderer Stelle.

Ich freue mich, wenn ich Rückmeldungen erhalte, dass jemand meine Texte hilfreich und nützlich fand und meine Leser Gefallen daran finden. Besonders freue ich mich, wenn darunter Perlen aus der Vergangenheit sind. Dies zeigt mir, dass selbst Artikel von vor über 10 Jahren noch eine gewisse Relevanz besitzen.

Diese Rückmeldungen sind es, die mich motivieren, nach immer neuen Themen zu suchen und diese für den Blog zu verschriftlichen.

Zudem muss ich jedes Mal schmunzeln, wenn ich im Internet die Antwort auf eine Frage suche und diese dann in meinem eigenen Blog finde. So stellt mein Blog inzwischen für mich eine wertvolle Wissensdatenbank dar, auf die ich regelmäßig und gerne zurückgreife.

Wie ist das bei euch? Lest und stöbert ihr gerne in Blogs? Favorisiert ihr andere Formate? Bloggt ihr selbst? Ich freue mich über eure Kommentare oder Blogposts zu diesem Thema.

Ansible Collection tronde.opencloud

In diesem Beitrag berichte ich über mein Wochenend-Projekt „Ansible Collection tronde.opencloud“, welche ihr seit dem 4. Mai 2025 in Version 1.0.0 auf Ansible Galaxy sowie bei Codeberg.org findet.

Ich habe die Collection mit den folgenden Zielen erstellt:

  • Deployment von OpenCloud mittels Ansible in einer rootless Podman-Umgebung
  • Backup der OpenCloud und Speicherung des Backups auf dem Ansible Control Node
  • Restore der OpenCloud aus einem zuvor erzeugten Backup

Aktuell läuft eine OpenCloud-Instanz auf einem meiner Server unter Debian Bookworm.

Nicht so schnell! Was sind Ansible, OpenCloud und Podman?

Derjenige, dem diese Begriffe bereits geläufig sind, kann direkt zum Abschnitt Motivation springen. Für alle anderen gibt es hier eine knappe Erklärung mit Verweisen zu weiteren Informationen, um sich mit der Materie vertraut zu machen.

Ansible

Ansible hat sich zu einem beliebten Schweizer Taschenmesser für Automation, Konfigurations-Management, Deployment und Orchestrierung entwickelt. Über folgende Links findet ihr reichlich informationen dazu:

OpenCloud

OpenCloud ist die Filesharing & Kollaborations-Lösung der Heinlein Gruppe.

Durch intelligentes Datei-Management und eine starke Open Source-Community werden Dateien zu wertvollen Ressourcen – effektiv strukturiert und langfristig nutzbar.

Quelle: https://opencloud.eu/de

Links zu weiteren Informationen:

Podman

Podman ist ein Werkzeug zur Erstellung von Linux-Containern und der Verwaltung des gesamten Container-Lebenszyklus. Links mit Informationen zu Podman:

Motivation

Ich betreibe und nutze privat eine Nextcloud, um Dateien über mehrere Geräte zu synchronisieren, mit anderen zu teilen und um Backups verschiedener Geräte und Dienste darin abzulegen. Dazu betreibe ich neben dem Reverse Proxy (NGINX) einen Container mit einer MySQL-Datenbank und einen Anwendungscontainer mit Nextcloud selbst. Nextcloud verfügt über ein reichhaltiges Plugin-Ökosystem zur Erweiterung der Funktionalität, welche ich persönlich allerdings nicht benötige.

OpenCloud ist wie Nextcloud ein Fork von OwnCloud. Siehe dazu den Bericht: Opencloud forkt Owncloud — neue Wendung bei den freien Speichercloud-Versionen im Linux-Magazin vom 22. Januar 2025.

Mir gefällt, dass OpenCloud ganz ohne Datenbank auskommt und sich auf die Synchronisation und das Teilen von Daten fokussiert. Dies entspricht genau meinem Anwendungsfall. Wenn ich dadurch einen Dienst weniger betreiben kann (MySQL), ist das umso besser.

Nur passt der gewählte Technologie-Stack nicht zu meiner persönlichen Vorliebe. Während OpenCloud auf die Verwendung von Docker Compose mit Traefik als Reverse Proxy setzt, bevorzuge ich, Container mit Podman zu betreiben und verwende (noch) NGINX als Reverse Proxy.

Um OpenCloud etwas kennenzulernen, habe ich beschlossen, analog zu meiner Ansible Collection tronde.nextcloud eine Collection tronde.opencloud zu erstellen, um OpenCloud deployen und verwalten zu können.

Ob sich der Aufwand lohnt, werde ich mit der Zeit sehen. Wenn es mir zuviel wird oder ich den Gefallen daran verliere, werde ich dieses Wochenendprojekt wieder einstellen bzw. gern in die Hände motivierter Menschen geben, die es weiterführen möchten.

Informationen zur Collection

Das Wichtigste zu dieser Collection habe ich bereits zu Beginn dieses Textes geschrieben. Neben den für Ansible Collections und Roles typischen README.md-Dateien habe ich auch ein paar Zeilen Dokumentation erstellt:

Die Collection steht unter einer freien Lizenz und ich gebe keinerlei Garantie oder Gewähr, dass euch deren Verwendung nicht direkt in den Untergang führt. ;-)

Die Collection kann (noch) nicht viel. Das Wenige scheint jedoch robust zu funktionieren. Wenn ihr neugierig seid, probiert sie gerne aus. Auch euer konstruktives Feedback ist mir stets willkommen.

Für mich ist dies ein Wochenend-Projekt, das mit etlichen anderen Themen um meine Zeit konkurriert. Erwartet daher keine schnellen Entwicklungsfortschritte. Wenn ihr gern daran mitwirken möchtet, bin ich dafür offen. Werft einen Blick in den kurzen Contribution Guide und legt los. Falls ihr Fragen habt oder euch mit mir über die Collection austauschen möchtet, könnt ihr

  • eure Frage als Issue mit dem Label „Question“ im Repository stellen oder
  • in den Matrix-Raum #My-IT-Brain posten.

Erster Eindruck von OpenCloud

Das noch recht junge Projekt macht einen aufgeräumten Eindruck. Die Benutzeroberfläche ist nicht überladen und ich finde mich schnell darin zurecht. Das Entwicklerteam antwortet bereitwillig auf Fragen und kümmert sich in angemessener Zeit um Issues. Dies ist zumindest mein subjektiver Eindruck.

Einziger Wermudstropfen ist wie so oft die Dokumentation, welche mit der Entwicklung offenbar nicht Schritt halten kann. Diese lässt leider noch viele Fragen offen, welche über GitHub Discussions oder Suche im Quelltext geklärt werden können/müssen. Ich empfinde dies etwas ermüdend und es drückt die Motivation.

Nun werde ich OpenCloud erstmal einige Zeit nutzen und ein paar Versions-Upgrades hinter mich bringen. Anschließend werde ich dann einen Meinungsartikel schreiben, wie es mir gefällt.

Einen Tang-Server auf Debian installieren

In diesem Text dokumentiere ich, wie ein Tang-Server auf Debian installiert werden kann und wie man den Zugriff auf diesen auf eine bestimmte IP-Adresse einschränkt.

Wer mit dem Begriff Tang-Server noch nichts anfangen kann und dies ändern möchte, dem empfehle ich: Network Bound Disk Encryption im Überblick.

Installation und Konfiguration

Installiert wird der Tang-Server mit folgendem Befehl:

sudo apt install tang

Standardmäßig lauscht der Tang-Server auf Port 80. Da dieser Port auf meinem Server bereits belegt ist, erstelle ich mit dem Befehl sudo systemctl edit tangd.socket eine Override-Datei mit folgendem Inhalt:

:~# cat /etc/systemd/system/tangd.socket.d/override.conf 
[Socket]
ListenStream=
ListenStream=7500

Mit den folgenden Kommandos wird die geänderte Konfiguration eingelesen, die Konfiguration kontrolliert und der Dienst gestartet:

:~# systemctl daemon-reload
:~# systemctl show tangd.socket -p Listen
Listen=[::]:7500 (Stream)
:~# systemctl enable tangd.socket --now

Zugriff auf eine IP-Adresse beschränken

Ich möchte den Zugriff auf den Tang-Server auf eine IP-Adresse beschränken, nämlich auf die IP-Adresse des einen Clevis-Clients, der diesen Server verwenden wird. Dazu führe ich die folgenden Schritte durch.

:~# iptables -A INPUT -p tcp -s 203.0.113.1 --dport 7500 -j ACCEPT
:~# iptables -A INPUT -p tcp --dport 7500 -j DROP
:~# mkdir /etc/iptables
:~# iptables-save >/etc/iptables/rules.v4

Damit die in der Datei /etc/iptables/rules.v4 gespeicherten Regeln nach einem Neustart wieder geladen werden, erstelle ich ein Systemd-Service:

:~# cat /etc/systemd/system/load-iptables.service 
[Unit]
Description=Load iptables rules
Before=network.target

[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore < /etc/iptables/rules.v4
#ExecStart=/sbin/ip6tables-restore < /etc/iptables/rules.v6

[Install]
WantedBy=multi-user.target

:~# systemctl daemon-reload
root@vmd54920:~# systemctl enable load-iptables.service
Created symlink /etc/systemd/system/multi-user.target.wants/load-iptables.service → /etc/systemd/system/load-iptables.service.

Test

Um zu überprüfen, ob der Tang-Server wie gewünscht arbeitet, setze ich auf meinem Clevis-Client den folgenden Befehl ab. Dabei muss nach der Ver- und Entschlüsselung der gleiche Text ‚test‘ ausgegeben werden.

~]$ echo test | clevis encrypt tang '{"url":"tang1.example.com:7500"}' -y | clevis decrypt
test

Fertig.

Wie kann ich mit GNU sed innerhalb eines Verzeichnisses rekursiv alle vorkommen eines Strings ersetzen?

Verwende find mit sed für die rekursive Textersetzung in allen Dateien:

find . -type f -exec sed -i 's/foo/bar/g' {} +
  • -type f: Bearbeitet nur Dateien (keine Verzeichnisse)
  • -exec ... +: Führt sed effizient auf mehreren Dateien gleichzeitig aus
  • sed -i: Überschreibt Dateien direkt („in-place“).

Die Antwort auf diese Frage lieferte perplexity.ai.

Von SPAM-Kommentaren und Gegenmaßnahmen

In der vergangenen Woche ist es einem Kommentar-Spammer gelungen meinen SPAM-Filter zu überwinden und die Kommentarspalte eines älteren Artikels mit SPAM zu füllen.

Eine erste Analyse ergab, dass diese SPAM-Welle von IP-Adressen aus durchgeführt wurde, die in der Russischen Föderation registriert sind. Da der großteil der unerwünschten Zugriffe auf meinen Server aus Russland und China stammen, habe ich eine erste Maßnahme ergriffen: Zugriffe von IP-Adressen aus der Russischen Föderation und China werden blockiert. Damit hatte ich mir zumindest Luft verschafft, um die Lage später etwas genauer zu analysieren.

Erste Erkenntnisse einer oberflächen Analyse

  • Nachdem die Zugriffe aus Russland und China gesperrt waren, erkannte ich, dass auch von IP-Adressen aus ganz anderen Regionen wie z.B. Vereinigte Arabische Emirate und Niederlande versuchte wurde SPAM in meinem Blog abzuladen; diese Versuche wurden jedoch von Antispam Bee blockiert
  • Auffällig oft wurde eine E-Mail-Adresse aus der Domain ‚.ru‘ für die Kommentare verwendet
  • Zwei ältere Artikel aus 2015 und 2022 waren auffällig oft das Ziel der Spammer
  • In den letzten 6 Tagen sind insgesamt 416 SPAM-Kommentare eingegangen, von denen ich 129 manuell markieren musste

Gegenmaßnahmen

  • Alle Kommentare, die innerhalb von Inhalt, Autornamen, URL oder E-Mail-Adresse die Zeichenkette ‚.ru‘ enthalten, müssen moderiert werden
  • Bevor ein Kommentar erscheint, muss der Autor bereits einen freigegebenen Kommentar geschrieben haben; alle anderen werden moderiert
  • Für die zwei am stärksten betroffenen Artikel habe ich die Kommentarfunktion deaktiviert

Die über Iptables konfigurierte Sperrliste habe ich voerst wieder deaktiviert.

Status um 2025-04-10T20:46+02

  • Nach der Umsetzung der ersten zwei Gegenmaßnahmen, wurden noch vier Kommentare von Antispam Bee blockiert
  • Seit der Umsetzung der dritten Gegenmaßnahme ist kein weiterer unerwünschter Kommentar eingegangen
  • Ich beobachte die Lage weiter.

Zugriffe von IP-Adressen aus der Russischen Föderation und China werden blockiert

In den letzten Tagen, musste ich hier im Blog leider beobachten, wie sich ein Spammer an den wachsamen Augen der Antispam Bee vorbeigeschlichen hat und einzelne SPAM-Kommentare unter einem älteren Artikel aus dem Jahr 2015 hinterlassen hat.

Was mit einzelnen Kommentaren begann, erweiterte sich dann zu einer kleinen SPAM-Attacke, die in der Nacht vom 10.04.2025 weitere 129 SPAM-Kommentare unter den Artikel spülte. Dabei wurden 30 unterschiedliche IP-Adressen verwendet, die alle in der Russischen Föderation registriert sind.

Nach einer Sichtung weiterer blockierter SPAM-Kommentare stelle ich fest, dass der überwiegende Teil des SPAMs aus der Russischen Föderation und China kommt. IP-Adressen aus diesen Regionen werden auch regelmäßig durch fail2ban blockiert.

Da der letzte Spammer durch den Wechsel der IP-Adressen, bestehende Mechanismen jedoch unterlaufen konnte, baue ich nun eine weitere Verteidigungslinie auf. Zukünftig werden Zugriffe von IP-Adressen aus der Russischen Föderation und China von Iptables blockiert.

Update 2025-04-10T18:40+02: Ich habe die Maßnahme vorerst wieder ausgesetzt und prüfe, ob angepasste Kommentar-Einstellungen ausreichen, um dem Kommentar-SPAM zu begegnen. Ich lasse die folgende Lösung als Dokumentation online. Evtl. muss ich doch wieder darauf zurückfallen.

Hier ist eine iptables-Lösung zum Blockieren von IP-Adressen aus Russland und China:

Vorbereitung: GeoIP-Modul installieren

~# apt install xtables-addons-common geoip-bin libtext-csv-xs-perl
~# /usr/libexec/xtables-addons/xt_geoip_dl
~# /usr/libexec/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip RU CN

Iptables-Regel erstellen und für persistenz speichern

~# iptables -A INPUT -m geoip --src-cc RU,CN -j DROP
~# iptables-save > /etc/iptables/rules.v4

Automatische Updates der Geo-IP-Daten einrichten

~# cat /usr/local/bin/geoip_update.sh 
# /usr/local/bin/geoip_update.sh
#!/bin/bash
wget -O /tmp/GeoIPCountryCSV.zip https://dl.miyuru.lk/geoip/maxmind/country/maxmind4.dat.zip
unzip -o /tmp/GeoIPCountryCSV.zip -d /usr/share/xt_geoip/
/usr/libexec/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip RU CN
rm /tmp/GeoIPCountryCSV.zip

~# crontab -l
# Cronjob täglich um 3 Uhr
4 3 * * * /usr/local/bin/geoip_update.sh

Test und Logging aktivieren

# Zuerst in der Firewall-Chain testen
~# iptables -L -n -v | grep 'DROP.*geoip'

# Logging aktivieren (optional für Debugging)
~# iptables -I INPUT -m geoip --src-cc RU,CN -j LOG --log-prefix "[GEOIP BLOCK]"

Hinweis: Den Vorschlag für obige Lösung habe ich mir von perplexity.ai generieren lassen. Dabei musste ich lediglich den Pfad zu /usr/libexec/xtables-addons korrigieren, welcher fälschlicherweise auf /usr/lib/ zeigte.

Fazit

Das Internet ist kaputt. Die Zeiten in denen die Nutzer respektvoll und umsichtig miteinander umgingen, sind lange vorbei.

Mir ist bewusst, dass auch eine Sperrung von IP-Adressen basierend auf Geolokation keine absolute Sicherheit bietet und man mit dieser groben Maßnahme auch mögliche legitime Zugriffe blockiert. Allerdings prasseln aus diesen Teilen der Welt so viele unerwünschte Zugriffsversuche auf meinen kleinen Virtual Private Server ein, dass ich hier nun einen weiteren Riegel vorschiebe.

Welche Maßnahmen ergreift ihr, um unerwünschte Besucher von euren Servern fernzuhalten? Teilt eure Maßnahmen und Erfahrungen gern in den Kommentaren oder verlinkt dort eure Blog-Artikeln, in denen ihr darüber geschrieben habt.

Wie füge ich einer KVM/libvirt VM eine serielle Konsole hinzu?

Ich beantworte hier meine eigene Frage, damit ich zukünftig nicht so lange im Internet nach der Anwort suchen muss.

Mein Ziel ist es, eine virtuelle Maschine mit dem Kommando virt-install zu installieren, zu welcher ich mich anschließend mit dem Kommando virsh console <domain> verbinden kann, um z.B. das Netzwerk konfigurieren zu können.

Dies geht mit folgendem Befehl:

$ virt-install --connect qemu:///system --name vm1 --memory 4096 --vcpus 2 --disk VirtualMachines/vm1.qcow2,size=40 --os-variant rhel9.5 --cdrom iso/rhel-9.5-x86_64-dvd-ks.iso --network network=lab1,model=virtio --console pty,target_type=virtio

Der entscheidende Teil ist dabei --console pty,target_type=virtio. Der folgende Codeblock zeigt nun noch die erfolgreiche Verbindung zur seriellen Konsole der VM:

$ virsh -c qemu:///system console vm1 --safe
Connected to domain 'vm1'
Escape character is ^] (Ctrl + ])

localhost login:

Fertig.

Ansible Lightspeed wird mit euren Galaxy-Inhalten trainiert

Ich bin heute darüber gestolpert, dass die Künstigliche Intelligenz (KI) Ansible Lightspeed u.a. mit meinen Ansible Collections und Roles auf Ansible Galaxy trainiert wird. In diesem kurzen Beitrag möchte ich darüber informieren und den Weg zum Opt-out aufzeigen.

Wie viele andere Entwickler und Autoren von Ansible-Inhalten veröffentliche auch ich meine Ansible Collections und Roles auf Ansible Galaxy. Da ich nicht zu den besonders aktiven Nutzern gehöre, schaue ich dort eher gelegentlich vorbei, weswegen ich vermutlich einfach nicht mitbekommen habe, dass Ansible Lightspeed die Inhalte auf Ansible Galaxy als Trainingsmaterial benutzt.

Aufgefallen ist mir dies erst, als ich auf das Menü in der Ansicht unter Roles –> Role Namespaces geklickt und den Punkt Ansible Lightspeed settings gesehen habe.

Das Bildschirmfoto zeigt das Menü unterhalb von Roles/Role Namespaces, in dem sich auch die Einstellungen für Ansible LIghtspeed finden.
Abbildung 1: Ansible Lightspeed settings im Menü

Obige Abbildung zeigt, wo die Einstellungen zu finden sind. Die folgende Abbildung zeigt den Opt-Out-Dialog:

Die Abbildung zeigt den Dialog "Opt out of Ansible Lightspeed", wo man der Verwendung der eigenen Inhalte für Trainingszwecke widersprechen kann.
Abbildung 2: Opt out of Ansible Lightspeed Dialog

Schade, dass es sich um ein Opt-out handelt. Ein Opt-in würde mir besser gefallen. So werden meine inhalte vermutlich längst für das Training von Ansible Lightspeed verwendet, ohne dass ich mir dessen bewusst war.

Ich habe kurz überlegt und mich dann gegen ein Opt-out entschieden. Ich schreibe Ansible Collections und Roles aus der Motivation heraus, dass diese mir und anderen die IT-Administration erleichtern. Ob meine Inhalte anderen Menschen nun direkt oder indirekt über eine KI nutzen, macht für mich keinen entscheidenen Unterschied. Ich freue mich, wenn sie nützlich sind (selbst wenn sie als abschreckendes Beispiel dienen).

Und machen wir uns nichts vor, viele andere KI-Raubritter da draußen interessiert weder ein Opt-in noch ein Opt-out. Diese scannen und trainieren mit allen öffentlich zugänglichen Daten, derer sie habhaft werden können. Schöne neue Welt.

Hybride Informationsverarbeitung nervt

Kürzlich habe ich für eine anstehende Modernisierungsmaßnahme im Haus einen Kredit-vorfinanzierten Bausparvertrag abgeschlossen. In diesem Text möchte ich den Medienbruch hervorheben, der mich dabei genervt hat und aufzeigen, wie es besser gemacht werden kann.

Der Prozess im Überblick

  1. Recherche von Anbietern im Internet
  2. Erster Angebotsvergleich im Internet
  3. Terminvereinbarung eines Beratungsgesprächs via E-Mail und Telefon
  4. Erstes Termin in einer Filiale eines Anbieters
  5. Übermittlung der erforderlichen Unterlagen via E-Mail
  6. Zweiter Termin zum Vertragsabschluss mit jeder Menge Unterschriften und Papier

Die Punkte Terminvereinbarung, Informationsübermittlung und Vertragsabschluss verdienen in meinen Augen eine genauere Betrachtung

Terminvereinbarung

Die Anbieter, welche ich zuerst ins Auge gefasst hatte, boten eine Online-Terminvereinbarung via Webformular an, wo unter freien Terminen ein passender ausgewählt und gebucht werden konnte. Ich bevorzuge diese Art der Terminvereinbarung, da ich so zu einer Zeit die mir gut passt, direkt einen mir passenden Termin buchen kann, ohne E-Mails hin und her zu schreiben oder in einer Telefonwarteschleife zu hängen. Leider waren im gewünschten Zeitraum keine Termine frei und ich wollte die Angelegenheit nicht weiter aufschieben. Also schieden diese Anbieter aus.

Als nächstes habe ich in der nächstgelegenen Filiale einer bekannten Bausparkasse angerufen. Leider habe ich auch hier beim ersten Versuch niemanden erreicht. Also habe ich eine Terminanfrage mit zwei Terminvorschlägen via E-Mail gesendet. Um ein E-Mail-Ping-Pong zu vermeiden, habe ich auch eine Rückrufnummer mitgesendet. Der Rückruf hat mich dann auch prompt aus meinem Tunnel gerissen, als ich mich auf meine Arbeit konzentriert habe. Die Störung konnte ich verschmerzen, da die Freude überwiegte, noch in der gleichen Woche einen Termin vereinbaren zu könnnen.

Ich bin kein Freund von unangekündigten Anrufen, da sie mich entweder bei der Arbeit unterbrechen oder zu einer Zeit erreichen, in der ich lieber meine Ruhe hätte. Allerdings bevorzuge ich ein kurzes Telefonat oder eine Videokonferenz, wenn sich eine Angelegenzeit damit schneller und sicherer regeln lässt, als mehrere E-Mails austauschen zu müssen. Mein Favorit bleibt jedoch die Online-Terminbuchung.

Informationsübermittlung via E-Mail

Während des Beratungstermins in der Filiale wurde mir eine Finanzierungsmöglichkeit vorgeschlagen, die mir zusagte und wir haben geklärt, welche Unterlagen für den Abschluss benötigt werden.

Auf meine Frage, ob ich sämtliche Unterlagen als PDF via E-Mail senden kann oder alles in Papierform mitbringen muss, wurde zu meiner Freude geantwortet: „Selbstverständlich können Sie mir die Unterlagen als PDF per E-Mail senden oder auf einem USB-Stick mitbringen. Dies erleichtert mir die Ablage und ich muss nicht alles einscannen.“

Unterlagen wie Kontoauszüge und Verdienstbescheinigungen per E-Mail zu versenden, bereitet mir keine Sorgen, da mein E-Mail-Provider Mailbox.org eine Funktion bietet, um E-Mails definitiv sicher zu versenden. Kann zum Mailserver des Empfängers keine verschlüsselte Verbindung aufgebaut werden, wird der Versand abgebrochen. In diesem Fall hätte ich die PDFs auf einem USB-Stick mitgebracht. Dies war in diesem Fall jedoch nicht notwendig.

Exkurs E-Mail-Transport: In meinen Augen ist es eine Selbstverständlichkeit, dass Mailserver verschlüsselten Empfang und Versand unterstützen. Allerdings erfolgt der traditionelle Versand mit dem Simple Mail Transfer Protocol (SMTP) unverschlüsselt. Daher schätze ich die zuvor genannte Funktionalität bei Mailbox.org, um ohne technisches Know-how und zusätzlichen Aufwand sicherstellen zu können, dass eine E-Mail nur versendet wird, wenn dies auf einem verschlüsselten Transportweg erfolgt. Dies erleichtert mir auch die Kommunikation mit meinem Steuerberater.

Während ich persönlich die digitale Kommunikation bevorzuge, befürworte ich zugleich, die Möglichkeit beizubehalten, notwendige Unterlagen ohne Mehrkosten in Papierform einreichen zu können. Zumindest so lange es noch Kunden gibt, die diesen Weg bevorzugen (kein Digitalzwang).

Vertragsabschluss mit vielen Unterschriften und noch mehr Papier

Zum Vertragsabschluss wurde ich dann doch von der Bürokratie eingeholt. Ich musste X Seiten unterschreiben und mir wurden Y Seiten an Papierkram mitgegeben.

Ich finde es richtig, dass Anbieter ihren Kunden Verbraucherschutzinformationen in geeigneter Weise zur Verfügung stellen müssen. Aber sind Anbieter wirklich verpflichtet, dies in Papierform zu tun? Warum geht das nicht wahlweise als PDF? Gleiches gilt für die europäischen Standard-Informationen für Verbraucher-Darlehen. Ich behaupte, die meisten Verbraucher werden diese informationen nicht lesen und das Papier landet ungelesen in der Tonne.

Vorschlag zur Verbesserung

Da sind wir so weit gekommen und am Ende liegt doch wieder ein Stapel Papier von ca. 1 cm Höhe auf dem Tisch. Das muss nicht sein. Das kann auch anders gehen. So können unterschriftsreife Unterlagen vorab als PDF versendet oder auf Tablets bwz. E-Ink-Readern zur Durchsicht/Präsentation zugänglich gemacht werden. So kann das Kleingedruckte auch einfach vergrößert werden. ;-)

Und die eigenhändige Unterschrift kann rechtssicher durch die qualifizierte elektronische Unterschrift mit dem Personalausweis geleistet werden. Dank der Fernsignatur ist dies sogar spontan mit dem neuen Personalausweis und der Ausweisapp auf dem Smartphone möglich.

Es gibt also rechtssichere Alternativen zur eigenhändigen Unterschrift. Was (noch) fehlt, sind Angebote auf Seiten diverser Anbieter. Wenn ihr euch ebenfalls die Möglichkeit der elektronischen Unterschrift wünscht, fragt danach und fordert dies von den Anbietern ein. Ohne Nachfrage wird kein Angebot geschaffen!

Quellen und weiterführende Links

Wie kann ich das MQTT-Passwort in Home Assistant auslesen?

Das MQTT-Passwort lässt sich auf der Konsole des Home Assistant Systems in der Datei /mnt/data/supervisor/homeassistant/.storage/core.config_entries finden. Der entsprechende Eintrag sieht bei mir wie folgt aus:

{
        "created_at": "1970-01-01T00:00:00+00:00",
        "data": {
          "birth_message": {
            "payload": "online",
            "qos": 0,
            "retain": false,
            "topic": "homeassistant/status"
          },
          "broker": "localhost",
          "discovery": true,
          "discovery_prefix": "homeassistant",
          "password": "hierstehtmeinmegalangesundkomplexespasswort",
          "port": 1883,
          "username": "homeassistant",
          "will_message": {
            "payload": "offline",
            "qos": 0,
            "retain": false,
            "topic": "homeassistant/status"
          }
},

Jetzt steht das Passwort in meinem Passwort-Manager KeePassXC und ich werde auf diesen Beitrag hoffentlich nicht so schnell zurückgreifen müssen.

Weitere Links zum Thema