saslauthd funktioniert nicht

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
k@sperl
Posts: 7
Joined: 2004-09-05 13:18
Location: nang-Pu

saslauthd funktioniert nicht

Post by k@sperl » 2004-09-17 13:19

Hallo!

Ich hab da ein Problem mit saslauthd (und postfix) auf Debian sarge. Ich möchte daß die Authentifizierung über den saslauthd läuft, via TLS.
Wenn ich nun Mails von Mozilla aus versende, möchte ich mich ja mit user & pass authentifizieren. Leider geht der Mailversand auch ohne daß ich mich authentifiziere, was nicht sein soll.
Wenn ich eine e-mail versende, wird in /var/log/mail.log geloggt, was mir derzeit aber nicht wirklich weiterhilft:

Code: Select all

    705 Sep 17 12:33:01 debian postfix/smtpd[27762]: connect from cm183xx.liwest.at[81.10.xx.xx]
    706 Sep 17 12:33:01 debian postfix/smtpd[27762]: 474C0DFC004: client=cm183xx.liwest.at[81.10.xx.xx]
    707 Sep 17 12:33:01 debian postfix/cleanup[27765]: 474C0DFC004: message-id=<414ABD5C.80905@xyz.com>
    708 Sep 17 12:33:01 debian postfix/qmgr[27761]: 474C0DFC004: from=<i-mehl@xyz.com>, size=614, nrcpt=1 (queue active)
    709 Sep 17 12:33:01 debian postfix/local[27766]: 474C0DFC004: to=<gerald@abc.com>, relay=local, delay=0, status=sent (delivered to maildir)
    710 Sep 17 12:33:01 debian postfix/qmgr[27761]: 474C0DFC004: removed
    711 Sep 17 12:33:01 debian postfix/smtpd[27762]: disconnect from cm183xx.liwest.at[81.10.xx.xx]


Wenn ich mich aber nun doch authentifizieren will, wirft er das Passwort zurück weil er sich nicht mit dem saslauthd verbinden kann (saslauthd läuft aber):
/var/log/mail.log:

Code: Select all

   721 Sep 17 13:11:59 debian postfix/smtpd[28024]: connect from cm183xx.liwest.at[81.10.xx.xx]
    722 Sep 17 13:12:05 debian postfix/smtpd[28024]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
    723 Sep 17 13:12:05 debian postfix/smtpd[28024]: warning: SASL authentication failure: Password verification failed
    724 Sep 17 13:12:05 debian postfix/smtpd[28024]: warning: cm183xx.liwest.at[81.10.xx.xx]: SASL PLAIN authentication failed
    725 Sep 17 13:12:05 debian postfix/smtpd[28024]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
    726 Sep 17 13:12:05 debian postfix/smtpd[28024]: warning: cm183xx.liwest.at[81.10.xx.xx]: SASL LOGIN authentication failed
    727 Sep 17 13:12:07 debian postfix/smtpd[28024]: lost connection after AUTH from cm183xx.liwest.at[81.10.xx.xx]
    728 Sep 17 13:12:07 debian postfix/smtpd[28024]: disconnect from cm183xx.liwest.at[81.10.xx.xx]
    729 Sep 17 13:12:08 debian postfix/smtpd[28024]: connect from cm183xx.liwest.at[81.10.xx.xx]
    730 Sep 17 13:12:13 debian postfix/smtpd[28024]: lost connection after EHLO from cm183xx.liwest.at[81.10.xx.xx]
    731 Sep 17 13:12:13 debian postfix/smtpd[28024]: disconnect from cm183xx.liwest.at[81.10.xx.xx]
In /var/log/auth.log steht nichts, bis auf den Eintrag daß saslauthd gestartet wurde:

Code: Select all

Sep 17 12:28:08 debian saslauthd[27406]: detach_tty      : master pid is: 27406
Sep 17 12:28:08 debian saslauthd[27406]: ipc_init        : listening on socket: /var/run/saslauthd/mux

/etc/postfix/main.cf

Code: Select all

smtpd_banner = $myhostname ESMTP Mailserver
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

