SMTP: pphosted.com trifft auf moderne SSL-Technik

pphosted … pphosted … woran erinnert mich das nur? Nach ja, wenn man eigene Mailserver betreibt und deren Logs liest, dann stolpert mal ab und zu mal über irgendwas.irgendwasanderes.pphosted.com . Normalerweise bemerkt man das nicht, aber letzte Woche mußte ich so tief in die Kryptoabgründe blicken, daß ich Euch das nicht ersparen kann 😀

SMTP: pphosted.com trifft auf moderne SSL-Technik

DISCLAIMER: Diese Geschichte ist wahr und kann jederzeit bewiesen werden. Sie erhebt aber keinen Anspruch auf Vollständigkeit. Teile der betroffenen Infrastruktur könnten auch anders ausgestattet sein. 

Ok, nach dem das gesagt wurde… Hammertime! 😀

Frage: Was passiert, wenn ein Mailserver von *****************.pphosted.com auf einen OpenSSL 3 Mailserver im Jahre 2024 trifft?
Antwort: Eine Weile lang kommen verschlüsselte Emails, dann nur noch Klartextmails 😀

Ihr wisst ja, daß ich bei einem Hoster arbeite und deswegen viel mit Emails und Mailservern zu tun habe. Letzte Woche bekommen wir von einem Kunden ein Ticket rein, er bekäme keine Emails mehr von einem wichtigen Partner. Dieser Partner würde jetzt immer eine Meldung bekommen, daß er nicht verschlüsseln würde.

Die Fehlermeldung gibt unser Mailserver aus, wenn der Empfänger die DSGVO Pflicht aktiviert hat, aber eine Klartextemail von 1980 reinkommt. Sprich: die TLS Verschlüsselung war aus. Das verhindert auf SMTP Ebene die Übertragung der Email selbst, so daß der verschlüsselte Transport nach DSGVO Artikel 32 (1) a  garantiert wird. So weit, so klar.

Keine Updates am Mailserver

Jetzt hatte aber im Dezember noch alles geklappt. Seit Anfang Dezember hatte weder OpenSSL, noch unser Mailserver Exim, ein Update bekommen. Da lag es nahe, daß die Ursache auf der anderen Seite zu suchen ist. Was wir noch nicht wußten war das hier:

TLS error on connection from mx07-00181c02.pphosted.com [185.132.180.43] (SSL_accept): error:0A0000C1:SSL routines::no shared cipher

d.b. der andere Server hat erst probiert eine TLS Verbindung aufzubauen, konnte aber nicht (mehr). Deswegen ist er auf Klartext zurückgefallen, was natürlich ein Konfigurationsfehler ist, weil wenn man in 2024 eine Emails nicht verschlüsselt schicken kann, dann schickt man die gar nicht, sondern meldet den Fehler dem Absender. DSGVO Konform halt. Da unser Server für den Kunden keine Klartextmails annimmt, kam es zu der korrekten Fehlermeldung.

Das was hätten wir geklärt, aber das wieso fehlt noch

Und jetzt wird es richtig gruselig. Über unseren Kunden hatten wir Kontakt zum Support des Partners, der uns nach einigem Hin-und-Her dann in einer Email geschrieben hat, daß wir doch einen der folgenden Cipher ( das sind die eigentlichen Verschlüsselungsalgorithmen ) benutzen sollten ( und das ja nicht würden):

Natürlich findet Ihr hier keine IPs/Namen des betroffenen Kunden oder dessen Partners.

Erstmal die Werbung für Ihren Anbieter 🙂

We always use TLS and millions of email pass through our email gateways and no one reported the similar issue, it appears that issue at the other end only.

Hence we have opened a case with Proofpoint support to share more details on this incident .

Regards,
********* ***

Dann diese Email:

As checked with Proofpoint (************’s email hygiene solution), it appears that there is no common cipher from recipient end during TLS negotiation.

Below are Proofpoint supported cipher list which recipient needs to ensure that they have one of them listed in their cipher list:

O CipherList=ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:RC4-SHA:DES-CBC3-SHA

Hence, kindly share the same to recipient IT team and ensure that they support one of the ciphers from the list.

Note: We always use TLS and millions of email pass through our email gateways and no one reported the similar issue.

As no action is pending at Takeda’s end, hence we are proceeding to archive this incident.

