Ansible Windows Server UNREACHABLE!

Auf einmal bekam ich beim Zugriff auf einen meiner Windows-Server via Ansible die folgende Fehlermeldung:

user@ansible:~/ansible$ ansible -m win_ping server.example.com
server.example.com | UNREACHABLE! => {
"changed": false,
"msg": "credssp: ('Connection aborted.', error(104, 'Connection reset by peer'))",
"unreachable": true
}

Auf dem Server nochmal das von Ansible zur Verfügung gestellte Konfigurationsscript durchlaufen lassen hat nichts gebracht.

Beim Durchschauen des Scripts fiel mir dann auf dass die Standard-Gültigkeitsdauer für das WinRM-Zertifikat 1095 Tage beträgt. Der Server war tatsächlich schon etwas länger in Betrieb.

Die Lösung war dann das Zertifikat für WinRM zu erneuern:

powershell.exe -ExecutionPolicy ByPass -File .\ConfigureRemotingForAnsible.ps1 -EnableCredSSP -ForceNewSSLCert

Danach funktionierte die Verbindung wieder einwandfrei.

user@ansible:~/ansible$ ansible -m win_ping server.example.com
server.example.com | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

SFTP mit Public Key Authentifizierung und Total Commander auf Android

Für Total Commander unter Android gibt es ein SFTP-Plugin, mit dem man per SSH auf das Dateisystem eines Servers zugreifen kann. Allerdings verlangt das Plugin den Private-Key nicht im unter Linux üblichen OpenSSH-Format, sondern im unter Windows üblichen PEM-Format.

Ich habe für mein Android-Handy einen neuen Schlüssel erstellt. Das habe ich auf meinem Linux Laptop gemacht, unter Windows geht das mit WSL genauso.

ssh-keygen -C "gerald@xperia" -f xperia -m pem

Danach habe ich den neuen Key auf den Server kopiert.

ssh-copy-id -i xperia pi@wohnzimmer

Dann habe ich die private Key-Datei umbenannt, so dass sie die Endung .pem hat (> xperia.pem, Total Commander listet nur Dateien mit der Endung .pem auf) und sie auf das Handy kopiert. Wie man das macht bleibt jedem selbst überlassen, ich habe Nextcloud verwendet. Erwähnenswert ist hier nur, dass ich in den SFTP-Einstellungen nur auf den internen Speicher meines Handys zugreifen konnte, nicht auf die SD-Karte, daher habe ich die xperia.pem einfach im Root-Verzeichnis des Geräts abgelegt.

Dann konnte ich den private Key in der Verbindung im Total Commander auswählen.

Danach wurde ich trotzdem noch beim Verbinden nach einem Passwort gefragt. Das konnte ich jedoch unterbinden indem ich einfach ein falsches Dummy-Passwort gesetzt habe, danach hat die Verbindung mit dem private Key direkt funktioniert.

Acknowledgement Link funktioniert mit Zabbix 5 nicht mehr

Nach dem Upgrade auf Zabbix 5 funktionierte der Acknowledgement Link aus den Zabbix-Emails nicht mehr. Ich bekam nur die Fehlermeldung

Class not found for action acknowledge.edit

In den Upgrade Notes auf 5.0 findet sich die Erklärung:

Changed acknowledgement screen URL
URL parameters of the problem update (acknowledgement) screen have changed. For example, if previously the page parameters were:

?action=acknowledge.edit&eventids[]={EVENT.ID}

in the new version they are:

?action=popup&popup_action=acknowledge.edit&eventids[]={EVENT.ID}

Also, einmal in den Operations der Actions den Link anpassen, und schon geht es wieder.

Apache gegen mehrere Verzeichnisse authentifizieren

Ich verwalte einen Server der gegen zwei unterschiedliche Verzeichnisse autorisiert, einmal gegen Active Directory und einmal gegen einen lokalen LDAP-Server. Im lokalen LDAP-Server werden Accounts von Projektpartnern angelegt die nicht direkt ins AD sollen.

Dazu wurde bisher gegen Atlassian Crowd authentifiziert, da die Applikationen auf dem Server hauptsächlich von Atlassian sind und ebenfalls gegen Crowd authentifizieren.

