Benutzer-Werkzeuge

Webseiten-Werkzeuge


postfix_test

Inhaltsverzeichnis

Beispiele für Postfix Setups mit SASL für PAM, LDAP etc.

SASL mit PAM

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

SASL mit AD

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:

  1. saslauthd delegiert die Authentifizierung an PAM
  2. PAM wiederum nutzt lokale Systemuser oder andere Module (z. B. pam_unix, pam_winbind, etc.)
  3. Die Konfiguration erfolgt dann über /etc/pam.d/ – nicht über eine eigene saslauthd.conf

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

Alma Linux

# 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
postfix_test.txt · Zuletzt geändert: 2025/10/24 13:01 von jango