Daher kannte ich „PPhosted“ => Proofe Point Hosted 🙂 Die verkaufen den Leuten Appliances, die die in Ihre Serverschränke stecken können, oder wie hier, hosten die Software individuell für den Kunden. So etwas wie Microsoft mit Office 365 auch macht. Software als Service, Ihr kennt das bestimmt.

Die Cipherliste

Werfen wir mal einen Blick in die Liste der „validen“ Cipher die uns in der Email gegeben wurde:

ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:RC4-SHA:DES-CBC3-SHA

Wer von Euch passendes Kryptovorwissen hat, der hat schon längst angefangen zu lächeln, zurecht ;). z.B. ist der „DES-CBC3-SHA“ Cipher schon bei TLS 1.0 aka SSLv3 dabei gewesen, also sagen wir mal, dieser Retner ist sehr rüstig 😉

Mehr Infos zu Ciphersecurity gibt hier: ciphersuite.info

Aber „ECDHE-RSA-AES256-GCM-SHA384“ ist ein ganz gängiger TLS 1.2 Cipher, gegen den nichts zu sagen ist. Was fällt uns noch auf? Dazu müßt Ihr erstmal wissen, wie so ein Ciphername aufgebaut ist: (mehr Info)

{KEX}-{AUTH}-{SESSIONCIPHER}-{TYPE}-{HASHALGO}-{HASHSIZE}

In unserem Fall:

KEX = KeyExchange => ECDHE => EllipticCurve Diffie-Hellmann
AUTH = Authentication Algorithm in Handshake => RSA
SESSIONCIPHER = der eigentliche Algo => AES256

Der Rest ist für das Problem egal. Wenn Ihr mal die Liste oben durchseht, dann sind das alles RSA basierte Cipher. Jetzt wißt Ihr vielleicht noch nicht, daß RSA auf dem absteigenden Ast ist, was Krypto betrifft, weil  der Algo ist 1970 entworfen worden und braucht heute Keylängen von 16k um „sicher“ zu sein ( abhängig von Anwendungfeld ). Die Länge ist blöd, der Energieeinsatz ist groß, und die Berechnungen dauern länger, als wenn man EllipticCurves benutzen würde.  u.a. hat Fedora RSA aus der OpenSSH Defauleinstellung verbannt, vermutlich weil OpenSSH das gemacht hat. OpenSSL wirds ähnlich handhaben und sogar Lets Encrypt hat RSA als Default Type für die ausgestellten Zertifikate umgestellt.

Kurzfassung: RSA ist tod.

Jetzt gibt es genug Leute die noch auf RSA setzen, aber wie das so mit Untoten ist, die nerven ne Weile 😉

Um es zu verstehen, ist wichtig, wie Exim (mit Fedora) funktioniert. Die Verschlüsselung der Verbindung wird von OpenSSL durchgeführt, Exim fungiert hier nur als Vermittler. Deswegen kommen OpenSSL Fehlermeldungen direkt durch. Der logische erste Schritt ist dann, sich mal anzusehen ob OpenSSL die Cipher aus der Liste noch anbietet:

$ openssl ciphers liefert:
TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES256-CCM:AES128-GCM-SHA256:AES128-CCM:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES256-CCM:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-CCM:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:PSK-AES256-GCM-SHA384:PSK-CHACHA20-POLY1305:PSK-AES256-CCM:PSK-AES128-GCM-SHA256:PSK-AES128-CCM:PSK-AES256-CBC-SHA:PSK-AES128-CBC-SHA256:PSK-AES128-CBC-SHA:DHE-PSK-AES256-GCM-SHA384:DHE-PSK-CHACHA20-POLY1305:DHE-PSK-AES256-CCM:DHE-PSK-AES128-GCM-SHA256:DHE-PSK-AES128-CCM:DHE-PSK-AES256-CBC-SHA:DHE-PSK-AES128-CBC-SHA256:DHE-PSK-AES128-CBC-SHA:ECDHE-PSK-CHACHA20-POLY1305:ECDHE-PSK-AES256-CBC-SHA:ECDHE-PSK-AES128-CBC-SHA256:ECDHE-PSK-AES128-CBC-SHA:RSA-PSK-AES256-GCM-SHA384:RSA-PSK-CHACHA20-POLY1305:RSA-PSK-AES128-GCM-SHA256:RSA-PSK-AES256-CBC-SHA:RSA-PSK-AES128-CBC-SHA256:RSA-PSK-AES128-CBC-SHA

