Schlagwort: linux

Courier IMAP: Fehler nach Debian-Update

Nach der Installation mehrerer Debian Major-Updates (Version 10 -> 11 -> 12) war IMAP von manchen Clients nicht mehr nutzbar.

Es kam zu folgender Fehlermeldung im Mail-Log:

Mar 24 23:42:23 $host courier-imaps: ip=[$ip], couriertls: /etc/courier-imap/courier.pem: error:1E08010C:DECODER routines::unsupported

Auf iOS äußerte sich der Fehler mittels folgender Meldung:

E-Mails können nicht empfangen werden
Der Mail-Server „$server“ reagiert nicht. Überprüfe, ob du in den Mail-Einstellungen die richtigen Accountinfos eingegeben hast.
Unable to create a secure connection to the server („Ungültige
Protokollversion“ -9.836).

In einer älteren Microsoft Outlook Version schlug der Abruf der IMAP-Ordner fehl. Zudem blieb Outlook mehrfach beim Start hängen und reagierte nicht mehr.

Ursache war eine veraltete /usr/share/dhparams.pem

Lösung: /usr/share/dhparams.pem löschen und mittels folgendem Befehl neu generieren:

/usr/sbin/mkdhparams

Details & Quellen:

Systemd auf Debian installieren

Um Sytemd auf (älteren) Debian-Systemen zu installieren, folgende Befehle ausführen:

aptitude install systemd systemd-sysv

Nach einem Reboot soll PID 1 auf systemd zeigen. Check via:

ps -f -p 1

Falls hier noch /sbin/init ausgegeben wird, ist das in der Regel ein Symlink zu /lib/systemd/systemd.

Quellen:

Postfix Mail-Relay einrichten

Um von einem Postfix-Mailserver E-Mails über einen anderen Postfix-Server zu leiten, ist folgende Konfiguration notwendig.

Auf dem Server, der das Relay nutzen möchte in der main.cf:

relayhost = [$IP_or_DOMAIN]:25

$IP_or_DOMAIN ist die IP-Adresse oder der Domainname des Relays, welches für die Weiterleitungen genutzt werden soll. (Details zu relayhost)
Die eckigen Klammern sorgen dafür, dass die Nachrichten nicht an den MX-Server der Domain gesendet werden, sondern direkt an die IP des A- bzw. AAAA-Records.

Sind auf dem Mailserver mehrere IP-Adressen konfiguriert, so kann mittels smtp_bind_address definiert werden, welche IP ($IP) für den ausgehenden Mailversand genutzt werden soll (Quelle):

smtp_bind_address = $IP

Achtung bei der Verwendung von Plesk: Hier hilft die Angabe der smtp_bind_address in der main.cf nicht! Es muss stattdessen in der Plesk-Weboberfläche unter „Serverweite E-Mail-Einstellungen“ bei Postausgangsmodus „Über die angegebenen IP-Adressen senden“ und die gewünschte IP ausgewählt werden.

Auf dem Server, der als Relay fungiert:

Bei mynetworks die IP ($IP) des oben beschriebenen, sendenden Mailservers ergänzen.
relay_domains kann leer bleiben, was bedeutet, dass E-Mails aller Domains weitergeleitet werden.

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 $IP
relay_domains =

Puppet 5: Abgelaufene Zertifikate austauschen

Auf dem Puppet Master: Sollten die CSRs nicht mehr vorliegen, diese auf Basis der bisherigen Zertifikate neu erstellen und die alten Zertifikate umbenennen:

root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -x509toreq -in ca/ca_crt.pem -signkey ca/ca_key.pem -out ca/ca_csr.pem

root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -x509toreq -in certs/puppetmaster.example.net.pem -signkey private_keys/puppetmaster.example.net.pem -out certificate_requests/puppetmaster.example.net_csr.pem

root@puppetmaster.example.net:/var/lib/puppet/ssl# mv ca/ca_crt.pem ca/ca_crt.pem_old

root@puppetmaster.example.net:/var/lib/puppet/ssl# mv certs/puppetmaster.example.net.pem certs/puppetmaster.example.net.pem_old

Neue Zertifikate erstellen:

cat > extension.cnf <<_EOT_
[CA_extensions]
basicConstraints = critical,CA:TRUE
nsComment = "Puppet Ruby/OpenSSL Internal Certificate"
keyUsage = critical,keyCertSign,cRLSign
subjectKeyIdentifier = hash
_EOT_
root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -req -days 3650 -in ca/ca_csr.pem -signkey ca/ca_key.pem -out ca/ca_crt.pem -extfile extension.cnf -extensions CA_extensions

root@puppetmaster.example.net:/var/lib/puppet/ssl# openssl x509 -req -days 3650 -in certificate_requests/puppetmaster.example.net_csr.pem -CA ca/ca_crt.pem -CAkey ca/ca_key.pem -CAserial ca/serial -out certs/puppetmaster.example.net.pem

Je Puppet Agent auf dem Server:

puppet ca destroy puppetclient.example.net

Auf jedem Puppet Client (Agent):

rm -r /var/lib/puppet/ssl && puppet agent --test

Je Puppet Agent auf dem Server:

puppet ca list
puppet ca sign puppetclient.example.net

Getestet mit Version 5.5.10
Quelle