Archiv ‘IT’

Samstag, 24. Oktober 2026

Migadu: „550 5.7.1 sender address rejected: not allowed“

Wegen anhaltender Probleme mit Cyons Email-Infrastruktur, und insbesondere auf Grund eines unterschiedlichen Verständisses zwischen Kunde und Anbieter, für was eine solche Infrastruktur gebraucht werden kann und dabei tolerieren sollte, bin ich auf Migadu gestossen.

Der Anbieter will nur eines machen: Email, und zwar gut, für Power User und Geeks. Ein fantastisches Produkt!

Ich habe deshalb über Hostpoint eine zweite Domain gekauft, und wickle nun emailbasierte Systemmeldungen meines Serverparks über Migadu ab.

So möchte ich verhindern, dass mir Cyon über mehrere Tage hinweg wegen „Problemen“ mit Emails meiner Infrastruktur meine privaten und geschäftlichen Emails abklemmt.

In dem Zusammenhang: Cyons Crew ändert auch schon mal einfach so das Passwort eines angeblich „kompromittierten“ Email-Kontos (Meine Meinung: Bounces sind kein Hackerangriff …), und blockiert dann wenig später gleich das ganze Kundenkonto, weil die Automationen, welche mit dem alten, vom Kunden gesetzten Passwort weiter regelmässig auf das Email-Konto zugreifen wollen, dann als noch grössere „Attacke“ erachtet werden. Item.

Migadu hat Restriktionen, wie viele „outgoing“ Mails man versenden kann. Der Clou: Emails, welche innerhalb der eigenen Domain versendet werden, zählen hierbei nicht. Solange ich also von server.xyz@meineinfra.tld an events@meineinfra.tld maile, kann ich so viele Mails rauslassen wie ich will (vermutlich zieht aber dennoch Fair Use).

In den letzten Tagen stauten sich plötzlich Emails auf meinen Servern und konnten über Migadu nicht ausgeliefert werden.

In den Postfix-Logs tauchte immer wieder folgende Meldung auf:

...
Oct 23 19:06:28 SERVER postfix/smtp[73067]: Untrusted TLS connection established to smtp.migadu.com[51.210.223.36]:587: TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256
Oct 23 19:06:29 SERVER postfix/smtp[73067]: 9556D5F006: to=, relay=smtp.migadu.com[51.210.223.36]:587, delay=121, delays=0.01/120/0.24/0.04, dsn=5.7.1, status=bounced (host smtp.migadu.com[51.210.223.36] said: 550 5.7.1 sender address rejected: not allowed (in reply to end of DATA command))

In meiner Recherche fand ich heraus, dass das Problem am 15. Oktober aufzutreten begann. Ich könnte schwören, dass ich an dem Tag nichts an Migadu geändert hatte. Aber ich kann mich täuschen.

Lustigerweise betraf dies nicht alle Emails, viele Mails kamen weiterhin durch, und anfänglich machte alles keinen Sinn.

Bis ich auf folgenden Blog-Artikel stiess: Email aliases: receive and send with a different address per sender. Dort wurde sowohl Migadu erwähnt, als auch genau die von mir beobachtete Fehlermeldung.

Die Schlüsselstelle im Artikel:

  1. In the Migadu admin, open the domain, then Mailboxes, then the mailbox that receives everything.
  2. Turn on Wildcard sender. The mailbox may now send as any address of this domain, with its own login. Identities don’t inherit the right.
  3. Open the domain settings and set the catch-all („improperly addressed messages“) to deliver to that mailbox.
  4. Use smtp.migadu.com, port 465 (SSL), with the mailbox address and password, in every client.

Jetzt ging mir ein Licht auf. Die Emails, die nicht ankamen, wurden über server.xyz@meineinfra.tld versendet, trugen als Absender aber From: monitoring@meineinfra.tld. Das hatte seit Eröffnung des Migadu-Kontos problemlos funktioniert, nun aber nicht mehr.

