arinux

Linux サーバー設定備忘録
<< openLDAP 構築(52) - メール管理(バーチャルメールボックス) | main | openLDAP 構築(54) - LDAP sdb back-end for BIND9 (1) >>
openLDAP 構築(53) - メール管理(クォータ管理)


メモ バーチャル・メールボックス(Maildir)に対するクォータ制御


  1. VDA パッチを当てます。http://vda.sourceforge.net/ から、
    「postfix-2.5.1-vda-ng.patch.gz」 をダウンロードして、「/usr/local/src」 に置きます。


  2. ダウンロードしたファイルは、拡張子が 「gz」 になっていますが、単なるテキストファイルですので、ファイル名を以下のように rename します。
    [root]# cd /usr/local/src
    [root]# file postfix-2.5.1-vda-ng.patch.gz
    postfix-2.5.1-vda-ng.patch.gz: 'diff' output text
    
    [root]# mv postfix-2.5.1-vda-ng.patch.gz postfix-2.5.1-vda-ng.patch
    


  3. postfix が起動している場合は、停止します。
    [root]# /etc/rc.d/init.d/postfix stop
    Shutting down postfix:                                     [  OK  ]
    


  4. 現在の postfix の設定ファイルのディレクトリを退避しておきます。
    [root]# cd /usr/local/etc
    [root]# mv postfix postfix.save11
    


  5. 過去の postfix をコンパイルしている場合は、生成されたファイルを削除します。
    [root]# cd /usr/local/src/postfix-2.5.1
    [root]# make clean
    


  6. パッチを当てます。
    [root]# cd /usr/local/src/postfix-2.5.1
    [root]# patch -p1 < ../postfix-2.5.1-vda-ng.patch
    


  7. 「openLDAP 構築(46) - メール管理(Postfix) (1)」 を参考に、Makefile作成、コンパイル、インストールを実施します。


  8. main.cf を以下のように編集します。
    [root] cd /usr/local/etc/postfix
    [root] vi main.cf
    
    queue_directory = /var/spool/postfix
    command_directory = /usr/local/sbin
    daemon_directory = /usr/local/libexec/postfix
    data_directory = /usr/local/var/postfix
    mail_owner = postfix
    default_privs = vmail
    myhostname = test15.examples.net
    mydomain = examples.net
    myorigin = $myhostname
    inet_interfaces = all
    mydestination = $myhostname, $mydomain, localhost
    unknown_local_recipient_reject_code = 550
    mynetworks = 127.0.0.0/8, 10.1.1.0/24
    alias_maps = hash:/usr/local/etc/postfix/aliases
    alias_database = hash:/usr/local/etc/postfix/aliases
    home_mailbox = Maildir/
    debug_peer_level = 2
    debugger_command =
        PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
        ddd $daemon_directory/$process_name $process_id & sleep 5
    sendmail_path = /usr/sbin/sendmail
    newaliases_path = /usr/bin/newaliases
    mailq_path = /usr/bin/mailq
    setgid_group = postdrop
    html_directory = no
    manpage_directory = /usr/local/man
    sample_directory = /usr/local/etc/postfix
    readme_directory = no
    smtp_host_lookup = dns
    message_size_limit = 2048000
    virtual_mailbox_limit = 2048000
    virtual_mailbox_limit_maps = hash:/usr/local/etc/postfix/vbox_limit
    virtual_mailbox_limit_override = yes
    virtual_overquota_bounce = yes
    virtual_mailbox_domains = ldap:/usr/local/etc/postfix/ldap_vbox_domains.cf
    virtual_mailbox_base = /
    virtual_mailbox_maps = ldap:/usr/local/etc/postfix/ldap_vbox_maps.cf
    virtual_minimum_uid = 5000
    virtual_uid_maps = static:5000
    virtual_gid_maps = static:5000
    


  9. aliases の root の転送先の設定と、postfix アカウントの記述を確認します。
    [root] cd /usr/local/etc/postfix
    [root] vi aliases
    root:           admin   # これを追加。root 以外のメール管理者に転送する。
    postfix:        root    # この行はもともとあります。
    


  10. aliases.db に反映させます。
    [root]# postalias -c /usr/local/etc/postfix /usr/local/etc/postfix/aliases
    


  11. ldap_vbox_domains.cf を作成します。
    server_host = localhost
    server_port = 389
    search_base = ou=Mail,dc=examples,dc=com
    query_filter = (|(mail=%s)(objectClass=postLdapAdmin))
    result_attribute = mailDomain
    version = 3
    


  12. ldap_vbox_maps.cf を作成します。
    server_host = localhost
    server_port = 389
    search_base = ou=Mail,dc=examples,dc=com
    query_filter = (mail=%s)
    result_attribute = mailDirectory
    version = 3
    


  13. ldap_quota.cf を作成します。
    server_host = localhost
    server_port = 389
    search_base = ou=Mail,dc=examples,dc=com
    query_filter = (mail=%s)
    result_attribute = quotaSize
    version = 3
    


  14. postfix を起動します。
    [root]# /etc/rc.d/init.d/postfix start
    Starting postfix:                                          [  OK  ]
    


  15. メールアカウントの 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.examples/Maildir/
    mailDomain: examples.com
    quotaSize: 1024                # 単位は Byte です
    


  16. 既存のエントリーを一度削除して、再度追加します。
    [root]# ldapdelete -x -W -D "cn=Manager,dc=examples,dc=com" ¥
    "cn=muser examples,ou=Mail,dc=examples,dc=com"
    Enter LDAP Password:
    

    [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"
    


  17. 設定通りに値が返ってくるかを確認します。
    [root]# postmap -q "muser@examples.com" ldap:/usr/local/etc/postfix/ldap_vbox_domains.cf
    examples.com
    

    [root]# postmap -q "muser@examples.com" ldap:/usr/local/etc/postfix/ldap_vbox_maps.cf
    /home/mail/muser.examples/Maildir/
    

    [root]# postmap -q "muser@examples.com" ldap:/usr/local/etc/postfix/ldap_quota.cf
    1024
    


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


  19. quotaSize が超えるように、ファイルを添付してメールを送信します。
    [root]# uuencode <ファイル名> attach | mail -s "test 402" muser@examples.com
    
    虫眼鏡 uuencode


    「uuencode」 は、「sharutils」 パッケージに含まれています。以下のようにインストールされているか調べて、

    [root]# rpm -qa | grep sharutils
    


    なければ、以下のようにインストールします。

    [root]# yum install sharutils           (CentOS の場合)
    [root]# apt-get install sharutils       (Vine の場合)
    


  20. quotaSize を超えた場合、/var/log/maillog に、以下のメッセージが記録されます。
    (maildir delivery failed: Sorry, the user's maildir has overdrawn 
    his diskspace quota, please try again later.)



ここまで

| arinux | - | 16:25 | comments(1) | trackbacks(0) | pookmark |
管理者の承認待ちコメントです。
| - | 2018/05/25 12:42 AM |









http://www.arinux.net/trackback/73
     12
3456789
10111213141516
17181920212223
24252627282930
<< June 2018 >>
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ 掲載予定のタイトル
  • Wordpress
  • Pukiwiki
  • SMTPs/POPs/IMAPs
  • fml
  • Tips
+ CSS Nite
+ MOBILE
qrcode
+ LINKS
+ RECOMMEND
+ PROFILE