そろそろLDAPにしてみないか?

第15回 FDS+Postfixでメールサーバ管理

この記事を読むのに必要な時間:およそ 5 分

前回までの設定

前回から少々時間がたってしまいましたので,今までの設定内容をここで一旦まとめておきます。前回までに行った設定は次の通りです。

  • FDSのインストールと初期設定
  • メールユーザ用ディレクトリエントリの追加
  • Postfix側のvirtual_mailbox_maps設定
  • テストメールの配送

つまり,バーチャルドメインユーザ宛のメールを25/tcpで受信すれば,メールボックスの保存パスがLDAPサーバから取得され,適切な場所にメールが保存される状態になっています。念のため,具体的なディレクトリエントリや設定ファイル等に関しても,ここで整理しておきます。

リスト1 FDSのディレクトリエントリ

# メールユーザ用トップツリー
dn: ou=Mail,dc=bluecoara,dc=net
ou: Mail
description: Postfix/Dovecot
objectClass: top
objectClass: organizationalunit

# バーチャルドメインユーザ用エントリ
dn: uid=HNAKAMITSU,ou=Mail,dc=bluecoara,dc=net
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetorgperson
objectClass: mailRecipient
mail: hnakamitsu@bluecoara.net
uid: HNAKAMITSU
givenName: Hideo
sn: NAKAMITSU
cn: Hideo NAKAMITSU
userPassword: {SSHA}tTyYPQIq9ZDzoCDnAiLZaXvs2zA3Cc0B
mailForwardingAddress: forward@example.com
mailMessageStore: /home/mail/bluecoara.net/hnakamitsu 

リスト2 /etc/postfix/main.cf

# Postfixで管理するバーチャルドメイン
# 宛先がこれ以外のドメイン名であれば,MX検索より外部に配送する。
virtual_mailbox_domains = bluecoara.net, example.co.jp
# LDAPからホームディレクトリを取得する際のベースディレクトリ
# セキュリティ上の理由から設定した方が良いが,今回は属性の値をそのまま使うため/と設定 
virtual_mailbox_base = /
# メールアドレスとメールボックスを対応させるためのLDAP設定ファイル
virtual_mailbox_maps = ldap:/etc/postfix/vmailbox.cf
# メールファイルを保存する場合の最小UID
virtual_minimum_uid = 5000
# メールファイルの所有者,グループ(5000という固定設定)
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

リスト3 /etc/postfix/vmailbox.cf

# LDAPサーバのアドレス
server_host = localhost
# 検索ベース
search_base = dc=bluecoara,dc=net
# 検索フィルタ(%sがメールアドレスに置き換わる)
query_filter = (mail=%s)
# 検索後に取得する属性
result_attribute = mailMessageStore
# 属性取得後に文字列の後ろに/Maildir/という文字を付加することでメールを 
# ホームディレクトリ/Maildir/以下に保存するようにする
result_filter = %s/Maildir/

転送設定

Mail属性として登録されているhnakamitsu@bluecoara.net宛のメールを受信した場合,そのメールをmailForwardingAddress属性であるforward@example.com 宛に転送するようにします。そのためにはvirtual(5)のvirtual_alias_mapsパラメータを使用します。

内容はシンプルで,(mail=メールアドレス)に合致するエントリが見つかった場合には,そのメールをmail属性とmailForwardingAddress属性両方に転送する設定となります。

リスト4  main.cfに設定する内容

# メール転送用
virtual_alias_maps = ldap:/etc/postfix/forward.cf

リスト5 /etc/postfix/forward.cf

server_host = localhost
search_base = dc=bluecoara,dc=net
query_filter = (mail=%s)
result_attribute = mail, mailForwardingAddress

設定が終わったら,忘れずにPostfixをリロードしてください。ログを見ながらテストメールを送信すると,メールボックスへの配送と共に,外部へメールが転送されていることが分かると思います。

著者プロフィール

中満英生(なかみつひでお)

大学時代に出会ったSolarisがきっかけでUNIXの世界へ。その後ホスティングプロバイダ,データセンターで実務経験を積む傍ら,雑誌記事の執筆や技術セミナーの講師を務める。サーバ設定の他,セキュリティに関する著作や技術者エッセイも執筆経験あり。

コメント

コメントの記入