以下は、内容が省略され過ぎで分かりにくいため、こちらをご覧下さい。
Postfix+Dovecot+LDAP(バーチャルメールボックス)
| Table of Contents |
はじめに
バーチャルメールボックスについて
Postfixはローカルメールボックス配送にUNIXアカウントを利用しますが、
全メールユーザにUNIXアカウントを与える事はセキュリティ的に好ましくありません。
そこで、バーチャルメールボックスという仕組みを利用してUNIXアカウントが無くても
メール配送が行われるようにします。
前提
- メール管理用ユーザ
- mailadmin
- メールボックス
- /var/vmail/ユーザ名/Maildir
インストール環境
- OS
- CentOS 5.3
- パッケージ
- postfix-2.3.3-2.1.el5_2
- dovecot-1.0.7-7.el5
- openldap-servers-2.3.43-3.el5
LDAPの設定
スキーマファイルのダウンロード
- 「wget」コマンドでpostfix用のスキーマファイルをダウンロードします。
# wget http://ldapadmin.sourceforge.net/docs/postfix.schema -O /etc/openldap/schema/postfix.schema
slapd.confの編集
- ldapの設定ファイル「/etc/openldap/slapd.conf」を編集します
# vi /etc/openldap/slapd.conf include /etc/openldap/schema/postfix.schema
LDAP再起動
- 設定変更を有効にするため再起動します。
# /etc/init.d/ldap restart
Postfixの設定
main.cfの編集
- 設定ファイル「/etc/postfix/main.cf」を編集します。
#バーチャルエイリアスドメイン名を mydestination ドメインにはリストアップしてはいけないため修正 myhostname = localhost.localdomain mydomain = localdomain myorigin = $myhostname mydestination = $myhostname, localhost.$mydomain, localhost #バーチャルメールボックスの設定 virtual_transport = virtual virtual_mailbox_domains = oss-d.net virtual_mailbox_base = /var/vmail virtual_mailbox_maps = ldap:/etc/postfix/ldap-account.cf virtual_uid_maps = static:1025 #mailadmin virtual_gid_maps = static:1025 #mailadmin virtual_alias_maps = ldap:/etc/postfix/ldap-alias.cf local_recipient_maps = proxy:unix:passwd.byname $alias_maps ldap:/etc/postfix/ldap-alias.cf
ldap-aliases.cfの編集
- 設定ファイル「/etc/postfix/ldap-aliases.cf」を編集します。
server_host = localhost domain = oss-d.net search_base = ou=Users,dc=oss-d,dc=net scope = one query_filter = (mail=%s) result_attribute = mail
- 設定の確認を行います。
# postalias -q vuser@oss-d.net ldap:/etc/postfix/ldap-alias.cf vuser@oss-d.net
- postmap コマンドでデータベースを作成します
# postmap /etc/postfix/ldap-alias.cf
postfix(SMTP-AUTHのLDAP対応)
SMTP-AUTHの認証をLDAPで行うよう設定します。
SMTP-AUTHに関する設定なので、ユーザ情報をLDAPで管理するためには別途設定が必要です。
SASLの設定
- 「/usr/lib/sasl2/smtpd.conf」を下記の通り設定します。
pwcheck_method: saslauthd mech_list: login plain
- 「/etc/sysconfig/saslauthd」を下記の通り設定します。
MECH=ldap
- SASLがLDAPのユーザ情報を使用するよう「/etc/saslauthd.conf」を設定します
ldap_servers: ldap://localhost ldap_search_base: dc=oss-d,dc=net ldap_filter: uid=%u
- SASLの自動起動設定
# chkconfig saslauthd on
- SASLの起動
# /etc/init.d/saslauthd restart
ldap-account.cfの編集
- 設定ファイル「/etc/postfix/ldap-account.cf」を編集します。
server_host = localhost domain = oss-d.net search_base = ou=Users,dc=oss-d,dc=net scope = one query_filter = (mail=%s) result_attribute = uid result_format = %s/Maildir/
- 設定の確認を行います。
# postalias -q vuser@oss-d.net ldap:/etc/postfix/ldap-alias.cf vuser@oss-d.net
- postmap コマンドでデータベースを作成します
# postmap /etc/postfix/ldap-alias.cf
postfix再起動
- 設定変更を有効にするため再起動します。
/etc/init.d/postfix restart
dovecotの設定
dovecot.confの編集
- 設定ファイル「/etc/dovecot.conf」を編集します。
auth default { mechanisms = plain #pam認証は使用しない #passdb pam { #} #userdb passwd { #} userdb ldap { args = /etc/dovecot-ldap.conf } userdb static { args = uid=1025 gid=1025 home=/var/vmail/%u } }
dovecot-ldap.confの編集
- 設定ファイル「/etc/dovecot-ldap.conf」を編集します。
hosts = localhost auth_bind = yes base = ou=Users,dc=oss-d,dc=net pass_filter = (uid=%u)
dovecot再起動
- 設定変更を有効にするため再起動します。
/etc/init.d/dovecot restart