arinux

Linux サーバー設定備忘録
<< openLDAP 構築(50) - メール管理(バーチャルエイリアス、バーチャルドメイン(1) ) | main | openLDAP 構築(52) - メール管理(バーチャルメールボックス) >>
openLDAP 構築(51) - メール管理(バーチャルエイリアス、バーチャルドメイン(2) )


メモ バーチャル・ドメインによる転送


「virtual_alias_domains」 と 「virtual_alias_maps」 の情報を、LDAP から取り出して転送する方法を説明します。


LDAP によるバーチャルドメインの管理


  1. main.cf に、以下を追加します。
    virtual_alias_domains = ldap:/usr/local/etc/postfix/ldap_valias_domains.cf
    virtual_alias_maps = ldap:/usr/local/etc/postfix/ldap_valias_maps.cf
    


  2. ldap_valias_domains.cf を作成します。
    [root]# vi /usr/local/etc/postfix/ldap_valias_domains.cf
    
    server_host = localhost
    server_port = 389
    search_base = ou=Mail,dc=examples,dc=com
    query_filter = (mail=%s)
    result_attribute = mailDomain
    version = 3
    


  3. ldap_valias_maps.cf を作成します。
    [root]# vi /usr/local/etc/postfix/ldap_valias_maps.cf
    
    server_host = localhost
    server_port = 389
    search_base = ou=Mail,dc=examples,dc=com
    query_filter = (mail=%s)
    result_attribute = mailAlias
    version = 3
    


  4. postfix を再起動します。
    [root]# /etc/rc.d/init.d/postfix restart
    Shutting down postfix:                                     [  OK  ]
    Starting postfix:                                          [  OK  ]
    


  5. 「postLdapAdmin.schema」 に、ドメイン用の object を追加します。
    [root]# cd /usr/local/etc/openlcap/schema
    [root]# cp postLdapAdmin.schema postLdapAdmin2.schema
    [root]# vi postLdapAdmin2.schema
    (赤字の部分を追加)
    #
    # postLdapAdmin directory schema
    #
    
    #
    # Attribute Type Definitions
    #
    attributetype ( 1.3.6.1.4.1.15774.1.10.1.2.1 NAME 'quotaSize'
            DESC 'quota size'
            EQUALITY octetStringMatch
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{32} SINGLE-VALUE )
    attributetype ( 1.3.6.1.4.1.15774.1.10.1.2.2 NAME 'mailAlias'
            DESC 'mail alias'
            EQUALITY caseIgnoreIA5Match
            SUBSTR caseIgnoreSubstringsMatch
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
    attributetype ( 1.3.6.1.4.1.15774.1.10.1.2.3 NAME 'mailDirectory'
            DESC 'mail directory'
            EQUALITY caseIgnoreIA5Match
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE )
    attributetype ( 1.3.6.1.4.1.15774.1.10.1.2.4 NAME 'mailForwardingAddr'
            DESC 'mail forwarding address'
            EQUALITY octetStringMatch
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{256} )
    attributetype ( 1.3.6.1.4.1.15953.9.1.101 NAME 'mailDomain'
            DESC 'mail domain'
            EQUALITY caseExactIA5Match
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
    #
    # Object Class Definitions
    #
    objectclass ( 1.3.6.1.4.1.15774.1.10.1.1.1 NAME 'postLdapAdmin'
            DESC 'postLdapAdmin user'
            SUP top
            AUXILIARY
            MUST ( uid $ mail )
            MAY ( userPassword $ quotaSize $ mailAlias $ mailDirectory $ mailForwardingAddr $ mailDomain ) )
    


  6. 「slapd.conf」 に以下を追加します。
    [root]# vi /usr/local/etc/openldap/slapd.conf
    
    #include         /usr/local/etc/openldap/schema/postLdapAdmin.schema  (この行はコメントアウト)
    include         /usr/local/etc/openldap/schema/postLdapAdmin2.schema  (この行を追加)
    


  7. 「slapd.conf」 にアクセス制御を追加します(すでに追加済みの場合は不要)。
    access to dn.subtree="ou=Mail,dc=examples,dc=com" attrs=userPassword
            by dn="cn=mailadmin,ou=Mail,dc=examples,dc=com" read
            by anonymous auth
            by * none
    


  8. slapd を再起動します。
    [root]# /etc/rc.d/init.d/slapd restart
    Stopping slapd
    Starting slapd
    


  9. メール用の ou(organizationalUnit) を追加します(すでに追加済みの場合は不要)。
    [root]# vi oudn_mail.ldif
    
    dn: ou=Mail,dc=examples,dc=com
    objectClass: organizationalUnit
    ou: Mail
    
    [root]# ldapadd -x -W -D "cn=Manager,dc=examples,dc=com" -f ./oudn_mail.ldif
    Enter LDAP Password:
    adding new entry "ou=Mail,dc=examples,dc=com"
    


  10. メール管理者用の LDIF ファイルを作成します(すでに作成済みの場合は不要)。これは 「ou=Mail」 のサブツリーだけにアクセスさせるために行います。
    [root]# vi mail_admin.ldif
    
    dn: cn=mailadmin,ou=Mail,dc=examples,dc=com
    objectClass: inetOrgPerson
    objectClass: postLdapAdmin
    sn: mailadmin
    cn: mailadmin
    uid: mailadmin
    userPassword: {MD5}5XR2gvum3iWh9L8W5h0V1g==
    mail: mailadmin@test15.examples.net
    mailDirectory: /home/mail
    


  11. エントリーを追加します(すでに追加済みの場合は不要)。
    [root]# ldapadd -x -W -D "cn=Manager,dc=examples,dc=com" -f ./mail_admin.ldif
    Enter LDAP Password:
    adding new entry "cn=mailadmin,ou=Mail,dc=examples,dc=com"
    


  12. 以下のような LDIF ファイルを作成します。
    [root]# vi mail_muser.ldif
    
    dn: cn=muser examples,ou=Mail,dc=examples,dc=com
    objectClass: inetOrgPerson
    objectClass: postLdapAdmin
    sn: muser
    cn: muser examples
    uid: muser.examples
    userPassword: {MD5}VJKW9qrhOmOo3z5IIUSOrg==
    mail: muser@examples.com
    mailDirectory: /home/mail/muser/Maildir/
    mailDomain: examples.com
    mailAlias: rider@arinux.jugem.jp
    


  13. エントリーを追加します。
    [root]# ldapadd -x -W -D "cn=Manager,dc=examples,dc=com" -f ./mail_muser.ldif
    Enter LDAP Password:
    adding new entry "cn=muser examples,ou=Mail,dc=examples,dc=com"
    


  14. 期待通りに mailDomain と mailAlias の値が引けるかをテストします。
    [root]# postmap -q "muser@examples.com" ldap:/usr/local/etc/postfix/ldap_valias_domains.cf
    examples.com
    
    [root]# postmap -q "muser@examples.com" ldap:/usr/local/etc/postfix/ldap_valias_maps.cf
    rider@arinux.jugem.jp
    
    虫眼鏡 mail=%s


    • 「ldap_valias_domains.cf」 と 「ldap_valias_maps.cf」 の中で、「query_filter = (mail=%s)」 と記述していますので、
      • muser@examples.com の入力値のまま
      • LDAP にて mail=muser@examples.com を検索します。
    • %u なら 「muser」 のユーザーの部分、
    • %d なら 「test15.examples.net」 のドメインの部分が代入されます。


  15. メール送信テストをします。
    [root]# echo "Alias test 201" | mail -s "test 201" muser@examples.com
    


  16. 転送先のメールボックスに届いていることを確認します。



つづく

| arinux | openldap | 10:37 | comments(0) | trackbacks(0) | pookmark |









http://www.arinux.net/trackback/69
   1234
567891011
12131415161718
19202122232425
2627282930  
<< November 2017 >>
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ 掲載予定のタイトル
  • Wordpress
  • Pukiwiki
  • SMTPs/POPs/IMAPs
  • fml
  • Tips
+ CSS Nite
+ MOBILE
qrcode
+ LINKS
+ RECOMMEND
+ PROFILE