Postfixについて
Postfixとは
Postfixの内部構成
キュー
・incoming
SMTPなどで外から受け付けたメールが格納される
・active
メールの配送が試みられるときにメールが格納される
・deferred
一時的なエラーで配送に失敗した場合に格納される
配送に失敗した理由などの情報はdeferディレクト配下のキューIDの名前のファイルに格納される
・maildrop
マシン内部で正世されたメールが最初に格納されるキュー
アクセス制御パラメータ
・smtpd_client_restrictions
クライアントからの接続時に評価されるアクセス制御のリスト
・smtpd_helo_restrictions
HELO/EHLOコマンド発行時に評価されるアクセス制御のリスト
・smtpd_sender_restrictions
MAILコマンド発行時に評価されるアクセス制御のリスト
・smtpd_recipient_restrictions
RCPTコマンド発行時に評価されるアクセス制御のリスト
permit_mynetworks
reject_unauth_destinations
・smtpd_data_restrictions
DATAコマンド発行時に評価されるアクセス制御のリスト
・smtpd_end_of_data_restrictions
DATAコマンド終了時に評価されるアクセス制御のリスト
・smtpd_etrn_restrictions
ETRNコマンド発行時に評価されるアクセス制御のリスト
これらのパラメータは接続時/各コマンド発行時のタイミングで評価される
※ただし$smtpd_deley_rejectがyesの場合(デフォルト)、smtpd_client_restrictions、
smtpd_helo_restrictions、smtpd_sender_restrictions、smtpd_recipient_restrictionsは
RCPTコマンド発行時にまとめて評価される
smtpd_*_restrictionsに設定されたアクセス制御は記述された順番に評価される。
どのアクセス制御条件にも該当しない場合はアクセスは許可される
アクセス制御の種類
・permit
アクセスを許可する
・defer
アクセスを一時的に拒否する(エラーコード:450)
・defer_if_permit
これ以降の評価結果でアクセスが許可される場合は代わりにdeferする
・defer_if_reject
これ以降の評価結果でアクセスが拒否される場合は代わりにdeferする
・reject
アクセスを拒否する(エラーコード:554)
・warn_if_reject
この次に書かれたアクセス制御の評価の結果、アクセスが拒否される場合、
ログに警告を出力して、評価結果を無視し評価を続ける
・sleep
引数として秒数を指定する。指定された秒数だけ停止し、
次の評価に進む
・check_client_access
引数としてルックアップテーブルを指定する。
クライアントのIPアドレスまたはDNSを逆引きしてホスト名をキーとして
ルックアップテーブルを検索し、得られた値をアクセス制御として使用する
・permit_mynetworks
クライアントのIPアドレスが$mynetworksに適合する場合にアクセスを許可する
・reject_invaild_helo_hostname
引数としてルックアップテーブルを指定する。
HELO/EHLOでクライアントが名乗ったホスト名をキーとしてルックアップテーブルを
検索し、得られた値をアクセス制御として使用する
・reject_invaild_helo_hostname
HELO/EHLOでクライアントが名乗ったホスト名が文法的に不正な場合アクセスを
拒否する(エラーコード:501)
・reject_non_fqdn_helo_hostname
HELO/EHLOでクライアントが名乗ったホスト名がFQDNでない場合アクセスを
拒否する(エラーコード:501)
・check_sender_access
・引数としてルックアップテーブルを指定する。
送信者メールアドレスをキーとしてルックアップテーブルを検索し、
得られた値をアクセス制御として使用する
・reject_non_fqdn_sender
送信者メールアドレスのドメイン部が不正な形式の場合アクセスを拒否する
・reject_unknown_sender_domain
送信者メールアドレスのドメイン部に対するDNSのA,MXレコードが存在しない場合、
アクセスを拒否する
・check_recipient_access
引数としてルックアップテーブルを指定する
宛先メールアドレスをキーとしてルックアップテーブルを検索し、
得られた値をアクセス制御として使用する
・permit_auth_destination
宛先メールアドレスのドメイン部が「$relay_domains」「$mydestination」
「$inet_interfaces」「$proxy_interfaces」「$virtual_alias_domains」
「$virtual_mailbox_domains」のいずれかに適合する場合アクセスを許可する
・reject_non_fqdn_recipient
宛先メールアドレスのドメイン部が不正な形式の場合アクセスを拒否する
・reject_unauth_destination
受信者アドレスのドメイン部が「$relay_domains」「$mydestination」
「$inet_interfaces」「$proxy_interfaces」「$virtual_alias_domains」
「$virtual_mailbox_domains」のいずれにも適合しない場合アクセスを拒否する
・reject_unknown_recipient_domain
宛先メールアドレスのドメイン部に対するDNSのA,MXレコードが存在しない場合、
アクセスを拒否する(エラーコード:450)
・reject_unlisted_recipient
宛先メールアドレスのドメイン部が自分が受け取るべきものなのに、
存在するユーザがいない場合アクセスを拒否する
ルックアップテーブル
postfoxのパラメータでルックアップテーブルを指定する場合は「タイプ名:引数」とする
・hash
単純に検索キーと値のペアを指定するルックアップテーブル。
ファイルはBerkeleyDBのhash形式のデータベース。
・dbm
使用しているデータベースの形式がDBM形式であること以外はhashと同じ。
・cidr
検索キーのパターンにネットワークアドレスを指定できる形式。
・static
検索キーに係らず常に一定の値を返すルックアップテーブル。
・regexp
検索キーに適合するパターンを正規表現で指定する。
・unix
passwd、groupデータベースを参照するルックアップテーブルをこちらで
・mysql
検索にmysqlを使用するルックアップテーブルをこちらで
コマンドラインユーティリティ
Postfixコマンド
・postfix start
・postfix stop
・postfix status
・postfix reload
・postfix abort
・postfix drain
・postfix flush
・postfix check
Postfixパラメータの管理
・postconf
・-nオプション
・-dオプション
・-eオプション
・-mオプション
・postmap
・-sオプション
・-qオプション
・-dオプション
・-i/-r/-wオプション
・postalias
・newaliases
キュー管理コマンド
・postqueue
・-pオプション
・postcat
・mailq
・postsuper
疲れたので詳細はまた後日・・・