Der Server ist nun etwas in die Jahre gekommen und muss dringend erneuert werden. Ein Problem dabei ist, dass der Crowd Connector für Apache seit 2014 End of Life ist, mit Apache 2.4 nicht mehr funktioniert, und mich die von der Community weiterentwickelten Projekte nicht ausreichend überzeugen dass ich sie auf einem wichtigen Produktivserver einsetzen möchte.

Auf meiner Suche nach Alternativen bin ich mehr oder weniger zufällig darüber gestolpert, dass man in der Apache Config Aliase für AuthProvider anlegen kann. Nach einem bisschen herumprobieren war ich dann mit der folgenden Konfiguration erfolgreich:

LDAPConnectionPoolTTL 0
<AuthnProviderAlias ldap ad>
AuthLDAPBindDN "user@example.com"
AuthLDAPBindPassword "secret"
AuthLDAPUrl ldaps://dc.example.com/dc=ad,dc=example,dc=com?sAMAccountName?sub?(&(objectclass=user)(!(objectclass=computer)))
LDAPReferrals Off
</AuthnProviderAlias>
<AuthnProviderAlias ldap local-ldap>
AuthLDAPBindDN cn=crowd,dc=server,dc=example,dc=com
AuthLDAPBindPassword secret
AuthLDAPURL ldap://server.example.com/dc=server,dc=example,dc=com?mail?sub?(objectclass=inetorgperson)
</AuthnProviderAlias>
<Location "/">
AuthName "Geschützter Bereich"
AuthType Basic
AuthBasicProvider ad local-ldap
<RequireAny>
Require valid-user
Require local
Require ip 1.2.3.4
</RequireAny>
</Location>

Hier definiere ich zwei AuthProvider, die ich dann hinterher im Location Block angeben kann. Beim AD ist die Direktive LDAPReferrals Off wichtig, über LDAPConnectionPoolTTL hatte ich bereits gebloggt.

Die Authentifizierung wird an die Atlassian-Applikationen durchgereicht, die direkte Kommunikation mit Crowd ist damit nicht mehr nötig.

Timeouts mit Apache/Windows/LDAP/Active Directory

Ich hatte eine ganze Zeit lang versucht ein Timeout-Problem bei einem Apache-Server zu analysieren. Das Muster sah folgendermaßen aus:

Bei jedem ersten Zugriff auf den Server fragte der Server sofort nach Benutzernamen und Passwort, danach wartete der Server exakt eine Minute bevor er die Antwort sendete.

Timeouts mit Apache/Windows/LDAP/Active Directory weiterlesen

Tastaturlayout mit Strg+Umschalt wechseln

Seit Jahren ärgere ich mich darüber dass man nicht nur mit Windows+Leertaste zwischen mehreren Tastaturlayouts umschalten kann, sondern zusätzlich auch noch mit Ctrl+Shift. Diese Tastenkombination erwische ich einfach viel zu oft aus versehen beim Programmieren.

Das einzige, was die Umstellung signalisiert, ist eine kurze Einblendung am rechten Bildschirmrand, die aber nur so lange da ist wie man die Tasten auch gedrückt hat. Beim schnellen Tippen registriert man das unter Umständen gar nicht und wundert sich dann wieso auf einmal $ nicht mehr da ist wo es hingehört.

Tastaturlayout mit Strg+Umschalt wechseln weiterlesen

Windows Editor speichert Umlaute fehlerhaft

Nachdem ich unser billiges China-Tablet mit Windows 10 neu aufgesetzt hatte tauchte dort ein kurioses Phänomen auf. Wenn man im normalen Editor von Windows Umlaute tippte, und die Datei mit der Standard-Codierung ANSI speicherte, bekam man die folgende Fehlermeldung:

Diese Datei enthält Zeichen im Unicode-Format, die verloren gehen, wenn die Datei im ANSI-Textformat gespeichert wird.
Windows Editor speichert Umlaute fehlerhaft weiterlesen

HAProxy für Active Directory LDAP

