Hi!

I'm using static results in LDAP-lookups:

uris = ldap://127.0.0.1
dn = xxxxxxxxxxxxx
dnpass = xxxxxxxxxxxx
tls = no
ldap_version = 3
base = xxxxxxxxxxxxxxxxx
user_attrs = 
=home=/mail/%d/%n,=uid=10000,=gid=10000,jpberlinMailQuota=quota_rule=*:storage=%$B
user_filter = (email=%u)
pass_attrs = userPassword=password
pass_filter = (email=%u)
default_pass_scheme = PLAIN

Unfortunately, LMTP accepts mail for *all* users, even for those users, 
that doesn't exist in LDAP at all:

010-08-04 12:27:58 auth: Debug: Loading modules from 
directory: /usr/lib/dovecot/modules/auth
2010-08-04 12:27:58 auth: Debug: auth client connected (pid=10049)
2010-08-04 12:27:58 lmtp(10054): Debug: none: root=, index=, control=, 
inbox=
2010-08-04 12:27:58 auth: Debug: master in: USER        1       
tessdfdfgd...@example.org       service=lmtp    lip=(null)      r
ip=(null)
2010-08-04 12:27:58 auth: Debug: 
ldap(tessdfdfgd...@example.org,0.0.0.0): user search: 
base=xxxxxxxxxxxxxxxxxxx
2010-08-04 12:27:58 auth: Debug: 
ldap(tessdfdfgd...@example.org,0.0.0.0): no fields returned by the 
server
2010-08-04 12:27:58 auth: Debug: master out: USER       1       
tessdfdfgd...@example.org       home=/mail/example.org/tessdfdfgd
sft    uid=10000       gid=10000
2010-08-04 12:27:58 lmtp(10054): Debug: auth input: 
tessdfdfgd...@example.org home=/mail/example.org/tessdfdfgdsft 
uid=10000 gid=
10000
2010-08-04 12:27:58 lmtp(10054, tessdfdfgd...@example.org): Debug: 
Effective uid=10000, gid=10000, home=/mail/example.org/tessdfd
fgdsft
2010-08-04 12:27:58 lmtp(10054, tessdfdfgd...@example.org): Debug: 
Namespace : type=private, prefix=, sep=/, inbox=yes, hidden=no
, list=yes, subscriptions=yes
2010-08-04 12:27:58 lmtp(10054, tessdfdfgd...@example.org): Debug: 
maildir++: root=/mail/example.org/tessdfdfgdsft/Maildir, index
=, control=, inbox=/mail/example.org/tessdfdfgdsft/Maildir
2010-08-04 12:27:58 lmtp(10054, tessdfdfgd...@example.org): Debug: 
Namespace : type=shared, prefix=shared/%u/, sep=/, inbox=no, h
idden=no, list=children, subscriptions=no
2010-08-04 12:27:58 lmtp(10054, tessdfdfgd...@example.org): Debug: 
shared: root=/var/run/dovecot, index=, control=, inbox=


Looks like the "allow_all_users"-Problem from the static database. :-) 
How can I tell LMTP do reject Mails to users, that doesn't exist in the 
database/LDAP?

It's much better to do this in Dovecot/LMTP then in Postfix-Relay (which 
can then use LMTP for dynamic address verification).

Peer


-- 

Heinlein Professional Linux Support GmbH
Linux: Akademie - Support - Hosting
http://www.heinlein-support.de

Tel: 030-405051-42
Fax: 030-405051-19

Zwangsangaben lt. §35a GmbHG:
HRB 93818 B / Amtsgericht Berlin-Charlottenburg, 
Geschäftsführer: Peer Heinlein  -- Sitz: Berlin

# 2.0.rc3 (d5a923df60d4): /etc/dovecot/dovecot.conf
# OS: Linux 2.6.26-ac x86_64 Debian 5.0.5 
auth_debug = yes
auth_mechanisms = plain login cram-md5 digest-md5 apop
auth_username_translation = %Lu
auth_verbose = yes
debug_log_path = /tmp/log
disable_plaintext_auth = no
listen = *
log_timestamp = %Y-%m-%d %H:%M:%S 
mail_debug = yes
mail_gid = vmail
mail_location = maildir:~/Maildir
mail_privileged_group = mail
mail_uid = vmail
managesieve_notify_capability = mailto
managesieve_sieve_capability = comparator-i;octet comparator-i;ascii-casemap fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date spamtest spamtestplus virustest
namespace {
  inbox = yes
  list = yes
  location = 
  prefix = 
  separator = /
  subscriptions = yes
  type = private
}
namespace {
  list = children
  location = maildir:%%h:INDEX=~/shared/%%u
  prefix = shared/%%u/
  separator = /
  subscriptions = no
  type = shared
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf
  driver = ldap
}
plugin {
  acl = vfile
  acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
  sieve_max_redirects = 10
}
protocols = lmtp imap
service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0660
    user = postfix
  }
}
userdb {
  args = /etc/dovecot/dovecot-ldap.conf
  driver = ldap
}
verbose_proctitle = yes

Reply via email to