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 制御 | 速度制御
| リソース制御 | アドレス操作