[Postfixbuch-users] Debian, Postfix und SMTP-Auth

Thilo Engelbracht info at engelbracht.de
Do Nov 11 15:05:27 CET 2004


Hallo liebe Mailingliste!

In meinem Netzwerk existieren ein Linux-Server (Debian 3.0 "woody") und
ein M$-Client (Windows 2000).

Nun möchte ich gerne in meinem LAN einen Relayhost (bzw. Smarthost) mit
dem MTA postfix einrichten. Dazu habe ich die aktuelle Version von
"Nobses" backports installiert (postfix-tls, 2.1.4-2.backports.org.1).

Ich habe mich an diversen HOWTOs und Anleitungen orientiert, u.a. an der
c't 8/2004 und - natürlich - am Postfix-Buch von Peer.

Bis heute habe ich folgendes erreicht:

- fetchmail läuft als Daemon. Alle 5 Minuten wird überprüft, ob auf
  externen Mailboxen neue Nachrichten vorhanden sind. Falls ja, werden
  sie - SSL-verschlüsselt - auf meinen Linux-Server übertragen.

- Die E-Mails werden an Postfix übergeben und mit Hilfe von amavisd-new
  auf Viren gescannt.

- Anschließend übernimmt procmail die weitere Verarbeitung. Jeder User
  hat eine eigene ~/.procmailrc. Die Benutzer koennen durch eine
  individuelle Konfiguration erreichen, dass die E-Mails in verschiedene
  IMAP-Ordner (IMAP-Server: courier) einsortiert werden.

- beim Versand von E-Mails soll die Verbindung von meinem Clients an
  Postfix verschlüsselt sein. Aus diesem Grund habe ich TLS (Transport
  Layer Security) eingerichtet.
  Die Nachrichten werden an den Mailserver meines Providers weiter-
  geleitet.


Diese Konfiguration funktioniert ohne Schwierigkeiten:

  $ telnet localhost 25
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
  220 hogwarts.engelbracht.de ESMTP Postfix
* EHLO bla.blubb.org
  250-hogwarts.engelbracht.de
  250-PIPELINING
  250-SIZE 50000000
  250-VRFY
  250-ETRN
  250-STARTTLS
  250 8BITMIME
* QUIT
  221 Bye
  Connection closed by foreign host.


So weit, so gut.

Nun mein Problem:
Ich (Newbie!) möchte gerne zusätzlich SMTP-Auth mit dem "rimap"-Mecha-
nismus einrichten.

Meine Vorgehensweise habe ich sehr ausführlich dokumentiert - wenn
SMTP-Auth läuft, dann kann ich gerne eine Schritt-für-Schritt-Anleitung
für andere Debianer erstellen...

Folgendes habe ich bis jetzt gemacht:

 1.) Die "/etc/apt/sources.list" mit folgenden Einträgen erweitert:

     deb http://www.backports.org/debian stable cyrus-sasl2
     deb-src http://www.backports.org/debian stable cyrus-sasl2


 2.) $ apt-get update
     $ apt-get install sasl2-bin libsasl2-modules

     $ dpkg -l | grep -i sasl2

     ii  libsasl2       2.1.19-1.2.bac Authentication abstraction [...]
     ii  libsasl2-modul 2.1.19-1.2.bac Pluggable Authentication [...]
     ii  sasl2-bin      2.1.19-1.2.bac Programs for manipulating [...]


 3.) Die Datei "/etc/default/saslauthd" angepasst:

     START=yes
     MECHANISMS="rimap -O hogwarts.engelbracht.de"


 4.) Ein File "/etc/postfix/sasl/smtpd.conf" mit folgendem Inhalt an-
     gelegt:

     pwcheck_method: saslauthd
     mech_list: plain login
     log_level: 3


 5.) Meine Postfix-Konfiguration angepasst, Ausgabe siehe unten.


 6.) Prozesse neu starten:
     $ /etc/init.d/saslauthd restart
     $ /etc/init.d/postfix restart


 7.) Testen von saslauthd:
     $ testsaslauthd -u thilo -p kennwort
     0: OK "Success."


 8.) Den Benutzer "postfix" in die Gruppe "sasl" aufnehmen:
     $ adduser postfix sasl
     Adding user `postfix' to group `sasl'...
     Done.


 9.) $ telnet localhost 25
     Trying 127.0.0.1...
     Connected to localhost.
     Escape character is '^]'.
     Connection closed by foreign host.

     Funktioniert also nicht...