myhostname = host.abc.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, $mydomain
#relayhost =
mynetworks = 127.0.0.0/8
mailbox_command =
mailbox_size_limit = 0
recipient_delimiter = +
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

# block possible attacks
smtpd_error_sleep_time = 1s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20

# use maildir style instead of mbox format
home_mailbox = Maildir/

# virtual domain stuff
virtual_alias_domains = domain2.com
virtual_alias_maps = hash:/etc/postfix/virtual_alias

# TLS stuff
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_use_tls = yes
smtpd_enforce_tls = no
broken_sasl_auth_clients = yes

# SASL
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_sasl_local_domain =
smtp_sasl_auth_enable = no
smtpd_tls_auth_only = yes
/etc/postfix/saslauthd/smtpd.conf

Code: Select all

pwcheck_method: saslauthd
mech_list: plain login
In der /etc/default/saslauthd habe ich bei MECHANISMS shadow festgelegt.

Ich hab leider keine Idee was genau da schief läuft, wenn mir jemand einen Tipp geben könnte wär ich recht dankbar :)

sascha
RSAC
Posts: 1345
Joined: 2002-04-22 23:08

Re: saslauthd funktioniert nicht

Post by sascha » 2004-09-17 20:59

Probiers mal so:

Code: Select all

# adduser postfix sasl
# dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
/etc/default/saslauthd

Code: Select all

START="yes"
MECHANISMS="pam"
PARAMS="-m /var/spool/postfix/var/run/saslauthd"
PWDIR="/var/spool/postfix/var/run/saslauthd"
PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"
/etc/postfix/sasl/smtpd.conf

Code: Select all

pwcheck_method: saslauthd
mech_list: plain login
saslauthd_path: /var/run/saslauthd/mux

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: saslauthd funktioniert nicht

Post by squize » 2004-09-17 21:03

Wenn es bei Postfix schief geht und du Unix Sockets benutzt, dann liegt es meist daran, das Postfix in einem chroot läuft und deswegen auf das Socket von saslauthd nicht zugreifen kann.

Wenn salslauthd ein Socket unter /var/run/saslauthd/mux anlegt und Postfix dieses erreichen soll, dann musst du dafür sorgen, dass du einen Symlink von /var/run/saslauthd/mux nach /var/postfix//var/run/saslauthd/mux setzt. Wenn der Rest deiner Config stimmt, sollte es dann gehen.

Gruss

Marc

k@sperl
Posts: 7
Joined: 2004-09-05 13:18
Location: nang-Pu

Re: saslauthd funktioniert nicht

Post by k@sperl » 2004-09-17 21:22

Danke Marc, das war's. Per default ist postfix in /var/spool/postfix chrooted und kann deswegen natürlich nicht auf /var/run/saslauthd zugreifen, wo der UNIX Socket des saslauthd ist.

edit:
@Sascha: sorry, hab dein Posting ganz übersehen :D
postfix war bei mir schon in der sasl Gruppe.
Der Weg, daß man den Socket für saslauthd im chroot anlegt anstatt einen symlink zu setzen ist natürlich eleganter :)

k@sperl
Posts: 7
Joined: 2004-09-05 13:18
Location: nang-Pu

Re: saslauthd funktioniert nicht

Post by k@sperl » 2004-09-17 23:03

Eine Frage habe ich noch, und zwar zu smtpd_restrictions:
Ich vielen HowTo's habe ich gesehen, daß diese auch bei smtpd_recipient_restrictions RBLs eintragen, z.b.
smtpd_recipient_restrictions = reject_rbl_client relays.ordb.org

Damit würde man Mails an Hosts, deren IP auf den Blacklist ist, rejecten.
Irgendwie verstehe ich den Sinn nicht ganz, es ist doch besser wenn ich diese Option den smtpd_client_restrictions mitgebe. Somit wird jeglicher Spam welcher von Hosts, die auf der RBL gelistet sind, rejected. Und damit trifft (hoffentlich) weniger Spam auf meinem Host ein,

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: saslauthd funktioniert nicht

Post by squize » 2004-09-18 01:30

Na super wenn es jetzt funktioniert.

Die einzelnen restrictions geben nur an, wann überprüft wird. client_restrictions werden nach dem "MAIL FROM" gecheckt, recipeint_restrictions nach dem "RCPT TO".