Prinzipiell ist Active Directory auf Redundanz ausgelegt, mehrere Domain Controller sorgen dafür dass immer einer verfügbar ist. AD nutzt hierfür allerdings SRV-DNS-Records, die von Clients die per LDAP auf das Active Directory zugreifen in der Regel nicht beachtet werden. Das hat den Effekt, dass Anwendungen (wenn sie überhaupt die Möglichkeit bieten mehrere LDAP-Server anzugeben) öfter mal stocken wenn der DC der als erstes eingetragen ist nicht erreichbar ist. In der Regel warten sie dann auf einen Timeout bis sie den nächsten DC probieren. Und das bei jeder Abfrage.

HAProxy für Active Directory LDAP weiterlesen

Facebook-Seiten deaktiviert

Der Europäische Gerichtshof hat ein sehr unschönes Urteil bestätigt, das unter anderem die folgende Auswirkung hat:

Der Betreiber einer Facebook-Fanpage ist gemeinsam mit Facebook für die Verarbeitung der personenbezogenen Daten der Besucher seiner Seite verantwortlich.

Details dazu z. B. bei e-recht24.de oder auch bei Heise.

Da ich keine Lust habe Zeit und Geld in mögliche Abmahnungen zu investieren habe ich erstmal sämtliche Facebook-Seiten deaktiviert. Ich gehe grundsätzlich davon aus, dass Facebook darauf reagieren und eine Möglichkeit einbauen wird Besuchern entsprechende Meldungen über die Daten, die erhoben werden, anzuzeigen, in der Vergangenheit haben sie ja auch schon auf ähnliche Urteile reagiert. Aber bis dahin gehe ich auf Nummer sicher, und es gibt erstmal keine Updates mehr auf Facebook.

Änderungen aufgrund der DSGVO

Aufgrund der DSGVO habe ich einige Änderungen an der Website vorgenommen.

Wichtig: Ich bin kein Anwalt, das ist keine Rechtsberatung, das sind nur Auszüge von dem was ich zu dem Thema mitgenommen habe.

Eine sehr schöne Übersicht und viele Tipps dazu bietet dieser Beitrag von Annette Schwindt, an dem ich mich stark orientiert habe.

Vieles davon hatte ich bereits umgesetzt, hier jetzt die Änderungen und Neuerungen:

Für den Cookie-Hinweis nutze ich das Plugin Cookie Law Info.

Ich habe das Plugin Remove IP eingerichtet. Ist zwar etwas in die Jahre gekommen, funktioniert aber immer noch einwandfrei. Jetzt wird bei allen Kommentaren die IP-Adresse 127.0.0.1 gespeichert.

Die IP-Adressen von vorhandenen Kommentaren habe ich per SQL-Query ebenfalls auf diese Adresse gesetzt.

UPDATE `wp_comments` SET comment_author_IP='127.0.0.1';

Das Plugin Comment notifier habe ich deaktiviert. Auf die Benachrichtigungen zu neuen Kommentaren müssen die Leser leider in Zukunft verzichten.

Das ohnehin inzwischen zu einem “Premium-Plugin” gewordene WP-Spamshield habe ich wieder durch das “mit den europäischen Datenschutzstandards konforme” AntiSpam Bee ersetzt. Hatte ich früher schon mal genutzt, war aber nicht so ganz zufrieden damit. Mal schauen wie es sich jetzt schlägt.

Das Plugin WP GDPR Compliance fügt eine Einverständniserklärung zum Kommentar-Formular hinzu.

Für die Darstellung der Avatare bei den Kommentaren habe ich bisher Gravatar genutzt, das habe ich abgeschaltet.

Es gibt jetzt eine Datenschutzerklärung, erstellt mit dem Datenschutz-Generator von RA Dr. Thomas Schwenke. Der Link dorthin und zum Impressum ist immer an der gleichen Stelle.

Insgesamt müssen die Leser leider auf ein paar Sachen verzichten die vorher gingen. Bedankt euch bei der EU und unserer Bundesregierung, die es nicht auf die Reihe bekommen hat, die Öffnungsklauseln in der DSGVO zugunsten ihrer Bürger zu nutzen. Andere Länder haben das ja geschafft.