ok, also unser OpenSSL arbeitet noch mit dem Cipher, auch wenn RSA nicht mehr die erste Wahl ist. Ist auch ok, man muß ja nehmen, was andere anbieten.Das war es also nicht die Ursache. Ich nehme Euch mal durch 4 Stunden Debuggen mit.

Erstmal testen, ob der Cipher überhaupt noch geht:

$ openssl s_client -connect HOSTNAME:25 -starttls smtp -tls1_2 -cipher ECDHE-RSA-AES256-GCM-SHA384
CONNECTED(00000003)
000E2F7FCA7F0000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:ssl/record/rec_layer_s3.c:1586:SSL alert number 40

Oh Scheisse, der Cipher geht tatsächlich nicht mehr. (Wieso steht da übrigens nicht.)

$ openssl s_client -connect HOSTNAME:25 -starttls smtp -tls1_2 -cipher ECDHE-ECDSA-AES256-GCM-SHA384
CONNECTED(00000003)

New, TLSv1.2, Cipher is ECDHE-ECDSA-AES256-GCM-SHA384

„HMM… EllipticCurve geht also, aber RSA geht nicht mehr, was aber vorher ging.???“

Also habe ich unseren Cluster gescannt und alle, außer diesem Host klappten mit RSA, nur der nicht.  Daraufhin habe ich mir einen Testserver gesucht und alles verglichen, was an konfigs und software so da war.

Vielleicht haben wir ja Einstellungen in Exim die RSA ausschließen? Nein, weil ging ja im Dezember noch und OpenSSL und Exim hatte keine Updates.

Gab es Änderungen in der Systemkonfiguration über andere Pakete, z.b. GNUTLS? Nein, keine Updates.

Hat sich die systemweite Crypto-Policy vielleicht umgestellt, weil ein Timer abgelaufen ist und RSA deaktiviert wurde (siehe OpenSSH Änderung).  Auch nichts, und das zu durchsuchen und zu verstehen, wie das wie zusammenhängt, hat den Großteil der Zeit gekostet. Langsam wurde es eng.

Ok, Testserver mal neustarten, vielleicht gibt es da einen Hinweis? Nein…….oh Scheisse, jetzt geht der Testserver auch nicht mehr. Also mit STRACE nachgesehen was der an Files, Libs usw. lädt bzw. nicht mehr lädt. Sehr viele spannende Infos könnte ich auch da geben, aber dann schreibe ich übermorgen noch dran 😉

Der Funken vor dem Licht am Endes des Tunnels

Am Ende habe ich einen Hilferuf an die Eximmailingliste geschickt, und da kam dann der berühmte Funken der ersten Erkenntnis als Frage: „Hast Du eigentlich RSA oder EC Zertifikate im Einsatz?

Ich hatte die ganze Zeit so einen Verdacht… der Server war am 29.12. einmal neugestartet worden. Dabei zieht sich der Exim die Zertifikate rein und solange der läuft, lädt er die nicht nach. Das Zert war aber schon einige Tage vorher verlängert worden, und danach hat es nachweislich noch funktioniert… weil der Server sich das Zert nicht neu eingelesen hat… weswegen man irrtümlich davon ausgehen mußte, daß keine Kausalität bestand. Die wurde erst mit dem Neustart hergestellt 🙁

Das erklärt aber noch nicht, wieso andere uns weiter Emails schicken können und nur pphostet nicht mehr!

Um das zu klären, muß man grob wissen wie der Schlüsselaustausch bei TLS funktioniert:

Jeder Server gibt die Liste Ciphern bekannt, die er unterstützt, vom Stärksten zum Schwächsten akzeptierten Cipher. Dann wird abgeglichen, welcher Cipher bei beiden der stärkste ist und der wird genommen, außer, und das war mir nicht bewußt, das Schlüsselmaterial hat was dagegen.

EC vs RSA

Wenn man ein EC Zertifikat hat, kann man damit keinen RSA Cipher verwenden. Nun bietet unser Server EC und RSA Cipher an, weil er das kann, die andere Seite kann aber keine EC Cipher und deswegen kommt keine Verbindung zu Stande, wenn man ein EC Zert hat….. oh yes.. Let’s Encrypt hat uns ein EC Zert gebaut, weil wir, wieso auch, nicht auf RSA bestanden hatten.

Das ist aber in 2024 nicht wild, da kann jede Kryptosuite und jeder Mailserver EC.. oh nein!!!

PPHOSTED ist im Jahr 2015 gefangen

