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)