Postfix の設定 - 基本


上のレベルへ | 基本設定 | UCE 制御 | 速度制御 | リソース制御 | アドレス操作

イントロダクション

Postfix には mail.cf ファイルを通じて制御される 数百の設定パラメータがあります。幸運なことに、それらは適切な デフォルト値を持っています。ほとんどの場合、Postfix メールシステムを使えるようになる前にたった2つか3つのパラメータしか 設定する必要はありません: 他の多くの設定パラメータのデフォルト値はこれらだけから派生します。

次に注目するパラメータは、ローカルのポストマスターに送られる メールの量を制御します:

プロキシまたはネットワークアドレス変換ソフトの後ろのサーバで、 かつ他のドメインのバックアップ MX サーバを動かしているのであれば、 以下を正しく設定するように注意してください。

ところで、動いている Postfix システムのパラメータを変更したら、 postfix reload コマンドを実行することを忘れてはいけません。

Postfix をバーチャルネットワークインターフェースで動かしたり、 バーチャルインターフェースで他のメーラを動かしているのであれば、 次にあげるようなパラメータも見なければいけません:

外行きのメールに使うドメイン名

myorigin パラメータには個のマシンで投函されたメールに 現れるドメインを指定します。デフォルトはローカルマシン名 $myhostname を使います。 このパラメータはデフォルトではマシンの名前になります。 本当に小さなサイトを運営しているのでなければ、おそらくこれを デフォルト値がマシン名の親ドメインになっている $mydomain に変えたくなるでしょう。

送信者および受信者アドレス間の整合性のため、myorigin は 不的確な受信者アドレスにつけられるデフォルトドメイン名も指定します。

例:

myorigin = $myhostname (デフォルト)
myorigin = $mydomain (おそらく望ましい)

メールを受信するドメイン名

mydestination パラメータには、他のマシンに転送するのではなく、 メールをローカルで受信するドメイン名を指定します。 デフォルトはマシン自身宛のメールを受け取ります。

ゼロ個以上のドメイン名、/file/name パターンや type:name 検索テーブルを、空白やカンマで区切って指定する ことができます。/file/name はその中身で置き換えられます; type:name はテーブル検索をおこなうことを要求します。

マシンがドメイン全体のメールサーバであれば、$mydomain も 同様にリストアップしなければいけません。

例:

デフォルト設定:
mydestination = $myhostname localhost.$mydomain

ドメイン全体のメールサーバ:
mydestination = $myhostname localhost.$mydomain $mydomain

複数の DNS A レコードを持つホスト:
mydestination = $myhostname localhost.$mydomain www.$mydomain ftp.$mydomain

注意: メール配送ループを防ぐため、$myhostname や localhost.$mydomainname を含めたマシンの全てのホスト名をリストアップしなければいけません。

メールをリレーして渡すクライアント

デフォルトでは、Postfix は権限を与えられたネットワークの クライアントにメールをリレーします。

権限を与えられたクライアントネットワークは mynetworks パラメータで定義されます。 デフォルトではローカルマシンが接続されている IP サブネットマスク内の 全てのクライアントに権限を与えます。

ポストマスターに報告するトラブル

postmaster エイリアス を人間に向けるように設定すべきです。このエイリアスは人々が メール配送問題を報告できるように存在することが要求されます。

Postfix システム自身も問題を postmaster エイリアスに報告します。 全ての種類のトラブル報告には興味がないかもしれないので、 報告メカニズムは設定可能になっています。デフォルトでは 重大な問題 (リソース、ソフトウェア) だけを postmaster に 報告します。

デフォルト:
notify_classes = resource, software

クラスの意味は次の通りです:

bounce
postmaster に配送できないメールのコピーを 送ります。メールが配送できないと、配送できなかったメッセージとともに いわゆるシングルバウンスメッセージが送られます。プライバシー上の 理由から、postmaster 宛のシングルバウンスメッセージは元のメッセージ ヘッダ以降は削除されます。シングルバウンスメッセージが配送できないと、 postmaster はシングルバウンスメッセージ全体のコピーとともに ダブルバウンスメッセージを受け取ります。 luser_relay 機能も参照して ください。

2bounce
ダブルバウンスメッセージを postmaster に送ります。

delay
postmaster に遅延メールを通知します。 この場合、postmaster はメッセージヘッダのみを受け取ります。

policy
postmaster に (UCE) ポリシー制限によって 拒否されたクライアントの要求を通知します。postmaster は SMTP セッション全体の写しを受け取ります。