Hier eine Liste (Zufällig ausgewählt) mit Ciphern die mit pphosted Servern ausgetauscht wurden:

remote_smtp H=mx07-0019ad02.pphosted.com [91.207.212.232] X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=yes C=“250
remote_smtp H=mx07-003d6e01.pphosted.com [185.132.181.218] X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=yes C=“250
remote_smtp H=mx08-003d6e01.pphosted.com [185.183.29.223] X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=yes C=“250
remote_smtp H=mx0a-0021cb01.pphosted.com [148.163.148.203] X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=yes C=“250
remote_smtp H=mx0a-0023b801.pphosted.com [148.163.149.109] X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=yes C=“250
remote_smtp H=mx0b-001dcc01.pphosted.com [148.163.159.10] X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=yes C=“250
remote_smtp H=mx0b-0021cb01.pphosted.com [148.163.152.203] X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=yes C=“250

Alles RSA Cipher und jetzt testen wir die Server mal, ob die vor oder nach 2018 leben mit:

openssl s_client -connect $serverip:25 -starttls smtp -tls1_3

Ergebnis: (irrelevante Daten entfernt)

servername 91.207.212.232
CONNECTED(00000003)
New, (NONE), Cipher is (NONE)
Compression: NONE
Expansion: NONE
servername 185.132.181.218
CONNECTED(00000003)
New, (NONE), Cipher is (NONE)
Compression: NONE
Expansion: NONE
servername 185.183.29.223
CONNECTED(00000003)
New, (NONE), Cipher is (NONE)
Compression: NONE
Expansion: NONE
servername 148.163.148.203
CONNECTED(00000003)
New, (NONE), Cipher is (NONE)
Compression: NONE
Expansion: NONE

Fazit: Die leben alle vor 2018!!

Was habe ich gemacht?

Ich habe geprüft, ob die Server mit TLS 1.3 eine Verbindung aufbauen können. Können Sie das nicht, sind die auf einem technischen Stand von vor 2018, als TLS 1.3 eingeführt wurde. Das kann durch eine veraltete Konfiguration so sein, oder weil jemand vergessen hat, die Verschlüsselungssoftware auf den neuesten Stand zu bringen.

Jetzt rechnet mal, wie lange ist 2018 her? 🙂

Machen wir den Test doch mal bei uns mit OPENSSL V3 2024 im Rücken :

$ openssl s_client -connect s113:25 -starttls smtp -tls1_3
CONNECTED(00000003)

New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 4096 bit

So muß das aussehen 🙂

Fazit

Wir stellen fest:

– pphosted Server können kein TLS 1.3
– pphostet Server können keine TLS 1.2 ECDSA Cipher (siehe Liste aus der Email oben)
+ Sie können aber schon ECDHE Keyexchanges

Das zusammen nordet den technischen Stand ungefär 2015, 2016 ein, eher 2015. 2008 als TLS 1.2 auf den Markt kam, gabs EC noch nicht, deswegen müssen da seitdem ein paar Updates gemacht worden sein. EC wurde erst im Februar 2011 in RFC 6090 definiert.

Ich hab hier übrigens eine Liste mit 366 pphosted Servern, alle das gleiche Ergebnis. Das sind sicherlich nicht alle, aber die Stichprobenmenge erlaubt einen wahrscheinlichen Schluß: Mit aktueller Verschlüsselung haben die es nicht so 😀

„Was macht Proofe Point eigentlich so beruflich?“ werdet Ihr fragen:

„Protect your people from advanced email attacks and identity-based threats. Defend sensitive data from theft, loss and insider threats.

Proofpoint Named a Leader in The Forrester Wave™: Enterprise Email Security, Q2 2023
“ Quelle: https://www.proofpoint.com/us  | 2024-01-09-13:00:00

Ich überlasse es Euch zu urteilen 😉

WIe haben wir eigentlich deren Out-Dated-Mailserver wieder bediehnt? Da kommen die Untoten wieder ins Spiel. Noch ist RSA  mit großen Schlüssellängen nicht gebrochen worden, auch nicht vom GoogleQuantencomputer, also vagabundiert RSA jetzt ein Jahr lang als Legacy auf unserem Mailserverzertifikat rum, nur auf dem. Man kann Lets Encrypt glücklicherweise sagen, daß es RSA ausstellen soll. Aber länger als ein weiteres Jahr, wird es die hoffentlich nicht geben. Vielleicht beendet ja LE den Support und dann gehts auch notgedrungen schneller.

