Postfixのインストールと基本設定
Postfixは高速でsendmailとの互換性が高く、メンテナンスが容易であることから注目を集めているサーバーソフトです。
Sendmailは設定が複雑であったり、セキュリティホールが度々見つかっていました。そこでPostfixはSendmailに代わるメール配送ソフトとして開発されました。
ただし、Postfixに限らない事ですが、メールサーバーは設定ミスなどでspamに利用されたりする危険性もあり、運用には注意が必要です。
また、他のサーバー類でも同じ事が言えますが、一度運用を始めると常に安定して接続できる事が求められます。
コミュニケーションを行う道具であるメールを扱っている以上、安定した運用を続ける事が非常に大切になります。
このページではPostfixの基本的な設定について解説します。
Postfixをインストールするためにemergeコマンドを実行したいところですが、ほとんどの環境では送信専用のMTA(メール配送ソフト) ssmtp が入っており、
Postfix のインストールをブロックするでしょう。
まずは ssmtp をアンインストールします。
# emerge -C ssmtp
Postfixをインストールします。
# emerge postfix
インストールされたPostfixのバージョンは 2.1.5-r2 でした。
Postfixはデフォルトの設定でもある程度は安全に動作させることができます。
ただ、マシンの設定により自動的に設定されるパラメータ等もあり、正しく意図した値になっているか確認することが必要です。
Postfixの設定を確認するには、postconfコマンドを実行します。
なお、パラメータの設定においては、他のパラメータの値を $[パラメータ名] のように引用して指定することもできます。
# postconf
2bounce_notice_recipient = postmaster
access_map_reject_code = 554
address_verify_default_transport = $default_transport
address_verify_local_transport = $local_transport
address_verify_map =
address_verify_negative_cache = yes
address_verify_negative_expire_time = 3d
address_verify_negative_refresh_time = 3h
address_verify_poll_count = 3
(以下略)
中でも確認すべきパラメータを以下に示します。
myorigin = $myhostname
myhostname = mail.gside.org
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = gside.org
alias_map = hash:/etc/mail/aliases
alias_database = hash:/etc/mail/aliases
mynetworks_style = subnet
上記は main.cf を編集しなくてデフォルトで設定されます。
myhostname
|
マシンのFQDNが指定されます。hostnameコマンドに f オプションをつけて実行した結果が用いられます。
このためには/etc/hosts等が設定されている必要があります。
|
mydomain |
上記myhostnameパラメータより求められた値が用いられます。 |
mynetworks_style |
信頼するネットワークの指定をします。
subnet で自マシンのIPのサブネットワークに属するクライアントを指定します。
host でローカルマシンのみを指定します。
|
mynetworks |
信頼するネットワークの指定をします。
上記 mynetworks_style でも指定できますが、このパラメータに指定されたIPアドレスが優先されます。
|
Postfixを起動する前に、alias_mapパラメータで指定したエイリアスデータベースファイル、/etc/mail/aliases.dbm を作成する必要があります。
このファイルは、newaliasesコマンドで作成されます。
newaliasesコマンドでエイリアスデータベースファイルを更新する元になるファイルは、オプションで指定することもできますが、
何も指定しないとmain.cfのalias_databaseパラメータで設定されたファイルが用いられます。
# newaliases
ちなみに/etc/mail/aliasesは、メールの転送先を設定しているファイルです。
例えば
root: gside
postmaster: gside
と記述されていると、rootやpostmaster宛てのメールは gsideユーザーに転送されます。
postmasterはメールサーバーを運用する上で不足の事態が起きた場合に、外部の人間が管理者に
連絡できるよう設けておく必要のあるユーザーです。このため、postmaster宛てのメールが届くようにしておく必要があります。
また、システムの情報は主にroot宛に送信されます。(例えばcronの実行結果等)
上記例のようにpostmasterやroot宛のメールは、管理者のメールへ振り分けるようにして、随時チェックできるようにするのが
よいでしょう。
aliases.dbはテキスト形式のaliasesファイルをバイナリ形式にしたファイルです。
aliasesを編集した後は、newaliasesコマンドを実行してaliases.dbファイルに設定を反映する必要があります。
Postfix を起動します。
# /etc/init.d/postfix start
マシン起動時にPostfixが自動的に立ち上がるようにしておきます。
# rc-update add postfix default
Postfixの送信の確認を行います。まずはtelnetを用いて動作確認します。
telnetが入っていない場合は
# emerge net-misc/netkit-telnetd
として、telnetをインストールしてください。
# telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.gside.org ESMTP Postfix
250 mail.gside.org
250 Ok
250 Ok
354 End data with <CR><LF>.<CR><LF>
250 Ok: queued as D79081665B
221 Bye
Connection closed by foreign host.
送信先に実際にメールが送信されているか確かめましょう。
これだけではセキュリティ的には不十分なので、「
PostfixへのSMTP-AUTHの導入」
を参考にして、spamの温床にならないよう対策してください。