protocol
postmaster に (クライアントもしくは サーバサイドの) プロトコルエラーや、クライアントによる実装されて いないコマンドの試行を通知します。postmaster は SMTP セッション 全体の写しを受け取ります。

resource
postmaster に (例えばキューファイルの 書き込みエラーなど) リソース問題によってメールが配送できない ことを通知します。

software
postmaster にソフトウェア問題によって メールが配送できないことを通知します。

Proxy/NAT ネットワークアドレス

proxy_interfaces パラメータには Postfix がプロキシや ネットワークアドレス変換ソフトを通してメールを受け取る 全てのネットワークアドレスを指定します。ネットワークアドレスの 代わりにホスト名を指定することもできます。

システムが他のドメインのバックアップ MX ホストであれば、 プロキシ/NAT アドレスを指定しなければいけません。そうしないと、 プライマリ MX ホストがダウンしているときにメール配送ループが 起こります。

例:

デフォルト:
proxy_interfaces =

バックアップ MTA を動かしているホスト:
proxy_interfaces = 1.2.3.4 (プロキシ/NAT ネットワークアドレス)

自分自身のホスト名

myhostname パラメータには Postfix システムが動いているマシンの FQDN (Fully-Qualified Domain Name) を記述します。 $myhostname は他の多くの Postfix 設定パラメータに デフォルト値として現れます。

デフォルトでは myhostname はローカルマシン名に設定されます。 マシン名が FQDN 形式でない場合やバーチャルインターフェースで Postfix を動かしている場合は、メールシステムが使うべき FQDN を 指定しなければいけないでしょう。

例:

myhostname = host.local.domain (ローカルホスト名が FQDN ではない)
myhostname = host.virtual.domain (バーチャルインターフェース)
myhostname = virtual.domain (バーチャルインターフェース)

自分自身のドメイン名

mydomain パラメータには $myhostname の親ドメインを 指定します。デフォルトでは、(結果がトップレベルドメインでなければ) $myhostname から最初の部分を切り取ることで導出されます。
例:

mydomain = local.domain
mydomain = virtual.domain (バーチャルインターフェース)

自分自身のネットワーク

mynetworks パラメータにはこのマシンが信頼する全ての ネットワークを列挙します。この情報は Postfix を通してのメールリレーを 許可する、信頼した SMTP クライアントを認識するために、 アンチ UCE 機能によって使われます。

信頼したネットワークのリストは main.cf ファイルで指定する こともできますし、Postfix にリストを推定させることもできます。 デフォルトは Postfix にその作業をさせます。

デフォルト:
mynetworks_style = subnet

この形式の意味は次の通りです:

class
Postfix が接続された class A/B/C ネットワークの SMTP クライアントを信頼します。ダイアルアップサイトではこの指定を しないでください - Postfix がプロバイダのネットワーク全体を「信頼」 してしまうことになります。代わりに下に示すように手で mynetworks リストを明示的に指定してください。

subnet (デフォルト)
Postfix が接続された IP サブネットワーク内の SMTP クライアントを信頼します。

host
ローカルマシンのみを信頼します。

代わりに、mynetworks を手で指定することもできますが、 この場合 Postfix は mynetworks_style の設定は無視します。 信頼されたネットワークのリストを手で指定するためには、CIDR (network/mask) 表記でネットワークブロックを指定します。例えば:

mynetworks = 168.100.189.0/28, 127.0.0.0/8

パターンを main.cf ファイルにリストアップする代わりに、 パターンファイルの絶対パスを指定することもできます。

自分自身のネットワークアドレス

inet_interfaces パラメータには Postfix が待ち受けるべき 全てのネットワークインターフェースを指定します; user@[network address] 宛のメールは $mydestination にリストアップされたドメイン宛であるかのようにローカルに配送されます。

デフォルトは全てのアクティブなインターフェースで待ち受けます。 バーチャルインターフェースでメーラを動かしているのであれば、 待ち受けるインターフェースを指定しなければいけないでしょう。

マシン自身宛のメールを受け取る非バーチャルメーラを使う場合も 明示的にマシンのインターフェースを指定しなければいけません: 非バーチャルメーラはバーチャルインターフェースで待ち受ける べきではなく、さもないとメーラループを引き起こします。

例:

デフォルト:
inet_interfaces = all

バーチャルメーラを動かしているホスト:
inet_interfaces = virtual.host.tld (バーチャルドメイン)
inet_interfaces = $myhostname localhost.$mydomain (非バーチャルメーラ)

注意: このパラメータを変更したら、Postfix を stop してから start する必要があります。


上のレベルへ | 基本設定 | UCE 制御 | 速度制御 | リソース制御 | アドレス操作