postfix im chroot und saslauthd

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
dukepyrolator
Posts: 38
Joined: 2004-03-12 06:51

postfix im chroot und saslauthd

Post by dukepyrolator » 2006-02-28 16:55

Hi,

ich habe postfix im chroot laufen, authentifizierung über den saslauthd.

saslauth legt die pid und die mux im /var/run/saslauthd/ an.
postfix benötigt die aber im /var/spool/postfix/saslauthd/.

Wenn ich manuell neue links setze, funktioniert alles.
Ich würde es nur gerne mal automatiesieren, weil bei apt-get update öfters mal der saslauthd neu gestartet wird und dann die gelinkten Dateien nicht aktualisiert werden. Wenn saslauthd beendet wird, werden die Dateien im /var/run/saslauthd/ gelöscht, aber die hardlinks im /var/spool/postfix/saslauthd/ bleiben und werden dann auch nicht aktualisiert, wenn die Dateien neu angelegt werden.


Ich habe jetzt versucht, in der /etc/init.d/saslauthd die Pfadangaben für die pid und die mux so umzuändern, dass die gleich im /var/spool/postfix/saslauthd/ angelegt werden. Das funktioniert aber irgendwie nicht. Der saslauthd startet nicht und bringt auch keine Fehlermeldung. (auch keine Einträge in den logfiles). An den Berechtigungen kann es nicht liegen, hab zum Test mal alles kurz auf 777 gesetzt.


Dann habe ich versucht, in der /etc/init.d/saslauthd beim starten gleich die links neu zu setzen. Das funktioniert aber auch nicht.

Code: Select all

rm /var/spool/postfix/saslauthd/*
ln /var/run/saslauthd/mux /var/spool/postfix/saslauthd/mux
ln /var/run/saslauthd/mux.accept /var/spool/postfix/saslauthd/mux.accept
ln /var/run/saslauthd/saslauthd.pid /var/spool/postfix/saslauthd/saslauthd.pid
Die erste Zeile, nämlich das löschen der alten Links wird noch ausgeführt, die nachfolgenden Zeilen aber nicht mehr. Ich vermute mal, dass zu diesem Zeitpunkt die .pid und die mux noch nicht existieren.


Hat jemand einen Tip wie ich das jetzt noch lösen könnte?


Danke und Gruß

Jens

[edit]
Achso, und symlink funktioniert auch nicht, vermutlich weil es sich bei der "mux" um ein socket handelt. Da meckert dann postfix rum ...
[/edit]

bfrackie
Posts: 63
Joined: 2003-08-26 12:00

Re: postfix im chroot und saslauthd

Post by bfrackie » 2006-03-15 22:21

hast du es schon gelöst? wenn nicht, ich habe mich gerade eingelesen und ein problem gelöst, vielleicht kann ich dir helfen.

Bart

dukepyrolator
Posts: 38
Joined: 2004-03-12 06:51

Re: postfix im chroot und saslauthd

Post by dukepyrolator » 2006-03-16 05:16

Hi, ich bin immernoch auf der Suche nach einer Lösung.

bfrackie
Posts: 63
Joined: 2003-08-26 12:00

Re: postfix im chroot und saslauthd

Post by bfrackie » 2006-03-16 09:32

1) saslauthd

ich habe die mux von saslauthd in /var/spool/postfix/var/run/saslauthd. da das verzeichnis die Berechtigung drwx--x--- 2 root sasl hat, musst du postfix der Gruppe sasl zuweisen.

Code: Select all

homer:~# cat /etc/default/saslauthd
# This needs to be uncommented before saslauthd will be run automatically
START=yes

MECHANISMS="rimap -O 127.0.0.1 "
PARAMS="-r -m /var/spool/postfix/var/run/saslauthd"
PWDIR="/var/spool/postfix/var/run/saslauthd"
PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"
nach einem neustart von saslauthd sollte alles in /var/spool/postfix/var/run/saslauthd liegen.

2) postfix

wichtig für die Authentifzierung sind smtpd und smtps (falls du Verbindung über SSL zulassen willst). beide müssen chrooted laufen, was bei meinem Debian zumindest für smtps nicht der Fall war.

Code: Select all

homer:~# vi /etc/postfix/master.cf
smtp      inet  n       -       -       -       -       smtpd

# only used by postfix-tls
tlsmgr    fifo  -       -       n       300     1       tlsmgr
smtps     inet  n       -       -       -       -       smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
damit sollte es gehen. in Postfix 2.2 sollte der tlsmgr type=unix sein.

Bart

dukepyrolator
Posts: 38
Joined: 2004-03-12 06:51

Re: postfix im chroot und saslauthd

Post by dukepyrolator » 2006-03-16 19:48

hmm, so richtig will das bei mir nicht funktionieren.

Nachdem ich ein wenig in der /etc/init.d/saslauthd rumgespielt habe, hab ich herausgefunden, dass der saslauthd mit folgendem command gestartet wird:

Code: Select all

start-stop-daemon --start --quiet --pidfile /var/spool/postfix/saslauthd/saslauthd.pid --startas /usr/sbin/saslauthd --name saslauthd --  -a shadow pam
die entsprechenden Einträge in der /etc/init.d/saslauthd lauten:

Code: Select all

#!/bin/sh -e

NAME=saslauthd
DAEMON="/usr/sbin/${NAME}"
DESC="SASL Authentication Daemon"
DEFAULTS=/etc/default/saslauthd
PWDIR=/var/spool/postfix/saslauthd
PIDFILE=/var/spool/postfix/saslauthd/saslauthd.pid
und

Code: Select all

        echo -n "Starting ${DESC}: "
        dir=`dpkg-statoverride --list $PWDIR`
        test -z "$dir" || createdir $dir
        echo -n "$START"
        if start-stop-daemon ${START} >/dev/null 2>&1 ; then
                echo "${NAME}."
        else

Jetzt wird der saslauthd schon mal gestartet.
Nur leider werden die .pid und die mux trotzdem noch in /var/run/saslauthd abgelegt ... und ich hab keine Ahnung wieso. Muss ich da beim start-stop-daemon noch irgendwas configurieren? ich kenn mich mit dem teil leider überhaupt nicht aus ...


gruß
Jens

bfrackie
Posts: 63
Joined: 2003-08-26 12:00

Re: postfix im chroot und saslauthd

Post by bfrackie » 2006-03-16 20:11

wenn du ps auxf machst, muss mit -m der richtige pfad angegeben sein, also in etwa so:

/usr/sbin/saslauthd -r -m /var/spool/postfix/var/run/saslauthd -a rimap -O 127.0.0.1

wenn nicht, ist in deinem geflecht der /etc/default/saslauthd und /etc/init.d/saslauthd etwas nicht ok. das läuft normalerweise out-of-the-box.

Bart

dukepyrolator
Posts: 38
Joined: 2004-03-12 06:51

Re: postfix im chroot und saslauthd

Post by dukepyrolator » 2006-03-17 05:19

Danke jetzt gehts.

Bei Debian ist wohl nicht vorgesehen das jemand die .pid in einem anderen Verzeichnis haben will ...

hab jetzt in der /etc/init.d/saslauthd folgenden Eintrag geändert:


vorher:

Code: Select all

PARAMS="${PARAMS} -a ${MECHANISMS}"
nachher:

Code: Select all

PARAMS="${PARAMS} -m ${PWDIR} -a ${MECHANISMS}"
(falls jemand das gleiche Problem haben sollte)