Debian SMTP mit MySQL

Dr.Thodt

treuer Stammgast
Hallöchen,

ich bin kurz vorm Verzweifeln. Ich versuche mittlerweile seit Wochen einen Mailserver auf meinem kleinen vServer aufzusetzen.

Das mit dem POP3 klappt auch soweit ganz gut, aber der Versand mit SMTP will ums verrecken nicht hinhauen.

Nach dem ganzen kaputt konfigurien sieht mein Log wie folgt aus:
Code:
postfix/smtpd[12947]: connect from bla.blubb [XXX.XXX.XXX.XXX]
postfix/smtpd[12947]: warning: SASL authentication failure: no secret in database
postfix/smtpd[12947]: warning: bla.blubb [XXX.XXX.XXX.XXX]: SASL CRAM-MD5 authentication failed: authentication failure
postfix/smtpd[12947]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
postfix/smtpd[12947]: warning: SASL authentication failure: Password verification failed
postfix/smtpd[12947]: warning: bla.blubb[XXX.XXX.XXX.XXX]: SASL PLAIN authentication failed: generic failure
postfix/smtpd[12947]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
postfix/smtpd[12947]: warning: bla.blubb[XXX.XXX.XXX.XXX]: SASL LOGIN authentication failed: generic failure
postfix/smtpd[12947]: NOQUEUE: reject: RCPT from bla.blubb[XXX.XXX.XXX.XXX]: 554 5.7.1 <empfänger@domain.com>: Relay access denied; from=<sender@domain.de> to=<empfänger@domain.com> proto=ESMTP helo=<rechner.domäne>
Feb  4 02:15:36 v220090936931688 postfix/smtpd[12947]: disconnect from bla.blubb[XXX.XXX.XXX.XXX]

Trotz endloser sucherrei im Netz und zahllosen Tutorials weiss ich nicht mehr weiter... kann mir jemand behilflich sein?

Danke...

EDIT: Ups, bitte nach "Netzwerke und Server" verschieben, sorry...

EDIT2: Danke, hat sich mittlerweile erledigt. Ich hab alles nochmal von vorne installiert und nun gehts.
 
Zuletzt bearbeitet:
ot:
War trotzdem schön, mal wieder was von Dir gelesen zu haben :)


Nur interessehalber: Welcher Mailserver wird denn verwendet?
 
Postfix ;)

@Dr.Thodt:
Kannst Du die config's mal in eine Codebox posten?
 
ot:
Jo, mich gibt's ja auch immer noch...
Vielleicht telefonieren wir die Tage mal? Es gibt ja sooooo viel neues zu erzählen ^^ Nur im Moment hab ich leider die Seuche.


Also was brauchen wir denn alles?

System ist Ubuntu 9.04 (Jaunty)
Software: Postfix, Courier, Saslauth, Roundcube, MySQL

/etc/postfix/main.cf

Code:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

append_dot_mydomain = no

readme_directory = no

smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

myhostname = mail.domain.tld
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mail.domain.tld, localhost, localhost.localdomain
relayhost = 
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
virtual_alias_domains = 
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "The user you are trying to reach is over quota."
virtual_overquota_bounce = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps


/etc/postfix/master.cf
Code:
==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd
#submission inet n       -       -       -       -       smtpd
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#smtps     inet  n       -       -       -       -       smtpd
#  -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#628      inet  n       -       -       -       -       qmqpd
pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       -       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
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
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay     unix  -       -       -       -       -       smtp
	-o smtp_fallback_relay=
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent.  See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# See the Postfix UUCP_README file for configuration details.
#
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
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 -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}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

amavis unix - - - - 2 smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes

127.0.0.1:10025 inet n - - - - smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o strict_rfc821_envelopes=yes
        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
        -o smtpd_bind_address=127.0.0.1

/etc/postfix/sasl/smtpd.conf
Code:
pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
sql_hostnames: 127.0.0.1
sql_user: mail_admin
sql_passwd: passwort
sql_database: mail
sql_select: select password from users where email = '%u'

Wie man sieht, läuft Postfix chrooted. Dazu ist es natürlich notwendig, noch einige Rechte zu setzen:
Code:
chown -c -h root:sasl /var/spool/postfix/var/run/saslauthd/mux
chmod -c 776 /var/spool/postfix/var/run/saslauthd/mux

Und sofern noch nicht geschehen natürlich den user postfix in die Gruppe sasl packen (scheint debain spezifisch zu sein):
Code:
adduser postfix sasl

Hab ich was vergessen?

Ja, hab ich

/etc/default/saslauthd
Code:
# Settings for saslauthd daemon
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
# Other options (default: -c -m /var/run/saslauthd)
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
 
Ich gehe mal davon aus, network, hostname, user und passwort sind schon von dir richtig eingetragen. Ich bin gerade etwas im Stress, kann also sein, dass ich erst morgen dazu komme.

Setze doch derweil mal testweise das chroot aus (master.cf -> chroot = "n")
 
Ja sicher... nur ähem, hast du mein EDIT2 im ersten Beitrag gelesen?
Falls nein nochmal:

Ich habs mitlerweile hinbekommen indem ich alles nochmal neu installiert habe.
 
Ne.., hatte ich natürlich nicht gesehen. Kann im Moment nur alles querlesen. Aber wenns nun klappt, freu' ich mich. Postfix ist echt klasse, obwohl ich ja so'n Exim-Jünger bin. Allein schon wegen meiner "Liebe" zu Perl.

Na dann.. frohes mailen..
 
Oben