derThorsten
New Member
Hallo Forum,
das ist mein erster Beitrag, also erstmal ein herzliches halihalo.
Ich versuche gerade anhand von einer 7 Jahre alten Konfiguration und einiger Tutorials im Netz eine funktionierende Konfiguration wie im Titel beschrieben aufzubauen.
Postfix als MTA, Dovecot für IMAP und die Authentifizierung jeweils über MySQL.
Dabei sollen die Passwörter soweit möglich verschlüsselt gespeichert und übertragen werden, alle Verbindungen sollen per STARTTLS verschlüsselt sein.
Das ganze findet auf einem Debian 5 Root Server bei 1&1 statt.
Bis jetzt funktionieren:
- Dovecot IMAP per STARTTLS und verschlüsseltem Passwort (CRAM-MD5)
- Postfix senden von Lokal zu einer externen Domain
- Postfix senden von Lokal zu einer lokalen Virtuellen Domain
Was noch Fehlt:
- Postfix nimmt keine Mails von externen clients entgegen.
*UPDATE* Damit meine ich, mails die von einem User in den virtuellen User- Tabellen von einem externen Client über den
SMTP versendet werden sollen (also xy@myhost -> zzz@gmail.com) werden nicht akzeptiert.
Der Fehler laut log ist:
die Authentifizierung von Dovecot (über die gleiche Tabelle) funktioniert allerdings wunderbar....
testsaslauthd liefer auch ein "NO - Authentification Failure"
Ich sitze jetzt schon 3 Tage nahezu Vollzeit dran und kann auch nicht ausschliessen, daß sich irgendwo der Wald versteckt hat, den man vor lauter Bäumen nach einer Weile nicht mehr sieht.
Hier meine configs:
saslfinger -s:
dovecot.conf:
postconf -e
dovcecot-sql.conf
/etc/postfix/sasl/smtpd.conf:
mysql-virtual_domains.cf:
bei den nächsten Dateien spare ich mir user, pw, etc
mysql-virtual_email2email.cf
mysql-virtual_forwardings.cf
mysql-virtual_mailboxes.cf
/etc/default/saslauthd:
Soooooooooooo. Das ist schonmal die Konfiguration.
Folgende Problem(lösungs)ansätze habe ich schon in anderen Foren / Postings
gefunden und entsprechend berücksichtigt:
1. Smtp läuft im chroot
-> Im Startscript von postfix unter FILE die Einträge
hinzugefügt.
2. Fehlende Libs
--> dpkg -l | grep sasl
--> dpgk -l | grep postfix
--> dpgk -l | grep dovecot
3. SASL läuft nicht
--> ps -aux | grep sasl
Vermutlich habe ich noch ein paar Sachen ausprobiert, aber wie gesagt ich sitze schon ein paar Tage daran und habe nicht alles dokumentiert.
Wenn jemand mal (kurz) über die Config drüber schauen könnte oder mir einen Tipp geben kann, wie ich die Details der Verbindung besser überprüfen kann als mit "smtp -v" in der master.cf würde mir das sehr weiterhelfen.
Danke im Voraus,
Thorsten
das ist mein erster Beitrag, also erstmal ein herzliches halihalo.
Ich versuche gerade anhand von einer 7 Jahre alten Konfiguration und einiger Tutorials im Netz eine funktionierende Konfiguration wie im Titel beschrieben aufzubauen.
Postfix als MTA, Dovecot für IMAP und die Authentifizierung jeweils über MySQL.
Dabei sollen die Passwörter soweit möglich verschlüsselt gespeichert und übertragen werden, alle Verbindungen sollen per STARTTLS verschlüsselt sein.
Das ganze findet auf einem Debian 5 Root Server bei 1&1 statt.
Bis jetzt funktionieren:
- Dovecot IMAP per STARTTLS und verschlüsseltem Passwort (CRAM-MD5)
- Postfix senden von Lokal zu einer externen Domain
- Postfix senden von Lokal zu einer lokalen Virtuellen Domain
Was noch Fehlt:
- Postfix nimmt keine Mails von externen clients entgegen.
*UPDATE* Damit meine ich, mails die von einem User in den virtuellen User- Tabellen von einem externen Client über den
SMTP versendet werden sollen (also xy@myhost -> zzz@gmail.com) werden nicht akzeptiert.
Der Fehler laut log ist:
Code:
warning: SASL authentication failure: no secret in databas
die Authentifizierung von Dovecot (über die gleiche Tabelle) funktioniert allerdings wunderbar....
testsaslauthd liefer auch ein "NO - Authentification Failure"
Ich sitze jetzt schon 3 Tage nahezu Vollzeit dran und kann auch nicht ausschliessen, daß sich irgendwo der Wald versteckt hat, den man vor lauter Bäumen nach einer Weile nicht mehr sieht.
Hier meine configs:
saslfinger -s:
Code:
saslfinger - postfix Cyrus sasl configuration Wed Jul 6 14:31:16 CEST 2011
version: 1.0.4
mode: server-side SMTP AUTH
-- basics --
Postfix: 2.5.5
System: Debian GNU/Linux 5.0 \n \l
-- smtpd is linked to --
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00007f9c8f38b000)
-- active SMTP AUTH and TLS parameters for smtpd --
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /var/ssl/cert.pem
smtpd_tls_key_file = /var/ssl/server.key
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_session_cache
smtpd_use_tls = yes
-- listing of /usr/lib64/sasl2 --
total 924
drwxr-xr-x 2 root root 4096 2011-07-06 14:01 .
drwxr-xr-x 41 root root 8192 2011-07-06 14:01 ..
-rw-r--r-- 1 root root 19084 2009-05-24 18:31 libanonymous.a
-rw-r--r-- 1 root root 855 2009-05-24 18:31 libanonymous.la
-rw-r--r-- 1 root root 16048 2009-05-24 18:31 libanonymous.so
-rw-r--r-- 1 root root 16048 2009-05-24 18:31 libanonymous.so.2
-rw-r--r-- 1 root root 16048 2009-05-24 18:31 libanonymous.so.2.0.22
-rw-r--r-- 1 root root 22138 2009-05-24 18:31 libcrammd5.a
-rw-r--r-- 1 root root 841 2009-05-24 18:31 libcrammd5.la
-rw-r--r-- 1 root root 19248 2009-05-24 18:31 libcrammd5.so
-rw-r--r-- 1 root root 19248 2009-05-24 18:31 libcrammd5.so.2
-rw-r--r-- 1 root root 19248 2009-05-24 18:31 libcrammd5.so.2.0.22
-rw-r--r-- 1 root root 60696 2009-05-24 18:31 libdigestmd5.a
-rw-r--r-- 1 root root 864 2009-05-24 18:31 libdigestmd5.la
-rw-r--r-- 1 root root 48576 2009-05-24 18:31 libdigestmd5.so
-rw-r--r-- 1 root root 48576 2009-05-24 18:31 libdigestmd5.so.2
-rw-r--r-- 1 root root 48576 2009-05-24 18:31 libdigestmd5.so.2.0.22
-rw-r--r-- 1 root root 19422 2009-05-24 18:31 liblogin.a
-rw-r--r-- 1 root root 835 2009-05-24 18:31 liblogin.la
-rw-r--r-- 1 root root 16720 2009-05-24 18:31 liblogin.so
-rw-r--r-- 1 root root 16720 2009-05-24 18:31 liblogin.so.2
-rw-r--r-- 1 root root 16720 2009-05-24 18:31 liblogin.so.2.0.22
-rw-r--r-- 1 root root 38564 2009-05-24 18:31 libntlm.a
-rw-r--r-- 1 root root 829 2009-05-24 18:31 libntlm.la
-rw-r--r-- 1 root root 32496 2009-05-24 18:31 libntlm.so
-rw-r--r-- 1 root root 32496 2009-05-24 18:31 libntlm.so.2
-rw-r--r-- 1 root root 32496 2009-05-24 18:31 libntlm.so.2.0.22
-rw-r--r-- 1 root root 19462 2009-05-24 18:31 libplain.a
-rw-r--r-- 1 root root 835 2009-05-24 18:31 libplain.la
-rw-r--r-- 1 root root 16688 2009-05-24 18:31 libplain.so
-rw-r--r-- 1 root root 16688 2009-05-24 18:31 libplain.so.2
-rw-r--r-- 1 root root 16688 2009-05-24 18:31 libplain.so.2.0.22
-rw-r--r-- 1 root root 29764 2009-05-24 18:31 libsasldb.a
-rw-r--r-- 1 root root 866 2009-05-24 18:31 libsasldb.la
-rw-r--r-- 1 root root 22136 2009-05-24 18:31 libsasldb.so
-rw-r--r-- 1 root root 22136 2009-05-24 18:31 libsasldb.so.2
-rw-r--r-- 1 root root 22136 2009-05-24 18:31 libsasldb.so.2.0.22
-rw-r--r-- 1 root root 33600 2009-05-24 18:31 libsql.a
-rw-r--r-- 1 root root 964 2009-05-24 18:31 libsql.la
-rw-r--r-- 1 root root 27936 2009-05-24 18:31 libsql.so
-rw-r--r-- 1 root root 27936 2009-05-24 18:31 libsql.so.2
-rw-r--r-- 1 root root 27936 2009-05-24 18:31 libsql.so.2.0.22
-- listing of /usr/lib/sasl2 --
total 924
drwxr-xr-x 2 root root 4096 2011-07-06 14:01 .
drwxr-xr-x 41 root root 8192 2011-07-06 14:01 ..
-rw-r--r-- 1 root root 19084 2009-05-24 18:31 libanonymous.a
-rw-r--r-- 1 root root 855 2009-05-24 18:31 libanonymous.la
-rw-r--r-- 1 root root 16048 2009-05-24 18:31 libanonymous.so
-rw-r--r-- 1 root root 16048 2009-05-24 18:31 libanonymous.so.2
-rw-r--r-- 1 root root 16048 2009-05-24 18:31 libanonymous.so.2.0.22
-rw-r--r-- 1 root root 22138 2009-05-24 18:31 libcrammd5.a
-rw-r--r-- 1 root root 841 2009-05-24 18:31 libcrammd5.la
-rw-r--r-- 1 root root 19248 2009-05-24 18:31 libcrammd5.so
-rw-r--r-- 1 root root 19248 2009-05-24 18:31 libcrammd5.so.2
-rw-r--r-- 1 root root 19248 2009-05-24 18:31 libcrammd5.so.2.0.22
-rw-r--r-- 1 root root 60696 2009-05-24 18:31 libdigestmd5.a
-rw-r--r-- 1 root root 864 2009-05-24 18:31 libdigestmd5.la
-rw-r--r-- 1 root root 48576 2009-05-24 18:31 libdigestmd5.so
-rw-r--r-- 1 root root 48576 2009-05-24 18:31 libdigestmd5.so.2
-rw-r--r-- 1 root root 48576 2009-05-24 18:31 libdigestmd5.so.2.0.22
-rw-r--r-- 1 root root 19422 2009-05-24 18:31 liblogin.a
-rw-r--r-- 1 root root 835 2009-05-24 18:31 liblogin.la
-rw-r--r-- 1 root root 16720 2009-05-24 18:31 liblogin.so
-rw-r--r-- 1 root root 16720 2009-05-24 18:31 liblogin.so.2
-rw-r--r-- 1 root root 16720 2009-05-24 18:31 liblogin.so.2.0.22
-rw-r--r-- 1 root root 38564 2009-05-24 18:31 libntlm.a
-rw-r--r-- 1 root root 829 2009-05-24 18:31 libntlm.la
-rw-r--r-- 1 root root 32496 2009-05-24 18:31 libntlm.so
-rw-r--r-- 1 root root 32496 2009-05-24 18:31 libntlm.so.2
-rw-r--r-- 1 root root 32496 2009-05-24 18:31 libntlm.so.2.0.22
-rw-r--r-- 1 root root 19462 2009-05-24 18:31 libplain.a
-rw-r--r-- 1 root root 835 2009-05-24 18:31 libplain.la
-rw-r--r-- 1 root root 16688 2009-05-24 18:31 libplain.so
-rw-r--r-- 1 root root 16688 2009-05-24 18:31 libplain.so.2
-rw-r--r-- 1 root root 16688 2009-05-24 18:31 libplain.so.2.0.22
-rw-r--r-- 1 root root 29764 2009-05-24 18:31 libsasldb.a
-rw-r--r-- 1 root root 866 2009-05-24 18:31 libsasldb.la
-rw-r--r-- 1 root root 22136 2009-05-24 18:31 libsasldb.so
-rw-r--r-- 1 root root 22136 2009-05-24 18:31 libsasldb.so.2
-rw-r--r-- 1 root root 22136 2009-05-24 18:31 libsasldb.so.2.0.22
-rw-r--r-- 1 root root 33600 2009-05-24 18:31 libsql.a
-rw-r--r-- 1 root root 964 2009-05-24 18:31 libsql.la
-rw-r--r-- 1 root root 27936 2009-05-24 18:31 libsql.so
-rw-r--r-- 1 root root 27936 2009-05-24 18:31 libsql.so.2
-rw-r--r-- 1 root root 27936 2009-05-24 18:31 libsql.so.2.0.22
-- listing of /etc/postfix/sasl --
total 16
drwxr-xr-x 2 root root 4096 2011-07-05 14:36 .
drwxr-xr-x 3 root root 4096 2011-07-05 08:28 ..
-rwxr-xr-x 1 root root 213 2011-07-05 14:35 encode_sasl_plain.pl
-rw-r--r-- 1 root root 439 2011-07-06 11:57 smtpd.conf
-- content of /etc/postfix/sasl/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: CRAM-MD5
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: --- replaced ---
sql_passwd: --- replaced ---
sql_database: maildb
sql_select: select password from users where email='%u@%r'
-- content of /etc/postfix/sasl/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: CRAM-MD5
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: --- replaced ---
sql_passwd: --- replaced ---
sql_database: maildb
sql_select: select password from users where email='%u@%r'
-- active services in /etc/postfix/master.cf --
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
smtp inet n - - - - smtpd -v
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - n 300 1 qmgr
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
relay unix - - - - - smtp
-o smtp_fallback_relay=
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
maildrop unix - n n - - pipe
flags=DRhu user=mailuser argv=/usr/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 -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}
-- mechanisms on localhost --
-- end of saslfinger output --
dovecot.conf:
Code:
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
mail_debug=yes
protocols = imap imaps
ssl_cert_file= /var/ssl/cert.pem
ssl_key_file = /var/ssl/server.key
mail_privileged_group = mailuser
protocol imap {
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
protocol managesieve {
}
protocol lda {
hostname = *MYHOSTNAME*
postmaster_address = postmaster@*MYHOSTNAME*
auth_socket_path = /var/run/dovecot/auth-master
mail_plugin_dir = /usr/lib/dovecot/modules/lda
mail_plugins = cmusieve
}
disable_plaintext_auth = yes
auth default {
#mechanisms = plain login
mechanisms =cram-md5
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
passdb pam {}
passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
userdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
user = root
}
dict {
}
plugin {}
postconf -e
Code:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
home_mailbox = /var/mail/
inet_interfaces = all
mydestination = localhost
mydomain = *MYDOMAIN*
myhostname = *MYHOSTNAME*
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname
notify_classes = resource, software, protocol, bounce
relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_email2email.cf
relayhost =
smtp_sasl_password_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_hostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_unknown_recipient_domain, permit_auth_destination reject
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /var/ssl/cert.pem
smtpd_tls_key_file = /var/ssl/server.key
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_session_cache
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_forwardings.cf mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_gid_maps = static:1002
virtual_mailbox_base = /var/mail/
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_minimum_uid = 1002
virtual_uid_maps = static:1002
dovcecot-sql.conf
Code:
driver = mysql
connect = dbname=XX user=XX password=XX host=127.0.0.1
default_pass_scheme = CRAM-MD5
user_query = SELECT '/var/mail/%d/%n' as home, 1002 as uid, 1002 as gid FROM users WHERE email = '%u'
password_query = SELECT concat(username, '@', domain) as user, password, '/var/mail/%d/%n' as userdb_home, 1002 as userdb_uid, 1002 as userdb_gid FROM users WHERE email = '%u'
/etc/postfix/sasl/smtpd.conf:
Code:
pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: CRAM-MD5
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: maildb_user
sql_passwd: xxxxx
sql_database: xxxxx
sql_select: select password from users where email='%u@%r'
mysql-virtual_domains.cf:
Code:
user = xxxx
password = xxx
dbname = xxx
hosts = 127.0.0.1
query = SELECT domain AS virtual FROM domains WHERE domain='%s'
bei den nächsten Dateien spare ich mir user, pw, etc
mysql-virtual_email2email.cf
Code:
query = SELECT email FROM users WHERE email='%s'
mysql-virtual_forwardings.cf
Code:
query = SELECT destination FROM forwardings WHERE source='%s'
mysql-virtual_mailboxes.cf
Code:
query = SELECT destination FROM forwardings WHERE source='%s'
/etc/default/saslauthd:
Code:
START=yes
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
PWDIR="/var/spool/postfix/var/run/saslauthd"
PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pod"
Soooooooooooo. Das ist schonmal die Konfiguration.
Folgende Problem(lösungs)ansätze habe ich schon in anderen Foren / Postings
gefunden und entsprechend berücksichtigt:
1. Smtp läuft im chroot
-> Im Startscript von postfix unter FILE die Einträge
Code:
FILES="etc/localtime etc/services etc/resolv.conf etc/hosts \
etc/nsswitch.conf etc/nss_mdns.config etc/sasldb2"
2. Fehlende Libs
--> dpkg -l | grep sasl
Code:
ii libsasl2-2 2.1.22.dfsg1-23+lenny1 Cyrus SASL - authentication abstraction libr
ii libsasl2-modules 2.1.22.dfsg1-23+lenny1 Cyrus SASL - pluggable authentication module
ii libsasl2-modules-sql 2.1.22.dfsg1-23+lenny1 Cyrus SASL - pluggable authentication module
ii sasl2-bin 2.1.22.dfsg1-23+lenny1 Cyrus SASL - administration programs for SAS
--> dpgk -l | grep postfix
Code:
ii postfix 2.5.5-1.1+lenny1 High-performance mail transport agent
ii postfix-mysql 2.5.5-1.1+lenny1 MySQL map support for Postfix
--> dpgk -l | grep dovecot
Code:
ii dovecot-common 1:1.0.15-2.3+lenny1 secure mail server that supports mbox and ma
ii dovecot-imapd 1:1.0.15-2.3+lenny1 secure IMAP server that supports mbox and ma
3. SASL läuft nicht
--> ps -aux | grep sasl
Code:
root 16201 0.0 0.0 61460 1572 ? Ss 07:08 0:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5
(mehrfach)
root 18069 0.0 0.0 53048 912 ? Ss 10:03 0:00 /usr/sbin/saslauthd -a pam -c -m /var/spool/postfix/var/run/saslauthd -n 5
(mehrfach)
Vermutlich habe ich noch ein paar Sachen ausprobiert, aber wie gesagt ich sitze schon ein paar Tage daran und habe nicht alles dokumentiert.
Wenn jemand mal (kurz) über die Config drüber schauen könnte oder mir einen Tipp geben kann, wie ich die Details der Verbindung besser überprüfen kann als mit "smtp -v" in der master.cf würde mir das sehr weiterhelfen.
Danke im Voraus,
Thorsten
Last edited by a moderator: