keyboard_arrow_right
VPSサーバーでサイト構築 — その8
未分類

VPSサーバーでサイト構築 — その8

8.postfixの設定  その1

いよいよメールサーバーの設定に入っていきます。今回はLDAPを使用するということで、いくつかのLDAP用設定ファイルを用意しなければなりません。
postfix設定ファイルの置き場所は /etc/postfix/ ですのでこの中に設定ファイルを作っていきます。

まずはpostfixの設定ファイルである main.cf ファイルにいくつかの変更を加えておきます。

/etc/postfix/main.cfファイル修正内容

# INTERNET HOST AND DOMAIN NAMES
myhostname = mail.hogehoge.com  ←postfixを稼働するホスト名
mydomain = hogehoge.com  ←メールサーバーのヴァーチャルではない実際のドメイン

# RECEIVING MAI
mydestination = $myhostname, localhost, localhost.localdomain
↑受信可能とする宛先メールサーバー

# TRUST AND RELAY CONTROL
mynetworks = xxx.xxx.xxx.xxx/32
relay_domains = $mydestination
↑リレーを許可するドメイン(ローカル配送用)と物理ネットワーク

# ADDRESS REDIRECTION (VIRTUAL DOMAIN)
virtual_mailbox_domains = hogehoge.com
↑バーチャルで取り扱うドメイン。複数設定する場合はカンマ区切りで記述する。
virtual_mailbox_base = /home/virtualMail
↑メールを保存するディレクトリベースでここで設定したディレクトリ配下に配信される。
virtual_mailbox_maps = ldap:/etc/postfix/ldap-account.cf
↑配信マッピングに関する設定ファイルの指定
virtual_minimum_uid = 89
↑ここでは postfix の uid を設定しておく。指定しないと一般ユーザーとして500以上が使われる。
virtual_uid_maps = static:89
virtual_gid_maps = static:89
↑ヴァーチャルユーザーを個別で扱わず postfix のみに限定して処理するようにする。
virtual_alias_maps = ldap:/etc/postfix/forward.cf
ldap:/etc/postfix/virtual-alias.cf
↑エリアスの設定ファイル指定。フォワード転送設定ファイルとエリアス設定ファイルを指定しています。

# DELIVERY TO MAILBOX
home_mailbox = Maildir/
↑Maildir形式で扱うことの指定

後ほど Smtp-Auth やセキュリティー関係の設定を追記していくので、ここでは基本的な設定だけを修正、加筆しておきます。

次に上の設定ファイルに合うよう設定ファイルの作成、ディレクトリの作成などを行っていきます。まず基本となるメールボックスのディレクトリを作成し所有者を postfix に変更しておきます。

>mkdir /home/virtualMail
>chown postfix.postfix /home/virtualMail

次に設定ファイルを作るのですが、ここでは先の main.cf 内に記述しているファイルを作成していきます。

/etc/postfix/ldap-account.cf ファイル

server_host = 127.0.0.1
server_port = 389
timeout = 5
search_base = ou=mailsys,dc=hogehoge,dc=com
query_filter = (mail=%s)
result_attribute = mailDir
result_format = %s/Maildir/
scope = sub
bind = yes
bind_dn = cn=mtaAdmin,ou=Service,dc=hogehoge,dc=com
bind_pw = bind_dnのパスワード

/etc/postfix/forward.cf ファイル

server_host = 127.0.0.1
server_port = 389
timeout = 5
search_base = ou=mailsys,dc=hogehoge,dc=com
query_filter = (|(mail=%s)(mailRoutingAddress=”*”))
result_attribute = mailRoutingAddress
result_format = %s
scope = sub
bind = yes
bind_dn = cn=mtaAdmin,ou=Service,dc=hogehoge,dc=com
bind_pw = bind_dnのパスワード

/etc/postfix/virtual-alias.cf ファイル

server_host = 127.0.0.1
server_port = 389
timeout = 5
search_base = ou=mailsys,dc=hogehoge,dc=com
query_filter = (mailLocalAddress=%s)
result_attribute = mail
result_format = %s
scope = sub
bind = yes
bind_dn = cn=mtaAdmin,ou=Service,dc=hogehoge,dc=com
bind_pw = bind_dnのパスワード

設定ファイルの各項目と内容については以下のようになります。

server_host LDAPサーバーのホストアドレス
server_port LDAPサーバーのポート番号
timeout 接続タイムアウト
search_base 検索ベースディレクトリ
query_filter 検索フィルター正規表現記述
result_attribute 結果として受け取るべき値の格納先項目名
result_format 結果のフォーマット形式
scope 検索スコープ
bind バインドの使用、不使用
bind_dn バインドを使用する場合のバインドdn
bind_pw バインドdnのパスワード

また、LDAPでの検索には以下のような置き換え文字が使用できます。

%s 入力キー、検索結果ともに属性値そのものに置き換えられる
%u 入力キーまたは検索結果がメールアドレス形式の場合@の前に置き換えられる
%d 入力キーまたは検索結果がメールアドレス形式の場合@の後(ドメイン名)に置き換えられる

ldap-account.cf を例に具体的に内容を見てみましょう。
search_base はヴァーチャルドメインのアカウント情報を格納する ou=mailsys にして scope を sub に指定しているのでこのディレクトリ配下を検索します。
query_filter として mail=%s すなわちメールアドレスが入力キー→メールアドレスのものを検索します。
result_attribute として Maildir に格納されている値を取り出します。LDAPデータベース上のMaildir項目にはメールの保存先ディレクトリを記述しておきます。例えば、「taro」というアカウントを作成したとすると、「taro」のアカウント情報の Maildir 項目には
hogehoge.com/taro
と記述します。この値が result_format で指定している %s/Maildir/ に加工され
hogehoge.com/taro/Maildir/
として結果が返されます。
main.cf の virtual_mailbox_base で指定している保存先ディレクトリに上の結果が追加され、
/home/virtualMail/hogehoge.com/taro/Maildir/
というディレクトリ配下がメールの配信保存先となるわけです。
bind は使用するので yes にして bind ユーザーとパスワードを記述しています。bind を使用しない場合、接続してきたユーザー単位でLDAP認証が行われます。bind を指定した場合はここで指定ユーザーのみがLDAPサーバーとのやりとりを行うためセッションを共有することができます。

続く・・・

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください