Todo:
* Wie aktualisiert man ''/var/spool/postfix/etc/ssl/certs/ca-certificates.crt''? Wird das bei Debian genutzt?
* DH-Parameter einbinden ((''smtpd_tls_dh1024_param_file = ${config_directory}/dhparams.pem'' in /etc/postfix/main.cf))
====== Vorraussetzungen ======
* Einfache [[postfix]] Installation
* [[ssl]] Zertifikat erzeugt
* Korrektes [[bind|DNS]]
* Korrekte [[lpi1:zeitserver|Uhrzeiten]] auf allen Rechnern
====== SSL / TLS für Postfix ======
===== Server-Zertifikat für verschlüsselte Verbindungen =====
Wie in [[lpi2:ssl]] beschrieben Server-Zertifikat bauen
cd /etc/ssl
cp /root/server-ssl/servercert.pem certs/
cp /root/server-ssl/serverkey.pem private/
cp /home/ca/ca.*/cacert.pem certs/
chmod 640 private/serverkey.pem
chgrp ssl private/serverkey.pem
=== openSuSE 12.1 ===
== postfix Benutzer Zugriff auf ssl-Verzeichnis erlauben ==
gpasswd -a postfix ssl
==== Postfix konfigurieren ====
postconf -e "smtpd_tls_cert_file = /etc/ssl/certs/servercert.pem"
postconf -e "smtpd_tls_key_file = /etc/ssl/private/serverkey.pem"
postconf -e "smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem"
postconf -e "smtpd_use_tls = yes"
oder besser wie von [[https://ssl-config.mozilla.org/#server=postfix&config=intermediate|Mozilla]] vorgeschlagen ((
# generated 2022-09-23, Mozilla Guideline v5.6, Postfix 3.5.13, OpenSSL 1.1.1n, intermediate configuration
# https://ssl-config.mozilla.org/#server=postfix&version=3.5.13&config=intermediate&openssl=1.1.1n&guideline=5.6
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /path/to/signed_cert_plus_intermediates
smtpd_tls_key_file = /path/to/private_key
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_ciphers = medium
# curl https://ssl-config.mozilla.org/ffdhe2048.txt > /path/to/dhparam
# not actually 1024 bits, this applies to all DHE >= 1024 bits
smtpd_tls_dh1024_param_file = /path/to/dhparam
tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
tls_preempt_cipherlist = no
))
==== testen ===
=== netcat ===
netcat localhost smtp
EHLO asdf
..
250-STARTTLS
=== openssl ===
openssl s_client -starttls smtp -CApath /etc/ssl/certs -connect localhost:25
=== swaks ===
swaks -f me.example.com -t you.example.com -tls -s 127.0.0.1
===== DANE =====
DNS Resource Record erzeugen:
postfix tls output-server-tlsa
oder
postfix tls output-server-tlsa /var/lib/dehydrated/certs/example.com/privkey.pem
Den TLSA Resource Record muss man immer neu erzeugen, wenn der öffentliche Schlüssel des Zertifikats sich ändert. TODO: certbot oder dehydrated so aufrufen, dass der bisherige Schlüssel wieder verwendet wird.
... und im DNS hinterlegen.
====== Dokus & Links ======
* http://www.state-of-mind.de/vortraege/
* http://www.postfix.org/TLS_README.html
* http://sys4.de/de/blog/2013/08/14/postfix-tls-forward-secrecy/
* https://blog.tausys.de/2016/07/13/letsencrypt-zertifikate-fuer-dovecot-und-postfix/