Beispiele für Postfix Setups mit SASL für PAM, LDAP etc.
Ubuntu 24.04
# Postfix und LibSASL installieren sudo apt install -y postfix libsasl2-modules sasl2-bin # SASL soll gegen PAM authentifizieren. (lokale User) sudo sed -i 's/^START=.*/START=yes/' /etc/default/saslauthd sudo sed -i 's/^MECHANISMS=.*/MECHANISMS="pam"/' /etc/default/saslauthd sudo systemctl enable --now saslauthd sudo systemctl status saslauthd # Postfix user muss in die SASL Gruppe! sudo adduser postfix sasl # SASL Konfiguration für Postfix erstellen sudo mkdir -p /etc/postfix/sasl sudo tee /etc/postfix/sasl/smtpd.conf >/dev/null <<'EOF' pwcheck_method: saslauthd mech_list: PLAIN LOGIN log_level: 7 EOF # SASL serverseitig einschalten sudo postconf -e "smtpd_sasl_auth_enable = yes" sudo postconf -e "smtpd_sasl_type = cyrus" sudo postconf -e "smtpd_sasl_security_options = noanonymous" sudo postconf -e "broken_sasl_auth_clients = yes" # WICHTIG: Keine TLS-Pflicht für AUTH (sonst ohne Zertifikat kein AUTH) sudo postconf -e "smtpd_tls_auth_only = no" sudo postconf -e "smtpd_use_tls = no" sudo postconf -e "smtpd_tls_security_level = none" # Gegen offenes Relay absichern (nur mynetworks ODER authentifiziert) sudo postconf -e "smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination" # Relay Host konfigurieren. Kein AUTH! Postfix dürfen am Exchange anonym senden. Evtl aendern. sudo postconf -e "relayhost = vie-srv-ex02.d2000.local" #sudo postconf -e "fallback_relay = vie-srv-ex01.d2000.local" # proxy-protocol konfigurieren sudo postconf -e "smtpd_upstream_proxy_protocol = haproxy" sudo postconf -e "smtpd_upstream_proxy_timeout = 5s" sudo postconf -e "postscreen_upstream_proxy_protocol = haproxy" sudo postconf -e "postscreen_upstream_proxy_timeout = 5s" cat <<EOF ### Add this to master.cf and dont forget to add users! smtp inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_upstream_proxy_protocol=haproxy 127.0.0.1:2525 inet n - n - - smtpd -o smtpd_upstream_proxy_protocol= EOF
Die Datei /etc/saslauthd.conf fehlt im ursprünglichen Walkthrough weil sie nur benötigt wird wenn saslauthd mit einem Mechanismus arbeitet der eine eigene Konfiguration braucht – wie z. B. ldap für AD-Authentifizierung.
Im ursprünglichen Setup wird MECHANISMS=„pam“ verwendet. Das bedeutet:
Kein Bedarf für /etc/saslauthd.conf.
Sobald du MECHANISMS=„ldap“ oder rimap oder shadow oder andere Mechanismen verwendest, muss saslauthd wissen, wie es sich mit dem Zielsystem verbindet.
sudo sed -i 's/^MECHANISMS=.*/MECHANISMS="ldap"/' /etc/default/saslauthd
sudo nano /etc/saslauthd.conf
ldap_servers: ldap://dc01.d2000.local ldap_search_base: dc=d2000,dc=local ldap_bind_dn: cn=ldap-reader,cn=Users,dc=d2000,dc=local ldap_bind_pw: DEIN_PASSWORT ldap_filter: (sAMAccountName=%u) ldap_auth_method: bind
# Postfix und LibSASL installieren sudo dnf install postfix cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain # SASL soll gegen PAM authentifizieren. (lokale User) sudo sed -i 's/^MECH=.*/MECH=pam/' /etc/sysconfig/saslauthd sudo systemctl enable --now saslauthd sudo systemctl status saslauthd sudo groupadd sasl sudo usermod -a -G sasl postfix sudo systemctl restart saslauthd sudo mkdir -p /etc/postfix/sasl sudo tee /etc/postfix/sasl/smtpd.conf >/dev/null <<'EOF' pwcheck_method: saslauthd mech_list: PLAIN LOGIN log_level: 7 EOF sudo postconf -e "smtpd_sasl_auth_enable = yes" sudo postconf -e "smtpd_sasl_type = cyrus" sudo postconf -e "smtpd_sasl_path = smtpd" sudo postconf -e "smtpd_sasl_security_options = noanonymous" sudo postconf -e "broken_sasl_auth_clients = yes" sudo postconf -e "smtpd_tls_auth_only = no" sudo postconf -e "smtpd_use_tls = no" sudo postconf -e "smtpd_tls_security_level = none" sudo postconf -e "smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination" sudo postconf -e "relayhost = vie-srv-ex02.d2000.local" sudo postconf -e "fallback_relay = vie-srv-ex01.d2000.local" sudo systemctl restart postfix sudo systemctl restart saslauthd