Nach etwas Herumpröbeln im Migadu-Interface dann die Lösung:

  • Email Domains > meineinfra.tld > Mailboxes > server.xyz@meineinfra.tld > Wildcard Sender > [x] Permit wildcard sending Authentifiziere ich mich mit diesem Konto gegen Migadus SMTP, kann ich in From: einen beliebigen Präfix von @meineinfra.tld verweden.
  • monitoring@meineinfra.tld hatte ich bei Eröffnung des Kundenkontos als Mailbox eingerichtet. Diese brauche ich aber nicht wirklich, da ich die Email-Adresse nur als Absenderadresse verwende. Somit habe ich die Mailbox gelöscht.
  • Stattdessen erstellte ich unter Email Domains > meineinfra.tld > Mailboxes > server.xyz@meineinfra.tld >Identities eine neue Identity monitoring@meineinfra.tld, und gab ihr das Attribut Not used for authentication, sender persona only

Und siehe da, nach ein paar Minuten begannen meine Server, die bis jetzt zurückgewiesenen Emails in deren Postfix Queue auszuliefern.

Übrigens: Egal ob Cyon oder Migadu oder ein anderer Mail-Anbieter, was man auf keinen Fall will: Einen SMTP respektive eine INBOX mit Emails im Sekundentakt fluten. Deshalb habe ich in meiner Postfix main Folgendes stehen:

...
initial_destination_concurrency = 1
default_destination_concurrency_limit = 1
default_destination_rate_delay = 60
default_destination_recipient_limit = 2
default_process_limit = 100
...

Tags: , , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Montag, 14. September 2026

Mit fdupes Duplikate auf der Kommandozeile finden, und löschen

Nachdem ich die Anwendung auf meinem MacBook mit

# port install fdupes

installiert hatte, befreite ich den gewünschten Ordner folgendermassen automatisch von Duplikaten:

$ fdupes --delete --immediate .

ACHTUNG: Dieser Vorgang löscht die Duplikate ungefragt. Wer auf Nummer sicher gehen will, führt den Befehl ohne die zwei Argumente aus, und schaut, welche Dateien gefunden werden.

Tags: , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Samstag, 5. September 2026

SSH: Remote host identification has changed

In den letzten Wochen habe ich einige physische Server mit VM-Pendants ersetzt. Da ich alle von „Scratch“ auf aufgesetzt habe, wurde ich bei den SSH-Versuchen nach dem Herunterfahren der physischen Rechner und dem Hochfahren der VMs unter der IP des ehemaligen Servers immer mit folgender Warnung konfrontiert:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:.
Please contact your system administrator.
Add correct host key in /Users/mario/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/mario/.ssh/known_hosts:29
Host key for 10.1.2.3 has changed and you have requested strict checking.
Host key verification failed.

Über Jahr habe ich jeweils versucht, die angegebene Zeile in /Users/mario/.ssh/known_hosts zu löschen. Oft aber scheine ich die falsche Zeile erwischt zu haben, weshalb ich anfing, die Zeile vor und nach der angegebenen Zeile zu löschen.

Dabei wäre es so einfach, diese Fehlermeldung wegzubringen:

$ ssh-keygen -R 10.1.2.3

Tags: , , , , ,
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen

Samstag, 15. August 2026

Wenn Dovecot zu grosse Indexdateien verarbeiten muss …

… tauchen Fehlermeldungen wie die Folgende im Dovecot-Log auf:

Aug 11 23:05:39 imap(user@domain.tld)<16336>: Error: Mailbox _JOINT: mmap(size=234877176) failed with file /var/vmail/domain.tld/user/mail/mailboxes/_JOINT/dbox-Mails/dovecot.index.cache: Cannot allocate memory

234877176 Bytes entsprechen 234.88 MB.

Mit folgendem Eintrag in 10-master.conf habe ich die Fehlermeldung (vorerst) weggebracht:

...
default_vsz_limit = 512MB
...

Tags:
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen

Montag, 13. Juli 2026

Shelly 2.5 und 3EM können sich nicht mehr mit der Shelly Cloud verbinden

Auf Grund eines Ausfalls eines physischen Servers, und weil ich diesen dann mit VMs ersetzt habe, hatten einige meiner Shelly-Geräte plötzlich Verbindungsprobleme.

