centos:mailserver:sasl-authentifikation_fuer_sicheres_relayen

no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


centos:mailserver:sasl-authentifikation_fuer_sicheres_relayen [16.02.2009 19:08. ] (aktuell) – angelegt django
Zeile 1: Zeile 1:
 +====== SASL-Authentifikation ======
 +Zur Authentifizierung eines Clients gegenüber unserem Mailserver nutzen wir **SMTP-Auth**((//SMTP-Authentication//)). Da SMTP-Auth nicht regelt, wie der Mailserver auf die eigentliche Userdatenbank zugreift, nutzen wir **SASL**((//**S**imple **A**uthentication and **S**ecurity **L**ayer//)). 
 +Diese Bibliothek können verschiende Programme Logindaten überprüfen.\\
 +===== Installation =====
 +Diese Authentifizierungsbibliothek ist bei CentOS in dem Paket **cyrus-sasl** enthalten und wird i.d.R. bei der Systemgrundinstallation bereits mit installiert.
 +   # yum list cyrus-sasl
 +   Installed Packages
 +   cyrus-sasl.i386                          2.22.1.-4               installed
 +Was uns das Programmpaket mitbringt und wohin die entsprechenden Konfigurationsdatein installiert wurden, offenbart uns ein **rpm -ilq**.
 +<code># rpm -ilq cyrus-sasl
 +Name        : cyrus-sasl                   Relocations: (not relocatable)
 +...
 +
 +...
 +URL         : http://asg.web.cmu.edu/sasl/sasl-library.html
 +Summary     : Die Cyrus SASL-Bibliothek.
 +Description :
 +Das Paket cyrus-sasl enthält die Cyrus SASL-Implementierung. SASL
 +steht für Simple Authentication and Security Layer, eine Methode
 +zum Hinzufügen von Authentifizierungsunterstützung zu
 +verbindungsorientierten Protokollen.
 +/etc/rc.d/init.d/saslauthd
 +/etc/sysconfig/saslauthd
 +/usr/lib/sasl2
 +/usr/lib/sasl2/libsasldb.la
 +/usr/lib/sasl2/libsasldb.so
 +/usr/lib/sasl2/libsasldb.so.2
 +/usr/lib/sasl2/libsasldb.so.2.0.22
 +/usr/sbin/dbconverter-2
 +/usr/sbin/pluginviewer
 +/usr/sbin/saslauthd
 +/usr/sbin/sasldblistusers2
 +/usr/sbin/saslpasswd2
 +/usr/sbin/testsaslauthd
 +/usr/share/doc/cyrus-sasl-2.1.22
 +/usr/share/doc/cyrus-sasl-2.1.22/LDAP_SASLAUTHD
 +/usr/share/man/man8/pluginviewer.8.gz
 +/usr/share/man/man8/saslauthd.8.gz
 +/usr/share/man/man8/sasldblistusers2.8.gz
 +/usr/share/man/man8/saslpasswd2.8.gz
 +/var/run/saslauthd</code>
 +===== Konfiguration =====
 +Damit die **Authentifizierung** gegen **LDAP** funktionieren kann, nehmen wir folgende Änderungen an den vorgegebenen Konfigurationsdateien vor.
 +==== saslauthd ====
 +In der Konfigurationsdatei des SASL-Auth-Dämons **/etc/sysconfig/saslauthd** tragen wir folgende Parameter ein.
 +<code># vim /etc/sysconfig/saslauthd
 +
 +# Directory in which to place saslauthd's listening socket, pid file, and so
 +# on.  This directory must already exist.
 +SOCKETDIR=/var/run/saslauthd
 +
 +# Mechanism to use when checking passwords.  Run "saslauthd -v" to get a list
 +# of which mechanism your installation was compiled with the ablity to use.
 +#MECH=pam
 +# Für die Authentifizierung gegen LDAP am 05.02.09 eingetragen:
 +MECH=ldap
 +
 +# Additional flags to pass to saslauthd on the command line.  See saslauthd(8)
 +# for the list of accepted flags.
 +FLAGS=</code>
 +==== smtpd.conf ====
 +:!: Die Konfigurationsdatei in Sachen //SMTP-Auth// liegt nicht, wie man es soinst erwarten würde unter **/etc/** sondern bei CentOS unter **/usr/lib/sasl2/**.
 +Mit dem Editor unserer Wahl bearbeiten wir nun diese Datei.
 +<code># vim /usr/lib/sasl2/smtpd.conf
 +
 +# Für die Authentifizierung gegen LDAP am 05.02.09 eingetragen:
 +pwcheck_method: auxprop
 +# Fehler, fehlerhafte Authentifizierungen und Warnungen loggen
 +log_level: 3
 +# Festlegung der Authentifizierungsmechanismen
 +mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5</code>
 +==== saslauthd.conf ====
 +Für den egentlichen LDAP-Aufruf müssen wir nun dem System noch einige Aufrufparameter übergeben, die wir in der Konfigurationsdatei **/etc/saslauthd.conf** hinterlegen.
 +<code># vim /etc/saslauthd.conf
 +
 +ldap_servers: ldap://ldap.domain.de
 +ldap_search_base: dc=domain,dc=de
 +ldap_bind_dn: cn=System_User,dc=domain,dc=de
 +ldap_bind_pw: klaus-der-spammer
 +ldap_scope: sub
 +ldap_uidattr: uid
 +ldap_filter_mode: yes
 +ldap_filter: uid=%U</code>
 +
 +===== Programmstart =====
 +Beim installierten RPM ist zum Starten des Dämon ein passendes Startscript mitgeliefert worden, somit reicht ein einfaches **service saslauthd start** aus:
 +   service saslauthd start
 +Mit einem Blick in die Prozessliste können wir uns vergewissern, ob der daemon auch gestartet wurde: 
 +<code># ps auxw | grep saslauthd
 +root     19858  0.0  0.0   5520   480 ?        Ss   11:58   0:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow
 +root     19859  0.0  0.0   5520   260 ?        S    11:58   0:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow
 +root     19860  0.0  0.0   5520   256 ?        S    11:58   0:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow
 +root     19861  0.0  0.0   5520   256 ?        S    11:58   0:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow
 +root     19862  0.0  0.0   5520   256 ?        S    11:58   0:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a shadow</code>
 +===== automatisches Starten des Dienste beim Systemstart =====
 +Damit der Daemon automatisch bei jedem Systemstart startet, kann die Einrichtung des Start-Scripte über folgenden Befehle erreicht werden: 
 +   # chkconfig saslauthd on
 +Die Überprüfungung ob der Dienst (Daemon) **saslauthd** wirklich bei jedem System-(re)-Start automatisch mit gestartet werden, kann durch folgenden Befehle erreicht werden: 
 +   # chkconfig --list | grep sasl
 +   saslauthd       0:Aus   1:Aus   2:Ein   3:Ein   4:Ein   5:Ein   6:Aus
 +====== Postfix  ======
 +===== Konfigurationsänderungen =====
 +Damit unser Postfix nun die Authentifizierung mittels Usernamen und Passwort im SMTP-Dialog unterstützt ändern wir unsere Konfiguration wie folgt. 
 +<code>#
 +# Mails sicher relayen via SASL & Co.                   (Kapitel 11.2 Mails sicher relayen)
 +# eingetragen am 05.02.09
 +#
 +smtpd_sasl_auth_enable = yes
 +broken_sasl_auth_clients = yes</code>
 +und
 +<code># Unsere eigenen Nutzer zulassen-/erlauben              (Kapitel 8.2.2 Relaying erlauben und verbieten)
 +        permit_sasl_authenticated,</code>
 +Mit einem anschließenden Reload geben wir unsere Konfigurationsänderungen dem System bekannt.
 +   # service postfix reload
 +Im SMTP-Dialog werden nun die zusätzlichen Möglichkeiten offeriert:
 +<code>$ telnet mx1.nausch.org 25
 +Trying 88.217.187.21...
 +Connected to mx1.nausch.org (88.217.187.21).
 +Escape character is '^]'.
 +220 mx1.nausch.org ESMTP Postfix
 +EHLO testanfrage
 +250-mx1.nausch.org
 +250-PIPELINING
 +250-SIZE 10240000
 +250-VRFY
 +250-ETRN
 +250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
 +250-AUTH=LOGIN PLAIN DIGEST-MD5 CRAM-MD5
 +250-ENHANCEDSTATUSCODES
 +250 8BITMIME
 +quit
 +221 2.0.0 Bye
 +Connection closed by foreign host.</code>
 +===== Test und Debug =====
 +Über das Tool **testsaslauthd** können wir überprüfen ob die Authentifizierungskette funktioniert und wenn nicht, wo wir ggf. weiter nachforschen können.
 +==== Fehlerhafte LDAP-Attribute ====
 +   # testsaslauthd -u klaus -p klaus-der-spammer
 +   0: NO "authentication failed"
 +Auf Grund fehlerhaften LDAP-Attribute konnte Username und Passwort nicht verifiziert werden.
 +==== Korrekter Zu-/Durchgriff ====
 +   # testsaslauthd -u klaus -p klaus-der-spammer
 +   0: OK "Success."
 +Nach Änderunk /Korrektur der zuvor fehlerhaften LDAP-Attribute konnte nun erfolgreich Username und Passwort verifiziert werden.
 +
  
  • centos/mailserver/sasl-authentifikation_fuer_sicheres_relayen.txt
  • Zuletzt geändert: 16.02.2009 19:08.
  • von django