Wenn die bei Proofe Point nichts ändern, werden die danach 50% Ihrer Kunden nichts mehr mailen können 😀 Der Tag kann gar nicht früh genug kommen, wenn Ihr mich fragt. Die ziehen da den Leuten Geld aus der Tasche und dann so etwas.

Ihre Paketzustellungsnachricht Nr#34632900-371

Nach langer Zeit haben wir heute mal wieder eine Spam aus der beliebten Serie: „Einmal mit Profiverbrechner arbeiten“.

„Ihre Paketzustellungsnachricht Nr#34632900-371“

Man kennt das ja: man kauft im Onlineshop eine Sache und bekommt vom Lieferdienst eine Trackingemail, oder, in letzter Zeit eher weniger, die Nachricht mal die Tür zu öffnen, weil das Paket gleich da ist. In der Email ist ein Link zur Trackingseite drin, zusammen mit der Paketnummer und noch son paar Daten.

Das machen sich Betrüger natürlich gern zu nutze um Emailadressen zu verifizieren, Daten abzufragen, die die nichts angehen, und Malware runterzuladen. So eine Email haben wir hier:

Darstellung der Spam in Thunderbird. Es sind 2 Texte zu "Verifikation der Email" vorhanden. Die Qualität der DPD Paketverfolgung ist aber so schlecht, daß nichts zu erkennen ist.Wie man da unschwer erkennen kann, sind HTML Emails echt blöd ohne Bilder 😉 Allerdings belingt die Täuschung als echte Mail schon nicht, weil die Deko in Form von externen Bildern nicht geladen wird von Thunderbird. Da fällt es dann leicht den Fake sofort zu erkennen.

Es fängt bereits mit dem Absender „contactdpdPaket….@[domain]“ an. Es sollte wohl ein DPD Simulation werden 🙂  Wenn man natürlich zu blöd ist sein Spamtemplate richtig auszufüllen: „contactdpdPaket….@[domain]“ wundert es nicht, daß so gar keine Zahl dieser Email übereinstimmt. Das ist einfach eine richtig schlechte Fälschung.

Schauen wir uns mal die Header an:

Return-path: <reply@bergbauernwagal.de>
Envelope-to: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Delivery-date: Thu, 07 Dec 2023 06:59:59 +0100
Received: from h3013040.stratoserver.net ([85.214.39.248] helo=artuner.online)
	by XXXXXXXXXXXXXXXXXXXXXXX with esmtp (Exim 4.96.2)
	(envelope-from <reply@bergbauernwagal.de>)
	id 1rB7QT-0041w7-0i
	for XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;
	Thu, 07 Dec 2023 06:59:59 +0100
Date: Thu, 07 Dec 2023 05:58:11 +0000
Message-Id: <538561069336279.0.CNE0599619157@artuner.online>
To: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
From: =?UTF-8?B?QmVzdGVsbHVuZy1WZXJzYW5k?= <contactdpdPaket202312067id1360227332@[domain]>
Content-Type: text/html; charset="UTF-8"
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject:  =?UTF-8?B?SWhyZSBQYWtldHp1c3RlbGx1bmdzbmFjaHJpY2h0IE5yIzM0NjMyOTAwLTM3MT8=?=

Jetzt macht die Analyse irgendwie keinen Spaß, weil unser Spamassassin das schon gemacht hat. Daher erteile ich dem jetzt das Wort:

FROM_LOCAL_HEX From: localpart has long hexadecimal sequence

Damit ist „contactdpdPaket202312067id1360227332@“ gemeint.

SPF_NONE SPF: sender does not publish an SPF Record

Ok, für „@[domain]“ kann man keinen SPF haben, da müßte also gleich eine andere Regel sein: illegal domainname.

PDS_OTHER_BAD_TLD Untrustworthy TLDs  [URI: artuner.online (online)]

Ganz offensichtlich ist .online als TLD bei Spammern sehr beliebt 😉

HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different

ja, „@[domain]“ und „@bergbauernwagal.de“ sind zwei unterschiedliche Domains 🙂

URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: artuner.online]

Also hat schon jemand die Domain der Links, die sich in der Email befinden, ihr aber oben nicht sehen könnt, in eine Blockliste eingetragen.

FROM_EXCESS_BASE64 From: base64 encoded unnecessarily

Damit ist u.a. das hier gemeint:

