SMTP Auth: Unterschied zwischen den Versionen

Aus Callooh Wiki
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „=SMTP Auth (SMTP-Authentifizierung)= ==Wo== * FW4 * TODO: FW2 ==Besonderheiten== * Da wir Login und Plain als Authentifizierungs-Verfahren verwenden, und bei be...“
 
K Schützte „SMTP Auth“ [edit=autoconfirmed:move=autoconfirmed]
 
(kein Unterschied)

Aktuelle Version vom 23. August 2009, 13:02 Uhr

SMTP Auth (SMTP-Authentifizierung)

Wo

  • FW4
  • TODO: FW2

Besonderheiten

  • Da wir Login und Plain als Authentifizierungs-Verfahren verwenden, und bei beiden Username/Passwort unverschlüsselt übertragen werden, sollte smtps verwendet werden.

Konfiguration

Sendmail wird Sasl2 via saslauthd zum Authentifizieren benutzen. Darum konfigurieren wir als ersten Schritt

Saslauthd

  • /etc/default/saslauthd
START=yes
MECHANISMS="ldap"
  • /etc/saslauthd.conf
ldap_servers: ldap://192.168.10.8/ ldap://192.168.10.15/
ldap_search_base: ou=users,dc=creative,dc=co,dc=at
  • starten und testen
/etc/init.d/saslauthd start
testsaslauthd -u username -p password

=> soll 0: OK "Success."liefern

SASL

  • /usr/lib/sasl2/Sendmail.conf
pwcheck_method: saslauthd
allowanonymouslogin: 0
allowplaintext: 1
mech_list: LOGIN PLAIN

Sendmail

SMTPs Daemon aktivieren

in sendmail.mc:

DAEMON_OPTIONS(`Name=IPv4, Family=inet')
DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl

relevant ist die dritte Zeile, die ersten beiden werden nur benötigt falls sie noch nicht vorhanden sind.

sendmail.cf generieren, sendmail restarten und mit netstat -ln | grep 465 prüfen ob smtps aktiviert ist. (netstat -ln | grep 25 sollte natürlich nachwievor zumindest eine Zeile zurückgeben)

  • Modifier (M=?)
a  Auth erzwingen
A  Auth deaktivieren
s  SSL/TLS aktivieren

Variante, wie auf fw4 eingesetzt (via SSL nur Verbindungen mit Auth, ohne SSL Auth deaktivieren um Auth-Attacken vorzubeugen):

DAEMON_OPTIONS(`Name=IPv4, Family=inet, M=A')
DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=sa')dnl

Zertifikate

Da wir ab jetzt TLS bzw. SSL verwenden, brauchen wir auch Zertifikate. Unter Debian ist folgenden Zeile in der sendmail.mc ausreichend:

include(`/etc/mail/tls/starttls.m4')dnl

Die Zertifikate müssen sich dann auch unter /etc/mail/tls befinden, wahrscheinlich tun sie das bereits ;-)

Getestet kann das damit werden:

openssl s_client -connect localhost:465

Auth

in sendmail.mc:

dnl ### smtp auth ### dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN')dnl

IPTables

eingehende Verbindungen auf Port 465 zulassen:

iptables -A INPUT .. -p tcp --dport ssmtp -j ACCEPT

Testen

Username und Passwort base64 encoden:

 perl -MMIME::Base64 -e 'print encode_base64("\000username\000pass")'
 $ AHJ3ZQBqYmFXMGsh
openssl s_client -crlf -connect localhost:465

SMTP Chat:

..
AUTH PLAIN AHJ3ZQBqYmFXMGsh
235 2.0.0 OK Authenticated