Es macht also nicht wirklich einen Unterschied. Ich habe noch wage im Kopf, dass es einen Grund gab die Checks in die recipient_restrictions zu legen, weiss aber nicht mehr warum.

Den Socket direkt in den chroot von postfix zu legen ist auf den ersten Blick eleganter, kann aber zu Problemen führen, wenn du auch andere Daemons über den saslauthd authentifizieren lässt.
Ich finde die netteste Lösung ist, den Symlink in das INIT-Skript mit aufzunehmen. Falls du suchst wie ds geht, suche mal nach "mysql postfix socket", da solltest du auf ein paar Beispiele stossen, die das gleiche für den mysql-Socket beschreiben.

Ich habe sogar mal selbst eine Lösung gepostet, wie mir gerade auffällt :)

http://www.rootforum.org/forum/viewtopic ... fix+socket


Gruss

Marc

schuehler
Posts: 21
Joined: 2004-10-20 21:47

Re: saslauthd funktioniert nicht

Post by schuehler » 2005-03-19 22:27

Hallo,

ich habe nach diesen Code den saslauthd zum laufen gebracht.
Allerding geht er auf einmal nicht mehr. Nach drei Tagen war Schluss.
Mit dem /etc/init.d/saslauthd start kommt nur failed als Meldung.

Merkwürdig. Kann mir einer Helfen. Ging bis dato ohne Probleme !

Gruss Klaus

schuehler
Posts: 21
Joined: 2004-10-20 21:47

Re: saslauthd funktioniert nicht

Post by schuehler » 2005-03-19 23:30

Hallo,

habe noch ein paar Meldungen von Logcheck. Sieht so aus als ob er auf einen pid File nicht mehr zugreifen kann. Sonderbar !

Code: Select all

Mar 19 22:04:03 zero saslauthd[20729]: detach_tty      : could not lock pid file /var/spool/postfix/var/run/saslauthd/saslauthd.pid: Resource temporarily unavailable
Mar 19 22:04:03 zero saslauthd[20728]: detach_tty      : Cannot start saslauthd
Mar 19 22:04:03 zero saslauthd[20728]: detach_tty      : could not read from startup_pipe
Mar 19 22:16:48 zero saslauthd[21090]: detach_tty      : could not lock pid file /var/spool/postfix/var/run/saslauthd/saslauthd.pid: Resource temporarily unavailable
Mar 19 22:16:48 zero saslauthd[21089]: detach_tty      : Cannot start saslauthd
Mar 19 22:16:48 zero saslauthd[21089]: detach_tty      : could not read from startup_pipe
Mar 19 22:19:11 zero saslauthd[21181]: detach_tty      : master pid is: 21181
Mar 19 22:19:11 zero saslauthd[21181]: ipc_init        : listening on socket: /var/run/saslauthd/mux
Mar 19 22:25:04 zero saslauthd[21387]: detach_tty      : could not lock pid file /var/spool/postfix/var/run/saslauthd/saslauthd.pid: Resource temporarily unavailable
Mar 19 22:25:04 zero saslauthd[21386]: detach_tty      : Cannot start saslauthd
Mar 19 22:25:04 zero saslauthd[21386]: detach_tty      : could not read from startup_pipe
Steh völlig auf dem Schlauch.

Grüsse Klaus

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: saslauthd funktioniert nicht

Post by squize » 2005-03-20 14:32

Koennte an folgendem liegen:

Wenn der Symlink im Postfix Startupskript erzeugt wird, dann geht er nach dem Neustart von Mysql verloren. Die richtige Lösung ist also, den Symlink in das Mysql Startskript zu integrieren.

Ausserdem solltest du schauen, ob vom saslauthd moch alte pidfiles rumliegen und diese löschen.


Gruss

Marc

schuehler
Posts: 21
Joined: 2004-10-20 21:47

Re: saslauthd funktioniert nicht

Post by schuehler » 2005-03-20 21:23

Hallo,

ich nutze für Postfix kein Mysql. Wie kann ich die pidfiles finden.
Ein komisches Programm !

Gruss Klaus