Postfix + MySQL + Dovecot + Saslauthd Problem....

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
xabbu
Posts: 13
Joined: 2005-02-22 16:45
 

Postfix + MySQL + Dovecot + Saslauthd Problem....

Post by xabbu »

Hi zusammen,

ich schlag mich nun schon länger mit einem Problem rum und konnte es bis jetzt nicht lösen.
Und zwar bekomme ich immer, wenn ich eine Email versenden möchte folgenden Fehler:

Code: Select all

NOQUEUE: reject: RCPT from my.host.name[XXX.XXX.XXX]: 554 5.7.1 <my@reciptent.tld>: Relay access denied; from=<my@domain.tld> to=<my@reciptent.tld> proto=ESMTP helo=<[XXX.XXX.XXX]>
postfix/smtpd[12964]: generic_checks: name=reject_unauth_destination status=2

Abrufen von Emails per pop/imap funktioniert einwandfrei. Ebenso wie das mailen an lokal vorhandene Domains. Nur beim senden an externe Email Adressen von einem Mail-Clienten der nicht auf dem Server liegt kommt der oben genannte Fehler.
Wenn ich mein Webmail auf dem Server benutze, kann ich Mails überall hinsenden, aber ich denke, dass das durch die Regel "permit_my_networks" erlaubt ist.

Was auch komisch ist, dass mein Email Client beim anmelden nicht mal versucht sich zu authentifizieren (Ja, ich habe die Einstellungen richtig gemacht im Outlook und im Thunderbird :wink: ):

Code: Select all

my.host.name[XXX.XXX.XXX]: EHLO [XXX.XXX.XXX]
my.host.name[XXX.XXX.XXX]: 250-server.hostname.tld
my.host.name[XXX.XXX.XXX]: 250-PIPELINING
my.host.name[XXX.XXX.XXX]: 250-SIZE 10240000
my.host.name[XXX.XXX.XXX]: 250-VRFY
: match_list_match: my.host.name: no match
match_list_match: XXX.XXX.XXX: no match
my.host.name[XXX.XXX.XXX]: 250-ETRN
my.host.name[XXX.XXX.XXX]: 250-ENHANCEDSTATUSCODES
my.host.name[XXX.XXX.XXX]: 250-8BITMIME
my.host.name[XXX.XXX.XXX]: 250 DSN
watchdog_pat: 0x80830f8
< my.host.name[XXX.XXX.XXX]: MAIL FROM:<my@domain.tld> SIZE=440


Eine Ausgabe von ps aux | grep sasl zeigt das folgende:

Code: Select all

root     13677  0.0  0.0  7516  844 ?        Ss   08:18   0:00 /usr/sbin/saslauthd -a pam -c -n 5
root     13678  0.0  0.0  7516  504 ?        S    08:18   0:00 /usr/sbin/saslauthd -a pam -c -n 5
root     13679  0.0  0.0  7516  372 ?        S    08:18   0:00 /usr/sbin/saslauthd -a pam -c -n 5
root     13680  0.0  0.0  7516  372 ?        S    08:18   0:00 /usr/sbin/saslauthd -a pam -c -n 5
root     13681  0.0  0.0  7516  372 ?        S    08:18   0:00 /usr/sbin/saslauthd -a pam -c -n 5
root     15056  0.0  0.0  3836  732 pts/3    R+   09:52   0:00 grep sasl

Ich habe auch pop-before-smtp installiert. Aber auch das möchte nicht funktionieren...


Hier mal die Konfigurationsdateien:

postconf -n

Code: Select all

alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
myorigin = server-name.tld
relay_domains = mysql:/etc/postfix/mysql_relay_domains_maps.cf
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, check_client_access hash:/etc/pop-before-smtp,  reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = no
smtpd_tls_cert_file = /etc/postfix/sasl/domain.tld.cert
smtpd_tls_key_file = /etc/postfix/sasl/domain.tld.key
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:1002
virtual_mailbox_base = /usr/local/virtual
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 1002
virtual_transport = virtual
virtual_uid_maps = static:1002

master.cf

Code: Select all

#service  type  private unpriv  chroot  wakeup  maxproc command + args
smtp      inet  n       -       n       -       -       smtpd -v -v
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
maildrop  unix  -       n       n       -       -       pipe
uucp      unix  -       n       n       -       -       pipe
ifmail    unix  -       n       n       -       -       pipe
bsmtp     unix  -       n       n       -       -       pipe
scalemail-backend unix  -       n       n       -       2       pipe
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
scache    unix  -       -       -       -       1       scache
discard   unix  -       -       -       -       -       discard
smtpd.conf

Code: Select all

pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
log_level: 7
sql_engine: mysql
sql_hostnames: localhost
sql_user: dbuser
sql_passwd: dbpass
sql_database: postfix
sql_select: select password from mailbox where username = '%u@%r'
sql_usessl: no

dovecot.conf

Code: Select all

protocols = imap imaps pop3 pop3s
listen = *
login_process_size = 64
default_mail_env = maildir:/usr/local/virtual/%u/
disable_plaintext_auth=no

namespace private {
    separator = .
    prefix = INBOX.
    inbox = yes
}

namespace private {
    separator = .
    prefix =
    inbox = yes
    hidden = yes
}

mail_extra_groups = postfix
verbose_proctitle = yes
first_valid_uid = 1002
first_valid_gid = 1002
#umask = 0077
mbox_read_locks = fcntl
mbox_write_locks = fcntl

ssl_disable = no

ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem

# If key file is password protected, give the password here. Alternatively
# give it when starting dovecot with -p parameter.
ssl_key_password =

protocol imap {
    imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
}

protocol pop3 {
    pop3_uidl_format = %08Xu%08Xv
    pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}

protocol lda {
    postmaster_address = postmaster@yourdomain.tld
    sendmail_path = /usr/local/sbin/sendmail
}

auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@

auth_debug = yes
auth_verbose = yes
auth default {
	passdb sql {
            args = /etc/dovecot/dovecot-mysql.conf
        }

        userdb sql {
            args = /etc/dovecot/dovecot-mysql.conf
        }
}

Ich hoffe einer von Euch kann mir weiterhelfen, da ich im Moment wirklich nicht mehr weiter weis......

Gruss
Xabbu
squize
Userprojekt
Userprojekt
Posts: 729
Joined: 2003-05-19 16:46
Location: Karlsruhe
 

Re: Postfix + MySQL + Dovecot + Saslauthd Problem....

Post by squize »

Ich würde folgende Änderungen probieren:

/etc/postfix/main.cf:
virtual_transport = virtual
virtual_uid_maps = static:1002

# auch die gid setzen
virtual_gid_maps = static:1002

# SASL aktivieren damit das Ganze überhaupt funktioniert, fehlt bei dir
smtpd_sasl_auth_enable = yes

# Nicht wirklich notwendig
smtpd_sasl_local_domain = $myhostname

# wir wollen keine anonyme Anmeldung
smtpd_sasl_security_options = noanonymous

# Outlook und andere Krankheiten
broken_sasl_auth_clients = yes
smtpd.conf:
pwcheck_method: auxprop
auxprop_plugin: sql
# keine anonyme Anmeldung
allowanonymouslogin: no
allowplaintext: yes
mech_list: plain login cram-md5 digest-md5
sql_engine: mysql
sql_hostnames: localhost
sql_user: postfix
sql_passwd: passwd
sql_database: postfix
sql_statement: select password from mail_users where email='%u@%r'
sql_verbose: no
Gruss

Marc

P.S.: Wenn du Dovecot benutzt kannst du dir auch den ganzen SASL-Nummer sparen und über Dovecot authentifizieren