2005/09/20
postfix-2.1.5-r2

Postfixのインストールと基本設定

ページ内索引
Postfixのインストール
Postfixの設定
エイリアスデータベースの作成
Postfixの起動
Telnetによる動作確認

Postfixは高速でsendmailとの互換性が高く、メンテナンスが容易であることから注目を集めているサーバーソフトです。
Sendmailは設定が複雑であったり、セキュリティホールが度々見つかっていました。そこでPostfixはSendmailに代わるメール配送ソフトとして開発されました。
ただし、Postfixに限らない事ですが、メールサーバーは設定ミスなどでspamに利用されたりする危険性もあり、運用には注意が必要です。
また、他のサーバー類でも同じ事が言えますが、一度運用を始めると常に安定して接続できる事が求められます。 コミュニケーションを行う道具であるメールを扱っている以上、安定した運用を続ける事が非常に大切になります。
このページではPostfixの基本的な設定について解説します。


Postfixのインストール

Postfixをインストールするためにemergeコマンドを実行したいところですが、ほとんどの環境では送信専用のMTA(メール配送ソフト) ssmtp が入っており、  Postfix のインストールをブロックするでしょう。
まずは ssmtp をアンインストールします。
# emerge -C ssmtp

Postfixをインストールします。
# emerge postfix

インストールされたPostfixのバージョンは 2.1.5-r2 でした。

Postfixの設定

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

# マシン名のFQDNを指定します。
myhostname = mail.gside.org

# Postfixがそのマシンで受け取るあて先のドメイン名を指定します。
mydestination = $myhostname, localhost.$mydomain, localhost

#メールサーバのドメイン名を設定
mydomain = gside.org

#ローカル配送エージェントが利用するエイリアスデータベースのリストを指定
alias_map = hash:/etc/mail/aliases

# newaliases コマンドで更新されるエイリアスデータベースの元になるファイル
alias_database = hash:/etc/mail/aliases

# 信頼するネットワークを指定します。
# subnetを指定すると自マシンのIPのサブネットワークに属するクライアントを信頼します。
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の起動

Postfix を起動します。
# /etc/init.d/postfix start

マシン起動時にPostfixが自動的に立ち上がるようにしておきます。
# rc-update add postfix default

Telnetによる動作確認

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
Helo mail.gside.org
250 mail.gside.org
mail from:user@gside.org      ※送信元を入力
250 Ok
rcpt to:hoge@example.com    ※送信先を入力
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject:This is test        ※件名を入力
       ※Enter入力
This is test mail        ※本文入力
.      ※コンマ入力のみ入力してEnterで、本文終了
250 Ok: queued as D79081665B
quit
221 Bye
Connection closed by foreign host.

※黄色字の部分が入力を行う部分です。

送信先に実際にメールが送信されているか確かめましょう。

これだけではセキュリティ的には不十分なので、「PostfixへのSMTP-AUTHの導入」 を参考にして、spamの温床にならないよう対策してください。
Index
Postfixのインストールと基本設定
PostfixへのSMTP-AUTHの導入
Courier-Imapのインストールと基本設定