Bis zur intensiven Debugging-Session wusste ich aber nicht, wieso.

Die Symptome:

  • Es waren nur Shellys mit dem Web-Interface der ersten Generation betroffen (sprich Shelly 2.5, welche in der Eigentumswohnung die Rollläden steuern, ein Shelly 3EM, der dort den Stromverbrauch misst, sowie Shelly Temperatursonden (die Todessterne))
  • Die Shellys verbanden sich anstandslos mit dem WiFi

  • Die Shellys waren anpingbar
  • Im Web-Interface wurde ganz oben ein gelbes Cloud-Symbol angezeigt, und wenn man mit der Maus darüberfuhr, hiess es „Trying to establish cloud connection“
  • Im Web-Interface wurde oben rechts anstelle der Uhrzeit „–:–“ angezeigt
  • Die Shelly Cloud sandte mir ein Email mit dem Titel „Mass offline devices“

Das Problem, und die Lösung: Offenbar unterstützt das Mongoose OS, welches auf diesen Shellys läuft, nur genau einen DNS-Server (der massgebliche Tipp stammte von hier). Verteilt man die IP mitsamt DNS-Server der Shellys mit einem lokalen DHCP-Server, muss der DNS-Server mit der ersten IP funktionieren, sprich Namen auflösen können. Das tat er in meinem Fall nicht, weshalb die Shellys weder time.google.com auflösen konnten, noch die Adresse(n) der Shelly Cloud. Somit verfügten diese weder über eine Verbindung zum Zeitserver, noch zur Cloud — funktioniertem im lokalen Netzwerk aber tadellos.

Die Shellys mit dem neueren Web-Interface scheinen diese Beschränkung nicht zu haben, denn diese waren immer online.

Doch bis zu dieser Erkenntnis war es ein langer Weg:

Das Problem mit der Uhrzeit löste ich als Workaround, indem ich im Web-Interface anstelle von time.google.com die IP eines NTP-Servers im lokalen LAN angab. Nach einem Reboot wurde die Uhrzeit wieder angezeigt.

Doch wie löste ich nun das Cloud-Problem? Das Debugging führte mich zum neu aufgesetzten, virtualisierten DNS-Server. Interessanterweise erschienen im BIND9 Query Log auf diesem Server ausschliesslich anfragen vom localhost (127.0.0.1). Ich dachte mir anfänglich nicht viel weiteres dabei.

Doch irgendwann einmal machte es Klick: Das Problem mit der Zeit respektive dem NTP-Server und der nicht möglichen Cloud-Verbindung mussten zusammenhängen.

Ich versuchte deshalb, von einem anderen Linux-System im LAN gegen den via DHCP als erstes verteilten DNS-Server eine Domain aufzulösen.

Resultat:

# host emeidi.com 1.2.3.4
;; communications error to 1.2.3.4#53: connection refused
;; communications error to 1.2.3.4#53: connection refused
;; no servers could be reached

Ich nahm die Konfigurationsdatei des BIND 9 auseinander, startete ihn mehrmals neu — das Problem blieb. Bis ich plötzlich realisierte, dass ich via DHCP die IP des DHCP-Servers als ersten DNS-Server verteilte, und nicht die des pimären DNS-Servers. Schwupp-di-Wupp, DHCP-Konfiguration angepasst, Shellys neu gebootet — und siehe da, schön der Reihe nach änderten alle Shellys mit Cloud-Verbindungsproblemen die Farbe des Cloud-Icons von Gelb auf Grün:

Übrigens: Ich habe nun bei all diesen Shellys den Eco-Mode deaktiviert. Nützts nüt, schadts nüt.

Was ich auch noch gelernt habe: Die Shelly 2.5 sterben sehr oft an Altersschwäche eines Kondensators.

Tags: , , , , , , , ,
Labels: Home Automation, IT, Smart Home

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 9. Juli 2026

Linux Kommandozeile: Ist der Laptop-Deckel geschlossen?

Bei meinen Lenovos und unter Debian 13 fragt man das über CLI folgendermassen ab:

# cat /proc/acpi/button/lid/LID/state 
state:      closed

Tags: , , ,
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 7. Juli 2026

