HowTo: Perfect Forward Secrecy fuer Postfix und Dovecot einrichten

Im Heinlein Support Blog ist beschrieben, wie man sehr einfach Perfect Forward Secrecy fuer Postfix und Dovecot einrichtet. Der Blogeintrag ist unter der folgenden URL zu finden:

Hier noch einmal kurz die Befehle zusammengefasst. Fuer Postfix sind es folgende:

openssl gendh -out /etc/postfix/dh_512.pem -2 512
openssl gendh -out /etc/postfix/dh_1024.pem -2 1024
 
postconf -e "smtpd_tls_dh1024_param_file = /etc/postfix/dh_1024.pem"
postconf -e "smtpd_tls_dh512_param_file = /etc/postfix/dh_512.pem"
postconf -e "smtpd_tls_eecdh_grade = strong"
postconf -e "tls_preempt_cipherlist = yes"
postconf -e "smtpd_tls_loglevel = 1"
postconf -e "smtp_tls_loglevel = 1"
 
postfix reload

Fuer Dovecot muss nur zum verbesserten herausfinden in der /etc/dovecot/conf.d/10-logging.conf das Logging angepasst zu:

login_log_format_elements = "user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k"

Testen kann man es anschliessend mit den folgenden beiden Befehlen:

openssl s_client -starttls smtp -connect mx2.heinlein-support.de:25
openssl s_client -starttls imap -connect imap.heinlein-support.de:143

HowTo: Disable weak RC4 cipher in Firefox, Chromium, Google-Chrome & Internet Explorer

In Firefox kann man das visuell in der Konfiguration machen. Dafuer in der Adresszeile about:config eingeben, bestaetigen, nach rc4 suchen und alle Werte deaktivieren:

Bildschirmfoto vom 2013-11-13 06:34:46

In Chromium und Google-Chrome ist das schon umstaendlicher. Da muessen die zu deaktivierenden Ciphers als Blacklist-Parameter beim Starten uebergeben werden:

chromium-browser --cipher-suite-blacklist=0x0001,0x0002,0x0004,0x0005,0x0017,0x0018,0xc002,0xc007,0xc00c,0xc011,0xc016,0xff80,0xff81,0xff82,0xff83

Die Verfuegbaren Hexcodes gibt es leider nur im Quelltext.

Um RC4 Verbindungen aus Windows heraus, und dadurch auch beim Internet Explorer zu unterbinden muessen die folgenden Registry Werte gesetzt sein:

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersRC4 128/128]
    "Enabled"=dword:00000000
 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersRC4 40/128]
    "Enabled"=dword:00000000
 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELCiphersRC4 56/128]
    "Enabled"=dword:00000000

Weitere Informationen dazu unter „Security Advisory 2868725: Recommendation to disable RC4

Die vom Browser unterstuetzten Cipher Suites werden einem angezeigt, wenn man die folgende Webseite aufruft:

HowTo: Zertifikatsdatei .crt direkt mit Nagios ueberwachen

Bei einem OpenVPN Server besteht das Problem, das sein Zertifikat nicht aktiv von aussen ueberprueft werden kann. Um es dennoch mit Nagios zu ueberwachen muss die .crt Datei auf dem Server direkt ueberprueft und die Informationen zum Nagios Server gepusht werden.

Ich habe das mit dem Shellskript ssl-cert-check (mirror v. 3.27) von prefetch.net geloest.

Das Skript habe ich unter /usr/local/bin/ abgelegt:

cd /usr/local/bin
wget http://prefetch.net/code/ssl-cert-check

Dann gibt es ein Mini-Skript unter /root/skripte/nagios/check_openvpncert.sh, dass das ssl-cert-check Skript aufruft, und die Rueckgabe per NSCA an den Nagios Server pusht:

#!/bin/bash
send_nsca=/usr/sbin/send_nsca
send_nsca_cfg=/etc/send_nsca.cfg
nagioshost=nagios.example.org
host=$1
service=$2
plugin=/usr/local/bin/ssl-cert-check
output=$($plugin -n -x 30 -c /etc/ssl/certs/openvpn.example.org.crt)
rc=$?
echo -e "$hostt$servicet$rct$output" | $send_nsca -H $nagioshost -to 30 -c $send_nsca_cfg
exit 0

Das Mini-Skript selbst wird regelmaessig mit cron aus der /etc/cron.d/nagios-passive aufgerufen:

LANG=C
#
# Regular cron jobs for nagios passive checks
#
 
HOST=openvpn.example.org
 
*/20 *  * * *   root    /root/skripte/nagios/check_openvpncert.sh ${HOST} SSL-Cert_OpenVPN 1>> /dev/null 2>> /dev/null

Und nach der Einbindung als passive Check in Nagios wird auch das Ablaufdatum eines lokalen Zertifikats ueberprueft:

nagiosovpncert