Authentifizierung greift nicht Postfix / Dovecot

Crounus

New Member
Hallo zusammen,

ich habe kein kleines Problem. Ich habe hier einen Debian Squezze Server mit Froxlor und dem Neusten Postfix aus den Debian Paketquellen (2.7.1) am Laufen. An für sich funktioniert auch alles. Die Konfiguration ist ja dank dem Froxlor Webinterface ebenfalls nicht sonderlich schwer.
Leider ist es nun aber so, dass ich zwar Mails versenden kann, das jedoch als anonymer, extern, z. B. via Telnet oder Thunderbird. Aus diesem Zweck wurde eigentich vom Froxlor Webpanel auch vorgeschlagen, dass man in den "smtpd_sender_restrictions" den Parameter "reject_sender_login_mismatch" setzt, jedoch greift dieser bei mir aus unerklärlichen Gründen nicht. Das einzigste was gegen das Versenden von Mails als Anonymer hilft, ist, dass ich am Ende von "smtpd_sender_restrictions" ein "reject" setze. Dann werden jedoch auch ankommende Mails von extern (z. B. echte GMX Adresse an entsprechenden existierenden Benutzer) abgelehnt.
Eigentlich sollte der Postfix sich gegenüber Dovecot authentifizieren und bei "Erfolg" die Mail versenden ...

Ich habe hier mal die Postfixkonfiguration (postconf -n):
Code:
alias_maps = $alias_database
append_dot_mydomain = no
biff = no
body_checks = regexp:/etc/postfix/body_checks.regexp
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
default_destination_concurrency_limit = 20
inet_interfaces = all
local_destination_concurrency_limit = 2
local_transport = local
mailbox_command = /usr/lib/dovecot/deliver
mailbox_size_limit = 0
message_size_limit = 52428800
mydestination = $myhostname,	$mydomain,	localhost.$myhostname,	localhost.$mydomain,	localhost
mydomain = MEINSERVER.DNS
myhostname = MEINSERVER.DNS
mynetworks = 127.0.0.0/8
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_client_restrictions = permit_mynetworks,	permit_sasl_authenticated,	reject_unknown_client_hostname
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks,	reject_sender_login_mismatch,	permit_sasl_authenticated,	reject_unauth_destination,	reject_unauth_pipelining,	reject_non_fqdn_recipient
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
smtpd_sender_restrictions = permit_mynetworks,	reject_sender_login_mismatch,	permit_sasl_authenticated, 	reject_unknown_helo_hostname, 	reject_unknown_recipient_domain, 	reject_unknown_sender_domain
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
virtual_gid_maps = static:2000
virtual_mailbox_base = /var/customers/mail/
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_mailbox_limit = 0
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_transport = dovecot
virtual_uid_maps = static:2000

und die dovecot.conf:
Code:
protocols = imap pop3 
listen = *
mail_access_groups = vmail
mail_debug = no
## allow Plaintext Logins from foreign IP if the Connection doesn't use TLS
disable_plaintext_auth = no

### SSL Settings
### After setting this options, set disable_plaintext_auth to yes (see above)
### and add imaps pop3s to the protocols
#ssl_cert_file = /etc/ssl/server/s3.insanity-hosting.de.pem
#ssl_key_file = /etc/ssl/server/s3.insanity-hosting.de.key
## This is an example with CACerts class3 cert!
#ssl_ca_file = /path/to/cacert.class3.crt
#ssl_cipher_list = ALL:!LOW:!SSLv2

protocol imap {
	mail_plugins = quota imap_quota
}

protocol pop3 {
    # leave this uncommented if you are migrating from Courier also see Migration from Courier
    pop3_uidl_format = UID%u-%v
    mail_plugins = quota
    
}
protocol lda {
	# postmaster is the one in charge of the mail system. MUST be set to a valid address!
    postmaster_address = <postmaster-address>
    auth_socket_path = /var/run/dovecot/auth-master
    mail_plugins = quota
    sendmail_path = /usr/sbin/sendmail
}

auth default {
    mechanisms = plain login
    passdb sql {
        args = /etc/dovecot/dovecot-sql.conf
    }
    
    userdb prefetch {
    }
    
    userdb sql {
        args = /etc/dovecot/dovecot-sql.conf
    }
    
    user = vmail
    socket listen {
    	# Postfix uses the client socket for SMTP Auth
        client {
            # Assuming the default Postfix $queue_directory setting
            path = /var/spool/postfix/private/auth
            mode = 0660
            # Assuming the default Postfix user and group
            user = postfix
            group = postfix
        }
        # Note that we're setting a master socket. SMTP AUTH for Postfix and Exim uses client sockets.
        master {
			path = /var/run/dovecot/auth-master
			mode = 0660
			user = vmail
			group = vmail
    }
        
    }
}
plugin {
	quota = maildir
}

zu guter letzt noch die dovecot-sql.conf:
Code:
driver = mysql
connect = host=127.0.0.1 dbname=froxlor user=froxlor password=PASSWORD
default_pass_scheme = CRYPT
password_query = SELECT username AS user, password_enc AS password, CONCAT(homedir, maildir) AS userdb_home, uid AS userdb_uid, gid AS userdb_gid,  CONCAT('maildir:', homedir, maildir) AS userdb_mail, CONCAT('maildir:storage=', (quota*1024)) as userdb_quota FROM mail_users WHERE (username = '%u' OR email = '%u') AND ((imap = 1 AND '%Ls' = 'imap') OR (pop3 = 1 AND '%Ls' = 'pop3') OR '%Ls' = 'smtp')
user_query = SELECT CONCAT(homedir, maildir) AS home, CONCAT('maildir:', homedir, maildir) AS mail, uid, gid, CONCAT('maildir:storage=', (quota*1024)) as quota FROM mail_users WHERE (username = '%u' OR email = '%u')

Ich hoffe ihr könnt mir hier etwas unter die Arme greifen. - Ich bin mit meinem Latein nach etlichen Tests am Ende :(

Grüße
Crounus
 
Oh mann, ich habs! - Und es war natürlich das banalste!

Wie schon gesagt, ich benutze Postfix mit Dovecot Authentifizierung. Nun stand beim Konfigurationszweig im Froxlor Webpanel, dass man folgenden Eintrag in die master.cf aufnehmen soll:

Code:
dovecot	  unix	-	n	n	-	-	pipe
	flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

an für sich klar, damit dovecot zur Auslieferung genutzt wird. Nur habe ich genau diesen Befehl ans Ende der Datei gestellt. Ich hab den Befehl nun also ganz noch oben genommen und siehe da, die Authentifizierung greift, das Versenden von Mails ist nur dann möglich, wenn ich auch eingeloggt bin :)
 
Back
Top