Einen Init7 Nameserver gibt’s nicht mehr …

Momentan migriere ich die Workloads in meinen Heimnetzwerken auf Debian VMs, die unter Proxmox laufen, welches auf einem performanten Lenovo-Hobel (T480s) installiert ist.

Keine Ahnung, wieso mir das erst jetzt, 2026, einfällt. Anstelle einen physischen Debian-Server mit unzähligen Apps zu überladen, und zudem mit Testinstallationen von Apps zu kontaminieren, ziehe ich einfach eine VM hoch, welche spezifische Arbeiten erledigt. Eine für DNS, eine für DHCP, eine als VPN-Endpunkt, eine für LNMS.

Kürzlich habe ich eine DNS VM hochgezogen. Dabei ist mir folgende Fehlermeldung in den Logs aufgefallen:

...
05-Jul-2026 22:42:27.393 lame-servers: info: REFUSED unexpected RCODE resolving '50-courier.push.apple.com/HTTPS/IN': 213.144.129.2#53
...

Nach etwas Recherche war klar, dass das Problem nicht an meinem DNS-Resolver (Forwarder) lag, sondern am Zielserver.

Als ich vor Jahren die Grundkonfiguration für meine DNS-Server erstellt habe, betrieb Init7 noch drei DNS-Server:

...
            213.144.129.2;  // Init7, NS1
            77.109.128.2;   // Init7, NS10
            213.144.129.20; // Init7, NS20
...

Gemäss dieser Webseite sind es mittlerweile nur noch zwei, der NS10, und der NS20:

  • 77.109.128.2
  • 213.144.129.20

Tags: , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 13. Mai 2026

Welche IP hat eine MAC-Adresse im lokalen Netzwerk?

Vor einigen Tagen schloss ich ein Netzwerk-Gerät an ein nicht von mir gemanagtes Netzwerk an. Da im Netzwerk ein DHCP-Server aktiv ist, erhielt mein Gerät eine IP — doch welche?

Das Gerät selber konnte es mir nicht sagen, da es über kein Display verfügt. Immerhin stand auf einem Kleber auf dem Gerät dessen MAC-Adresse.

Doch wie generiere ich auf der Kommandozeile nun effizient und rasch eine Liste bestehend aus IP und dazugehöriger MAC-Adresse?

Auf meinem MacBook Air mit macOS 15 klappte es folgendermassen:

$ for ip in 192.168.1.{1..254}; do ping -c 1 -W 1 $ip | grep "64 bytes" & done; wait
$ arp -a | grep -i 59:f5:26
? (192.168.1.153) at 58:4:4f:59:f5:26 on en0 ifscope [ethernet]

Tags: , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Montag, 13. April 2026

Telegram: Ownership eines Gruppenchats transferieren

Im Grunde ganz einfach, wenn man weiss wie (wie so alles im Leben):

  • Klick auf den Namen des Gruppenchats
  • Edit
  • Administrators
  • Den neuen, zukünftigen Besitzer zum „Administrator“ machen
  • Klick auf den Namen des neuen Administrators
  • Option „Add new admins“ aktivieren
  • Save Changes
  • Klick auf sich selber
  • Transfer Ownership (diese Option ist erst ersichtlich, wenn der zukünftige Besitzer die Berechtigung „Add new admins“ zugewiesen erhalten hat)

Fertig.

Tags: , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Samstag, 14. März 2026

Poor Man’s Toniebox

Ein Kollege hat mir empfohlen, ein Einschlaflied auszuwählen, und das Baby regelmässig damit in den Schlaf zu wiegen.

Sobald der Nachwuchs auf die Melodie konditioniert sei („wie ein dressierter Hund“, bemerkte ich lapidar, was er nicht verneinte), klappe es erstaunlich gut, den Nachwuchs rasch und effektiv zum Einschlafen zu bringen.

Wir üben aktuell noch, und es funktioniert noch nicht wie gewünscht. Momentan habe ich das Gefühl, dass es wirklich könnte.

Auf Grund meiner amerikanischen Prägung seit 2010 habe ich mich für „Twinkle Twinkle Little Star“ entschieden. Erinnerungen an den kulturellen Einfluss eines untergehenden Imperiums …