10.) Hier ein Auszug aus der Logdatei ("/var/log/mail.log"):

Nov 11 13:23:11 hogwarts postfix/postfix-script: starting the Postfix mail system
Nov 11 13:23:11 hogwarts postfix/master[3572]: daemon started -- version 2.1.4
Nov 11 13:23:20 hogwarts postfix/smtpd[3577]: fatal: no SASL authentication mechanisms
Nov 11 13:23:21 hogwarts postfix/master[3572]: warning: process /usr/lib/postfix/smtpd pid 3577 exit status 1
Nov 11 13:23:21 hogwarts postfix/master[3572]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling
Nov 11 13:24:21 hogwarts postfix/smtpd[3581]: fatal: no SASL authentication mechanisms
Nov 11 13:24:22 hogwarts postfix/master[3572]: warning: process /usr/lib/postfix/smtpd pid 3581 exit status 1
Nov 11 13:24:22 hogwarts postfix/master[3572]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling


11.) $ postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
content_filter = smtp-amavis:[127.0.0.1]:10024
daemon_directory = /usr/lib/postfix
header_checks = regexp:/etc/postfix/header_checks
inet_interfaces = 127.0.0.1, 192.168.0.1
mail_owner = postfix
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
manpage_directory = /usr/share/man
message_size_limit = 50000000
mydestination = hogwarts.engelbracht.de, localhost.engelbracht.de, localhost
mydomain = engelbracht.de
myhostname = hogwarts.engelbracht.de
mynetworks = 127.0.0.0/8, 192.168.0.0/24
myorigin = $myhostname
readme_directory = /usr/share/doc/postfix
recipient_delimiter = +
relayhost = [mailserver.provider.com]
sample_directory = /usr/share/doc/postfix/examples
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_enforce_tls = yes
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_maps, reject_unauth_destination, permit_auth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = 
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_use_tls = yes


12.) $ cat /etc/postfix/master.cf

# ==========================================================================
# service       type  private unpriv  chroot  wakeup  maxproc command + args
#                     (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
#submission inet n      -       -       -       -       smtpd
#	-o smtpd_etrn_restrictions=reject
#628            inet  n       -       -       -       -       qmqpd
pickup          fifo  n       -       -       60      1       pickup
cleanup         unix  n       -       -       -       0       cleanup
qmgr            fifo  n       -       -       300     1       qmgr
#qmgr           fifo  n       -       -       300     1       oqmgr
rewrite         unix  -       -       -       -       -       trivial-rewrite
bounce          unix  -       -       -       -       0       bounce
defer           unix  -       -       -       -       0       bounce
trace           unix  -       -       -       -       0       bounce
verify          unix  -       -       -       -       1       verify
flush           unix  n       -       -       1000?   0       flush
proxymap        unix  -       -       n       -       -       proxymap
smtp            unix  -       -       -       -       -       smtp

# -----------------------------------------------------------------
# Postfix-Buch: Konfiguration "amavisd-new" (siehe Seite 384):
smtp-amavis     unix  -       -       n       -       2       smtp
	-o smtp_data_done_timeout=1800
	-o disable_dns_lookups=yes
smtp            inet  n       -       n       -       -       smtpd
localhost:10025 inet  n       -       n       -       -       smtpd
	-o smtpd_enforce_tls=no
	-o content_filter=
# -----------------------------------------------------------------

# E-Mails von "fetchmail" sind unverschluesselt:
127.0.0.1:smtp  inet  n       -       -       -       -       smtpd
	-o smtpd_enforce_tls=no


relay           unix  -       -       -       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq           unix  n       -       -       -       -       showq
error           unix  -       -       -       -       -       error
local           unix  -       n       n       -       -       local
virtual         unix  -       n       n       -       -       virtual
lmtp            unix  -       -       n       -       -       lmtp
anvil           unix  -       -       n       -       1       anvil
#
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# maildrop. See the Postfix MAILDROP_README file for details.
#
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -d -t$nexthop -f$sender $recipient
scalemail-backend unix	-	n	n	-	2	pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}

# only used by postfix-tls
#tlsmgr	  fifo	-	-	n	300	1	tlsmgr
#smtps	  inet	n	-	n	-	-	smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#587	  inet	n	-	n	-	-	smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes




Warum funktioniert SMTP-Auth nicht?
Kann mir jemand bei der Umsetzung helfen?

_Vielen_ Dank für Eure Mühe!

Gruß,

Thilo



Mehr Informationen über die Mailingliste Postfixbuch-users