[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[postfix-jp: 3553] MAILBOXをLDAPで管理したい



今日は、渡辺と言います。

今、以下の環境にて、PostfixとOpenLDAPを構築中です。
・db-4.6.21
・cyrus-sasl-2.1.23
・heimdal-1.2.1
・openldap-2.4.16
・courier-authlib-0.62.4
・postfix-2.6.2

一応、ldapsearch で情報は拾えました。
ldapsearch -D "uid=Manager,dc=example,dc=co,dc=jp" -w 1234 -b
'dc=example,dc=co,dc=jp' -s sub "(uid=test)"
ldapsearch -D "uid=Manager,dc=example,dc=co,dc=jp" -w 1234 -b
'dc=example,dc=co,dc=jp' -s sub "(mail=test@xxxxxxxxxxxx)"

別途後ろに設定内容を記載してます。

まずは、MailBOXだけを抽出するように、ldap-account.cf に
設定してみました。
OpenLDAPのログを見ると

SRCH "dc=example,dc=co,dc=jp" 2 0  0 10 0
 filter: (&(objectClass=postfixAccount)
(mail=example.co.jp)(accountActive=TRUE))
    attrs:
  homeDirectory
bdb_idl_fetch_key: [8b583444]
send_ldap_result: err=0 matched="" text=""
connection_get(12)

上記のようにmail属性に@の前が入りません。
Postfixのマニュアルを見る限りでは、LdapからMailBoxの属性を
抽出するのには、virtual_mailbox_maps ディレクティブに記載
するしかないようです。
さらに、Postfixのマニュアル見て、mydestination を空白にし
て、virtual_mailbox_domains に example.co.jp を 記載すると
@の前にメールアドレスが入るようになりました。

この動きは正しいのでしょうか。
また、別にvirtualにするつもりはないのですが、Ldapから情報
を抽出には、virtualにするしかないのでしょうか。

よろしくお願いします。


===>Openldap(ldap.conf)
BASE dc=example,dc=co,dc=jp
URI  ldap://192.168.1.10
HOST 192.168.1.10

===>Openldap(slapd.conf)
include /usr/local/openldap/etc/openldap/schema/core.schema
include /usr/local/openldap/etc/openldap/schema/cosine.schema
include /usr/local/openldap/etc/openldap/schema/inetorgperson.schema
include /usr/local/openldap/etc/openldap/schema/nis.schema
include /usr/local/openldap/etc/openldap/schema/postfix.schema

pidfile         /var/ldap/pid/slapd.pid
argsfile        /var/ldap/pid/slapd.args

database        monitor
loglevel        4

access to *
        by self write
        by *    search
        by *    read

database        bdb
suffix          "dc=example,dc=co,dc=jp"
rootdn          "uid=Manager,dc=example,dc=co,dc=jp"

rootpw          1234
directory       /usr/local/openldap/var/openldap-data
index objectClass       eq,pres
index mail              eq,pres,sub
index uid               eq,pres,sub

===> Postfix
/usr/local/postfix/sbin/postconf -n
alias_database = dbm:/etc/postfix/aliases
alias_maps = dbm:/etc/postfix/aliases
command_directory = /usr/local/postfix/sbin
config_directory = /etc/postfix
daemon_directory = /usr/local/postfix/sbin
debug_peer_level = 2
home_mailbox = Maildir/
inet_interfaces = all
mail_owner = postfix
mail_spool_directory = /var/spool/mail/
mailq_path = /usr/local/postfix/bin/mailq
manpage_directory = /usr/local/postfix/usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = example.co.jp
myhostname = mailsv.example.co.jp
mynetworks = 192.168.1.0/24, 127.0.0.0/8
mynetworks_style = subnet
myorigin = $mydomain
newaliases_path = /usr/local/postfix/bin/newaliases
queue_directory = /var/spool/postfix
sendmail_path = /usr/local/postfix/lib/sendmail
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP $mail_name
transport_maps = dbm:/etc/postfix/transport
unknown_local_recipient_reject_code = 550
virtual_mailbox_maps = ldap:/etc/postfix/ldap-account.cf

===> ldap-account.cf
server_host = 192.168.1.10
server_port = 389
version = 3
bind = yes
bind_dn = uid=Manager,dc=example,dc=co,dc=jp
bind_pw = 1213fjse
search_base = dc=example,dc=co,dc=jp
scope = sub
query_filter = (&(objectClass=postfixAccount)(mail=%s)(accountActive=TRUE))
result_attribute = homeDirectory
result_format = %s

_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxxxxxxxxxxxxxxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list


[検索ページ] [Postfix-JP ML Home]