dovecot/postfix 让我有两个不同的文件夹相同的用户(用户;用户@域)

dovecot/postfix 让我有两个不同的文件夹相同的用户(用户;用户@域)

我在使用 Dovecot/Postfix/LDAP/SASL 配置文件时遇到了一些问题:LDAP 查询、SASL 配置都可以正常工作,但我的问题是 postfix 和 dovecot:当我第一次登录 outlook/thunderbird/etc.. 时,它会在 /var/mail 下创建用户名文件夹,如果我尝试发送电子邮件,它会创建用户名@域文件夹。

我非常希望你能帮助我。谢谢

Dovecot 配置:

auth_gssapi_hostname = oc.test.comp.com
    auth_krb5_keytab = /etc/krb5.keytab
    auth_mechanisms = plain gssapi
    first_valid_gid = 100
    first_valid_uid = 100
    mail_gid = vmail
    mail_location = maildir:/var/mail/%u/Maildir
    mail_privileged_group = mail
    mail_uid = vmail
    managesieve_notify_capability = mailto
    managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave
    namespace {
      inbox = yes
      location = 
      prefix = 
      separator = /
      type = private
    }
    namespace {
      list = children
      location = maildir:/var/mail/%%u:INDEX=/var/mail/%u/shared/%%u
      prefix = shared/%%u/
      separator = /
      type = shared
    }
    passdb {
      args = /etc/dovecot/dovecot-ldap.conf
      driver = ldap
    }
    passdb {
      args = /etc/dovecot/dovecot-sql.conf
      driver = sql
    }
    plugin {
      sieve = ~/.dovecot.sieve
      sieve_dir = ~/sieve
    }
    protocols = imap lmtp sieve pop3
    service auth {
      unix_listener /var/spool/postfix/private/auth {
        group = postfix
        mode = 0666
        user = postfix
      }
    }
    ssl = required
    ssl_cert = </etc/ssl/mail/oc.test.comp.com.crt
    ssl_key = </etc/ssl/mail/oc.test.comp.com.key
    userdb {
      args = uid=106 gid=114 home=/var/mail/%u allow_all_users=yes
      driver = static
    }

Dovecot Ldap:

/etc/dovecot/dovecot-ldap.conf

    hosts = 127.0.0.1:389 10.24.25.244:389
    dn = cn=dovecot,cn=users,dc=test,dc=comp,dc=com 
    dnpass = ****** 
    auth_bind = yes 
    tls = no 
    deref = never 
    ldap_version = 3 
    base = cn=users,dc=test,dc=comp,dc=com 
    scope = subtree 
    user_attrs = =home=/var/mail,=mail=maildir:/var/mail/%n/Maildir,=uid=106,=gid=114,maxStorage=quota_rule=*:storage=%$M,=quota_rule2=Trash:storage=+100M 
    user_filter = (&(|(mail=%u)(uid=%u))(objectClass=user)(!(userAccountControl=514))) 
    pass_attrs = uid=user 
    pass_filter = (&(|(mail=%u)(uid=%u))(objectClass=user)(!(userAccountControl=514)))

Dovecot-sql 假的:

/etc/dovecot/dovecot-sql.conf:
driver = sqlite
connect = /tmp/dovecot.fake.sqlite
default_pass_scheme =PLAIN
password_query = SELECT '%u' AS user, '*****' AS password

Postfix main.cf:

smtpd_banner = $myhostname ESMTP ePigeon (SOGo) 
biff = no 
append_dot_mydomain = no 
readme_directory = no 

# SASL parameters 
# --------------------------------- 
# Enable SASL (required for SMTP authentication) 
smtpd_sasl_local_domain = oc.test.comp.com 
smtpd_sasl_type = dovecot 

queue_directory = /var/spool/postfix 
smtpd_sasl_path = private/auth 

# Enable SASL for Outlook-Clients as well 
broken_sasl_auth_clients = yes 

smtpd_sasl_auth_enable = yes 
smtpd_sasl_security_options = noanonymous 
#smtpd_sasl_local_domain = 
smtpd_sasl_authenticated_header = yes 



### TLS ### 
smtpd_use_tls = yes 

smtpd_tls_cert_file = /etc/ssl/mail/oc.test.comp.com.crt 
smtpd_tls_key_file = /etc/ssl/mail/oc.test.comp.com.key 
smtpd_tls_CAfile = /etc/ssl/mail/comp_root_CA.crt

smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_session_cache 
smtpd_tls_dh512_param_file = ${config_directory}/certs/dh_512.pem 
smtpd_tls_dh1024_param_file = ${config_directory}/certs/dh_1024.pem 

smtpd_tls_security_level = may 
smtpd_tls_auth_only = yes 



# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for 
# information on enabling SSL in the smtp client. 

dovecot_destination_recipient_limit = 1 
virtual_mailbox_domains = test.comp.com 
virtual_transport = dovecot 


myhostname = oc 
alias_maps = hash:/etc/aliases 
alias_database = hash:/etc/aliases 
myorigin = /etc/mailname 
mydestination = localhost 

mynetworks = 127.0.0.0/23 10.24.0.0/23 
mailbox_size_limit = 0 
recipient_delimiter = + 
inet_interfaces = all 

smtpd_recipient_restrictions = 
        reject_non_fqdn_recipient 
        reject_unknown_recipient_domain 
        reject_unauth_destination 
        permit_sasl_authenticated 
        permit_mynetworks 
        permit 

smtpd_sender_restrictions = 
        reject_non_fqdn_sender 
        reject_unknown_sender_domain 


mailbox_command = 
smtp_use_tls = no 
smtpd_tls_received_header = no 
smtpd_tls_mandatory_protocols = SSLv3, TLSv1 
smtpd_tls_mandatory_ciphers = medium 
tls_random_source = dev:/dev/urandom 


smtpd_sender_login_maps = proxy:ldap:/etc/postfix/ad_sender_login_maps.cf 
virtual_mailbox_maps = proxy:ldap:/etc/postfix/ad_virtual_mailbox_maps.cf 
virtual_alias_maps = proxy:ldap:/etc/postfix/ad_virtual_group_maps.cf

ldap 查询,我离开了登录表单。

/etc/postfix/ad_sender_login_maps.cf 
.... etc....
# Filter 
query_filter    = (&(userPrincipalName=%s)(objectClass=person)(!(userAccountControl:1.2.840.11355$
result_attribute= userPrincipalName
debuglevel      = 0

/etc/postfix/ad_virtual_mailbox_maps.cf
...etc...
# Filter 
query_filter    = (&(objectclass=person)(userPrincipalName=%s)) 
result_attribute= userPrincipalName 
result_format   = %u/Maildir/ 
debuglevel      = 0

/etc/postfix/ad_virtual_group_maps.cf
...etc...
# Filter 
query_filter    = (&(objectClass=group)(mail=%s)) 
special_result_attribute = member 
#leaf_result_attribute = mail 
result_attribute= userPrincipalName 
debuglevel      = 0

结果:sudo postmap -q[电子邮件保护]ldap:/etc/postfix/ad_virtual_mailbox_maps.cf elso/Maildir/

sudo  postmap -q [email protected] ldap:/etc/postfix/ad_sender_login_maps.cf
[email protected]

后缀 master.conf: master.cf:

smtp      inet  n       -       -       -       -       smtpd 
smtps     inet  n       -       n       -       -       smtpd 
  -o syslog_name=postfix/smtps 
  -o smtpd_tls_wrappermode=yes 
  -o smtpd_sasl_auth_enable=yes 
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject


pickup    unix  n       -       -       60      1       pickup 
cleanup   unix  n       -       -       -       0       cleanup 
qmgr      unix  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 
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=DRcom user=vmail argv=/usr/bin/maildrop -d ${recipient} 
uucp      unix  -       n       n       -       -       pipe 
  flags=Fqcom 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} 
dovecot   unix  -       n       n       -       -       pipe 
   flags=ODRcom user=vmail:vmail argv=/usr/lib/dovecot/deliver -e -f ${sender} -d ${recipient}

答案1

谢谢 masegaloeh!

也许您在 dovecot-ldap.conf 中的 userdb { args }' 和 user_attrs ` 中存在不匹配的情况 – masegaloeh 22 小时前

旧的:

userdb {
      args = uid=106 gid=114 home=/var/mail/%u allow_all_users=yes
      driver = static
    }

新的:

 userdb {
          args = uid=106 gid=114 home=/var/mail/%n allow_all_users=yes
          driver = static
        }

相关内容