Anfänglich spielte ich diesen YouTube-Song auf meinem iPhone ab. Irgendwann war mir das zu mühsam, und ich begann, mich nach einem dedizierten Abspielgerät umzusehen.

Von einem guten Kollegen kenne ich die Toniebox. Vereinfacht gesagt ein Lautsprecher mit einem proprietären MP3-Player mit WiFi-Anbindung, der über einen Server des Herstellers („Tonie Cloud“) sauber lizenziertes Audiomaterial bezieht und abspielt. Der Clou: Sind die Kinder erst einmal mobil, kann man ihnen offizielle Tonie-Figuren kaufen, welche einen NFC-Chip eingebaut haben, die dem Lautsprecher sagen, welches Audiomaterial vom Server heruntergeladen und abgespielt werden soll.

Natürlich haben ITler das Ding reverse engineered, um meines Wissens NFC-Tags zu klonen, aber auch um eigene Aufnahmen auf das Gerät zu laden und lokal abzuspielen.

Einschub: Das gab’s auch schon in den 1980ern, in analoger und ungeschützter Form; das waren damals einfach Kassetten, mit TKKG-, Drei Fragezeichen- und Knight Rider-Episoden. Selbstverständlich konnte man diese nach belieben kopieren, zum Ärger der Rechteinhaber.

Zurück zur Toniebox: Kostenpunkt: Mindestens 80 Hämmer für den „smarten“ Lautsprecher. Die NFC-Figuren gehen ab 15.90 CHF über die Ladentheke.

Wenn man diese Box hier in Thailand überhaupt findet, dann zu überteuerten Preisen. Zu teuer, vor allem, weil unser Baby ja noch gar nicht selber mit der Toniebox spielen kann.

Meine improvisierte Lösung:

  • HOCO HC22 (auf der Herstellerseite nicht mehr geführt, vermutlich Auslaufmodell) Lautsprecher mit Bluetooth, einem USB-A-Port für einen USB-Stick, einem USB-C-Port zum Laden der 1200mAh Batterie des Lautsprechers, einem SD Card-Slot (aus irgendeinem mir unerklärlichen Grund „TF“ genannt, „Trans-Flash“), FM-Radio sowie einem AUX-Eingang (3.5mm Klinke). Kompaktes Design (passt in knapp in die Hosentasche), mit 272g tragbar, aber definitiv nicht leicht — aber dementsprechend fühlt sich das Gerät wertig an. Das Gehäuse verfügt auch über eine Schlaufe, mit welchem man den Lautsprecher an einem Haken oder Karabiner aufhängen kann. Kostenpunkt: 7.55 CHF
  • SanDisk Classic 10, 32GB P/N SDSQUNR-032G-GN3MN, Kostenpunkt: 8.10 CHF
  • HOCO UA25 SD Card-Adapter (beide Grössen) auf USB-C. Kostenpunkt: 4.05 CHF

Sobald man im Besitz des Materials ist, braucht man nur noch MP3-Dateien (M4A habe ich nicht getestet), lädt diese über den Adapter auf die SD Card, schiebt die SD Card in den Lautsprecher, wechselt in den SD Card-Modus, und beginnt die Songs abzuspielen.

Kritik: Die Reduktion auf 4 Buttons (Power On, – (minus), + (plus), Play) und die Doppelbelegung (short press, long press) und das Fehlen der Bestätigung von Tastendrücken mit einer Stimme machen die Bedienung nicht optimal — aber machbar. Auch gefällt mir nicht, dass die Lautstärke bei jedem Neustart auf die (für ein Baby zu laute) Standardeinstellung zurückfällt.

Und ja, bevor kommentiert wird: Ich bin mir bewusst, dass mein Use Case nicht derselbe ist wie derjenige von Eltern von älteren Kindern, welche man selbständig beschäftigen und die Möglichkeit geben möchte, ihr Lieblingshörspiel zu hören.

Tags: , , , , , , , ,
Labels: Baby, IT, Technik

Keine Kommentare | neuen Kommentar verfassen