Subject: =?UTF-8?B?SWhyZSBQYWtldHp1c3RlbGx1bmdzbmFjaHJpY2h0IE5yIzM0NjMyOTAwLTM3MT8=?=
Subject: Ihre Paketzustellungsnachricht Nr#34632900-371

Aufgrund der Zeichen war das nicht nötig, weil keine Umlaute drin waren.

T_REMOTE_IMAGE Message contains an external image

In der Email stecken einige HTML Image Anweisungen wie diese:

<img border="0" src="http://artuner.online/img/<HASHWERT>" alt="logo" class="logo" />

Diese Bilder, wenn das überhaupt Bilder waren, lädt Thunderbird nicht selbst. Das muß immer der Benutzer erlauben. Das ist eine sehr wichtige Grundeinstellung von Thunderbird. Es könnte nämlich auch nur darum gehen, ein Bild zu laden, daß dann in einer Systembibliothek einen Exploit auslöst und so Euren PC hackt.

Diese Email gehört natürlich in unser Trottelarchiv und bei Euch in den Papierkorb.

1 Jahr Blog hinter dem Webcache

Wir haben hier natürlich für den November 2023 nur einen halben Monat, weil die Stats vom 13. des Monats sind. Eine kleine Rückschau zur Technik gibt es auch noch.

Sie verpassen nichts, sind nur Zahlen pro Monat mit einigen Balkendiagrammen.

1 Jahr Blog Zugriffszahlen

Einfach nur Zahlen veröffentlichen kann jeder, deswegen ein kleiner Bericht aus dem Jahr des Caches.

Aus dem Leben eines Webcaches

Die meiste Zeit lief das Cache problemlos, sonst hätte ich es auch nicht benutzt. Die Vorteile liegen klar auf der Hand, weil die Zugriffszeiten massiv verbessert wurden. Allerdings stieg auch der Komplexitätsgrad der Serverkonfiguration an:

– DNS Proxies
– Backend-Webserver
– Fake DNS Server
– Cacheserver

Ohne groß ins Detail zu gehen, weil mit irgendwas muß man ja sein täglich Brot verdienen ;), kommen wir zu einer Besonderheit der Konstruktion: Der Backendserver hat eine andere IP als der Cacheserver.

Weil das so ist, muß man dem Cache irgendwie mitteilen, daß eine aufgerufene Domain eine ganz andere IP hat. Dazu benutzt man einen FakeDNS Server. Der war in Perl geschrieben und besteht im Prinzip nur aus einer einzigen Schleife: „Wenn wer fragt, sagt diese IP auf“. Das dumme daran ist, es ist Perl. Perl fällt aus bzw. für den Fragenden kommt einfach ab und zu mal keine Antwort.

„Keine Antwort“ meint aber im Cache: „Hey, der DNS Server ist tod.“   Was macht ein Cache wenn der Server „tod“ ist? Genau, es entfernt den DNS aus der Liste der aktiven DNS Server. Ziemlich blöd, wenn das nur ein Server ist 🙁 Also haben wir zwei konfiguriert und das Cache sollte Roundrobin machen. Machts aber nicht, auch wenn es in der Anleitung steht 😉

d.h. ein dritter FakeDNS mußte her und da hörte der Spaß auf. Statt noch ein Perlscript zu starten, wurde named als Forwarder konfiguriert. Das antwortet jetzt immer stabil  auf Anfragen, weil es nur einmal am Tag nachfragt und geht so mit den arbeitsscheuen Perlscripten wohlwollend um.

Warum Perlscripte?

Weil um eine einzige IP auszugeben, ein vollwertiger PowerDNS nebst Datenbank vielleicht ein bisschen zu viel wäre. Dachte ich. Heute tendiere ich dazu mal entsprechend umzubauen, weil das den Komplexitätsgrad verringert und die Stabilität erhöht. Der Preis wird eine Datenbank basierte Pflege beinhalten, statt einfach ‚echo „domain.de 123.45.67.89“ >> fakedomainliste.txt‚ zu benutzen. Ein kleiner Preis, im Vergleich zum Stress durch die Ausfälle.

Wenn Ihr also plant WordPress mit einem Cache zu betreiben, dann macht es gleich richtig.

Praktischerweise konnte man aus diesem privaten Beispiel sehr viel für unsere Firma übernehmen und jetzt haben wir ein miniCloudflare, nur ohne Abhängigkeit von einer US-Firma \o/  Das reduziert die Last und macht Kunden glücklich.