[Postfixbuch-users] Cyrus Sasl unter Debian Sarge

Patrick Ben Koetter p at state-of-mind.de
Fr Jul 28 08:45:23 CEST 2006


* Thomas Klein <mailinglist at skynetworks.de>:
> >Auf Debian muss Postfix in die Gruppe sasl aufgenommen werden, damit er in
> >das saslauthd socket directory greifen und mit saslauthd Kontakt nehmen
> >darf.  DAS und noch andere Debian spezifische Einstellungen hat La Mont
> >Jones, der Maintainer des Postfix packages, dokumentiert und diese
> >Dokumentation wird mit dem Postfix Paket ausgeliefert.
> >
> >Wer also lesen kann, ist hier klar im Vorteil...
> >
> >Debian liefert Postfix chrooted aus und hat (mittlerweile) auch saslauhd
> >darauf eingerichtet. Wenn Du in /etc/default/saslauhtd entsprechende
> >Angaben für den socket path machst, kannst Du damit dem socket auch in das
> >Postfix chroot lenken (und dort auch ansprechen, vorausgesetzt Postfix ist
> >in der SASL Gruppe...).
> 
> Frage hierzu:
> Welchen Socket-path könnte man denn z.B. verwenden, damit postfix im chroot 
> bleiben kann?

Du kannst Dir aussuchen was Du willst, solange es unterhalb des chroot-Dir von
Postfix liegt, das typischerweise /var/spool/postfix ist. Wenn Du konsistent
mit der non-choot-Logik bleiben willst, machst Du in etwa folgendes (Ich
skizzier das hier nur, weil ich selber kein Debianer bin...):

# cat /etc/default/saslauthd
START=yes
MECHANISMS="shadow"
# PARAMS zusätzlich setzen und mit "-m ..." den neuen Pfad für den Socket angeben.
PARAMS='-m /var/spool/postfix/var/run/saslauthd'

Das /etc/init.d/saslauthd Skript sourced /etc/default/saslauthd, um
Default-Werte zu erhalten. PARAMS ist dazu da, um weitere Parameter zu
übergeben. Je nach Debian-Version variiert /etc/init.d/saslauthd und die Namen
der Parameter, die es einliest.

Das Verzeichnis /var/spool/postfix/var/run/saslauthd muss natürlich
existieren. Ggf. musst Du es selber anlegen und die passenden Rechte setzen.
Neuere Debian init-Skripte legen es AFAIK sogar an und setzen die passenden
Rechte.

Dann saslauthd starten und prüfen...

# ps wax | grep saslauthd
 7009 ?        Ss     0:00 /usr/sbin/saslauthd -m /var/spool/postfix/var/run/saslauthd -a pam
 7010 ?        S      0:00 /usr/sbin/saslauthd -m /var/spool/postfix/var/run/saslauthd -a pam
 7011 ?        S      0:00 /usr/sbin/saslauthd -m /var/spool/postfix/var/run/saslauthd -a pam
 7012 ?        S      0:00 /usr/sbin/saslauthd -m /var/spool/postfix/var/run/saslauthd -a pam
 7013 ?        S      0:00 /usr/sbin/saslauthd -m /var/spool/postfix/var/run/saslauthd -a pam


Jetzt den smtpd-daemon wieder ins chroot nehmen:

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       y       -       -       smtpd
...

# postfix reload


Das müsste es eigentlich gewesen sein. saslauthd legt den socket ins Postfix
chroot. Postfix läßt die eingebundene libsasl weiterhin in /var/run/saslauthd
suchen, was in Wirklichkeit aber /var/spool/postfix/var/run/saslauthd ist und
dort ist auch der socket...

Falls das noch nicht reicht, musst Du für libsasl in
/etc/postfix/sasl/smtpd.conf noch den $saslauthd_path setzen. Mehr dazu
findest Du in der options.html der SASL Dokumentation.

IN JEDEM FALL willst Du das Ganze aber erst einmal OHNE CHROOT zum Laufen
bringen. Sonst wird das echt schmerzhaft.

HTH,

p at rick

P.S:
Ach ja! Nicht vergessen Postfix in die sasl-Gruppe aufzunehmen... ;)

-- 
Das Postfix-Buch
<http://www.postfix-buch.com>
saslfinger (debugging SMTP AUTH):
<http://postfix.state-of-mind.de/patrick.koetter/saslfinger/>



Mehr Informationen über die Mailingliste Postfixbuch-users