以下は、内容が省略され過ぎで分かりにくいため、こちらをご覧下さい。


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の編集

  1. 設定ファイル「/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

  2. 設定の確認を行います。
    # postalias -q vuser@oss-d.net ldap:/etc/postfix/ldap-alias.cf
    vuser@oss-d.net

  3. postmap コマンドでデータベースを作成します
    # postmap /etc/postfix/ldap-alias.cf

postfix(SMTP-AUTHのLDAP対応)

SMTP-AUTHの認証をLDAPで行うよう設定します。
SMTP-AUTHに関する設定なので、ユーザ情報をLDAPで管理するためには別途設定が必要です。

SASLの設定

  1. 「/usr/lib/sasl2/smtpd.conf」を下記の通り設定します。
    pwcheck_method: saslauthd
    mech_list: login plain 

  2. 「/etc/sysconfig/saslauthd」を下記の通り設定します。
    MECH=ldap

  3. SASLがLDAPのユーザ情報を使用するよう「/etc/saslauthd.conf」を設定します
    ldap_servers: ldap://localhost
    ldap_search_base: dc=oss-d,dc=net
    ldap_filter: uid=%u

  4. SASLの自動起動設定
    # chkconfig saslauthd on

  5. SASLの起動
    # /etc/init.d/saslauthd restart

ldap-account.cfの編集

  1. 設定ファイル「/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/

  2. 設定の確認を行います。
    # postalias -q vuser@oss-d.net ldap:/etc/postfix/ldap-alias.cf
    vuser@oss-d.net

  3. 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
このエントリーをはてなブックマークに追加
Last-modified: 2010-09-25 (土) 13:13:04   最終更新のRSS