Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

centos:mailserver:sasl-authentifikation_fuer_sicheres_relayen [16.02.2009 19:08. ] (aktuell)
django angelegt
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