VIRTUAL(8) VIRTUAL(8) 名前 virtual - Postfix バーチャルドメインメール配送エージェント 書式 virtual [generic Postfix daemon options] 解説 virtual 配送エージェントはバーチャルメールホスティングサー ビ スのために設計されました。元々は Postfix local 配送エー ジェントに基づいていますが、このエージェントはアドレスのロ ーカル部分をハードコードされた unix パスワードファイル検索 する代わりに、完全な受信者アドレスのマップ検索で受信者を検 索します。 この配送エージェントはメールだけを配送します。メールの転送 や移転通知などは virtual_alias マップや同様の検索メカニ ズ ムを使って設定されなければいけません。 メールボックスの場所 mailbox の場所は virtual_mailbox_base および virtual_mail- box_maps 設定パラメータにより制御されます ( 以 下 参 照)。 virtual_mailbox_maps テーブルは完全な受信者アドレスにより インデックス化されます。 mailbox パス名は次のように構成されます: $virtual_mailbox_base/$virtual_mailbox_maps(recipient) ここで recipient は完全な受信者アドレスです。 UNIX MAILBOX 形式 mailbox の場所が / で終わっていなければ、メッセージは UNIX mailbox 形式で配送されます。この形式は複数のメッセージを一 つのテキストファイルに保存します。 virtual 配送エージェントは "From sender time_stamp" エンベ ロ ープヘッダ、エンベロープ受信者アドレスを持つ Delivered- To: メッセージヘッダ、Postfix に渡された受信者アドレスを持 つ X-Original-To: ヘッダ、エンベロープ送信者アドレスを持つ Return-Path: メッセージヘッダをそれぞれのメッセージの前 に 付け、 > 文字を "From " 行の頭に加え、空行を付加します。 mailbox は配送中は排他的アクセスのためにロックされます。問 題が起こると、mailbox は元の長さに切り詰めようと試みます。 QMAIL MAILDIR 形式 mailbox の 場所が / で終わっていると、メッセージは qmail maildir 形式で配送されます。この形式はファイルごとに一つの メッセージを保管します。 virtual 配送エージェントデーモンはエンベロープ受信者アドレ スを持つ Delivered-To: メッセージヘッダ、Postfix に渡さ れ た受信者アドレスを持つ X-Original-To: ヘッダおよびエンベロ ープ送信者アドレスを持つ Return-Path: メッセージヘッダを前 に加えます。 定義上、maildir 形式はメール配送や検索時にロックを必要とし ません。 MAILBOX の所有者 Mailbox の 所 有 者 は virtual_uid_maps お よ び vir- tual_gid_maps 検索テーブルによって制御され、これらは完全な 受信者アドレスでインデックス化されます。それぞれのテーブル は数字のユーザおよびグループIDという文字列を提供します。 virtual_minimum_uid パラメータは virtual_uid_maps に指定で きるユーザ ID の数値の下限を指定します。 セキュリティ virtual 配送エージェントはセキュリティに注意を払う必要はな く、 それにより受信者ユーザ/グループ ID 情報を持つ検索テー ブルは十分に保護されます。このプログラムは chroot されて動 くようには設計されていません。 標準 RFC 822 (ARPA インターネットテキストメッセージ) 診断 受信者のメールボックスがなかったり、受信者がディスククォー タを越えていると、メールをバウンスします。それ以外の場合は 全て、存在する受信者宛のメールは遅延され、警告がログに記録 されます。 問題と処理は syslogd(8) に記録されます。壊れたメッセ ー ジ ファ イルは後でキューマネージャが corrupt キューに移動でき るようにマークされます。 notify_classes パラメータの設定により、postmaster はバウン スやその他のトラブルの通知を受けます。 バグ この配送エージェントは静かに拡張アドレスを無視します。 Postfix は複数の属性結果を返すことが可能な検索テーブルを持 つべきです。3つのテーブルを維持する不便さを避ける た め に は、 LDAP や MYSQL データベースを使ってください。 設定パラメータ 以 下の main.cf パラメータは特にこのプログラムに関連があり ます。文法の詳細やデフォルト値は Postfix main.cf ファイ ル を参照して下さい。設定の変更後は postfix reload コマンドを 使ってください。 Mailbox 配送 virtual_mailbox_base 全ての mailbox や maildir パスの前に付けられるパ ス を 指定します。これは virtual_mailbox_maps にある制 御外の制御マップがメールボックスをファイルシステ ム にばらまかないようにする安全な手段です。 "/" をセッ トすることもできますが、この設定は勧められません。 virtual_mailbox_maps 受信者は mailbox や maildir のパスを決めるため に、 こ れらのマップで検索されます。返されたパスがスラッ シュ("/")で終わっていると、 maildir 形式の配送が お こなわれ、そうでなければ パスは UNIX 形式の mailbox ファイルを指定したものとみなされます。 検索テーブルをサーチするときには、拡 張 ア ド レ ス (user+foo@domain.tld) は無視されます。 特に user@domain.tld エントリを持たない @domain.tld ドメインのあらゆるユーザにマッチさせるためには、 検 索テーブルの左側部分に @domain.tld を指定してくださ い。 virtual_mailbox_base が無条件でこのパスの前に付けら れることに注意してください。 正 規表現マップは使えますが、セキュリティ上の理由か ら、正規表現の $1 等の置き換えを使用することがで き ま せん。セキュリティホールを開ける可能性があるため です。 セキュリティ上の理由から、プロキシを通したテーブ ル 検 索は使えません。セキュリティホールを開ける可能性 があるためです。 virtual_mailbox_domains Postfix virtual 配送エージェントを通して配送され る べきドメインのリスト。これは mydestination 設定パラ メータと同じ文法を使います。 virtual_minimum_uid virtual_uid_maps 検索から返されるものとして受け入れ られる最小の uid を指定します。これよりも小さな値が 返されると拒否され、メッセージは遅延されます。 virtual_uid_maps 受信者は目的の mailbox に書き込む際に、これらのマッ プを使ってユーザ ID を決めるのに検索されます。 検 索 テ ー ブ ルをサーチするときには、拡張アドレス (user+foo@domain.tld) は無視されます。 特に user@domain.tld エントリを持たない @domain.tld ド メインのあらゆるユーザにマッチさせるためには、検 索テーブルの左側部分に @domain.tld を指定してくださ い。 正 規表現マップは使えますが、セキュリティ上の理由か ら、正規表現の $1 等の置き換えを使用することがで き ま せん。セキュリティホールを開ける可能性があるため です。 セキュリティ上の理由から、プロキシを通したテーブ ル 検 索は使えません。セキュリティホールを開ける可能性 があるためです。 virtual_gid_maps 受信者は目的の mailbox に書き込む際に、グループ ID を決めるのにこれらのマップを使って検索されます。 検 索 テ ー ブ ルをサーチするときには、拡張アドレス (user+foo@domain.tld) は無視されます。 特に user@domain.tld エントリを持たない @domain.tld ド メインのあらゆるユーザにマッチさせるためには、検 索テーブルの左側部分に @domain.tld を指定してくださ い。 正 規表現マップは使えますが、セキュリティ上の理由か ら、正規表現の $1 等の置き換えを使用することがで き ま せん。セキュリティホールを開ける可能性があるため です。 セキュリティ上の理由から、プロキシを通したテーブ ル 検 索は使えません。セキュリティホールを開ける可能性 があるためです。 ロックの制御 virtual_mailbox_lock UNIX 形式の mailbox のロック方法: flock, fcntl また は dotlock のうち1つもしくはそれ以上です。dotlock 法は受信者の UID または GID が mailbox ファイルの親 ディレクトリへの書き込み権が必要です。 maildir 配送は明示的なロックなしでも安全なため、こ の設定はそのような配送では無視されます。 システムで使えるロック方法を見付けるためには、post- conf -l コマンドを使ってください。 deliver_lock_attempts UNIX 形式の mailbox ファイルの排他的ロックを獲得し ようとする回数を制限します。 deliver_lock_delay UNIX 形式の mailbox ファイルの排他的ロックを連続 し て獲得しようとする時間間隔 (デフォルト: 秒)。実際の 遅延は少しランダムになっています。 stale_lock_time 止まったロックファイルが削除されてからの時間を制 限 します (UNIX 形式の mailbox のみに適用されます)。 リソースの制御 virtual_destination_concurrency_limit virtual 配送エージェントを使った同じドメインへの同 時配送数を制限 し ま す。 デ フォ ル ト の 制 限 は default_destination_concurrency_limit パラメータか ら取得します。制限は Postfix キューマネージャにより 強制されます。 virtual_destination_recipient_limit virtual 配送エージェントを使ったメッセージ配送ごと の受信者数を制限しま す。 デ フォ ル ト の 制 限 は default_destination_recipient_limit パラメータから 取得します。制限は Postfix キューマネージャにより強 制されます。 virtual_mailbox_limit mailbox や maildir ファイルの最大バイト数。 0 を指 定すると制限をなくします。 歴史 このエージェントはもともと Postfix local 配送エージェン ト に基づいています。修正は主に適用できなかったりこの状況で安 全でないものを取り除くことから なっ て い ま す: aliases, ~user/.forward ファイル、 "|command" や /file/name への配 送。 Delivered-To: ヘッダは Daniel Bernstein による qmail シ ス テムで現れました。 maildir 構造は Daniel Bernstein による qmail システムで現 れました。 関連項目 regexp_table(5) POSIX 正規表現テーブルフォーマット pcre_table(5) Perl 互換正規表現テーブルフォーマット bounce(8) 非配送状態レポート syslogd(8) システムロギング qmgr(8) キューマネージャ ライセンス The Secure Mailer license はこのソフトウェアと一緒に配布さ れなければいけません。 作者 Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA Andrew McNamara andrewm@connect.com.au connect.com.au Pty. Ltd. Level 3, 213 Miller St North Sydney 2060, NSW, Australia VIRTUAL(8)