キーワード: aliasdetourhost、aliasoptindetourhost
aliasdetourhost および aliasoptindetourhost を使用すると、ホストしているユーザーの mailHost 属性値にソースチャネル固有の優先順位を与えられます。特に、aliasdetourhost は、ある種の処理のために別々のホストに送られるローカル (このシステムでホストされている) ユーザー宛のメッセージのルーティングにおいて「迂回経路」を確保するために一般的に使用されています。メッセージは元のホストで検証されて (アドレスが正しいローカルアドレスであるかどうか)、迂回経路で処理ホストに送信され、再び元のホストに返送されて拡張および配信されます。aliasdetourhost について言及するときは、aliasdetourhost に似た関数であるaliasoptindetourhost についての説明も含まれています。ただし、ユーザーが LDAP の属性を使用してオプトインする場合にかぎり、迂回が発生する点が異なります。
aliasdetourhost は、よりよい設定を実現し、「中間フィルタ」タイプのチャネルおよびサードパーティーのフィルタリングホストを使用可能にします。aliasdetourhost は通常、代替変換チャネルに追加して使用されます。aliasdetourhost は、ローカル (このシステムでホストされている) ユーザー宛のルーティングに適用されますが、代替変換チャネルはリモートの受取人宛のルーティングに適用されます。
aliasdetourhost の引数は、ホスト名またはドメイン名か、ホストおよびドメインの仕様です。(書き換えルールでは、ホスト名、IP リテラルアドレス、およびチャネルタグの処理が可能で、これらは黙示的にホスト名とみなされることに注意。) このキーワードをソースチャネルで指定すると、LDAP に保存されたアドレスのエイリアス展開が、メールホスト情報がチェックされるよりも前に (変換タグ情報の処理のあと) 停止します。このとき、メッセージは aliasdetourhost の値に送信されてアドレスの処理は正常に完了していますが、エイリアス展開は実行されておらず、なおかつアドレス検証は完了済みです。
変換チャネルのフィルタ処理に関するさまざまな問題を回避するための aliasdetourhost の使用例を次に示します。システムは、フロントエンド MTA とバックエンドメールストアから構成されているとします。ユーザーは、配信オプションを forward および mailbox に設定しています。MTA は、ウイルス/スパム防止システム用に代替変換チャネルを使用します。このユーザー宛にメッセージが到着すると、MTA エイリアスは展開され、ローカルとリモートに受取人を 1 人ずつ作成します。リモートの受取人のコピーは直接送信されます。一方、ローカルの受取人のコピーは、変換チャネルに送信されてスキャンされ、返送されます。次に、2 回目のエイリアス展開が行われて、リモートの受取人に対して 2 つ目のコピーが作成され、ローカルの受取人のコピーは通常どおり配信されます。最終結果: リモートの受取人には 2 つのコピー、ローカルの受取人には 1 つのコピーが送信されます。
ローカルにホストされているユーザーに代替変換チャネルを使用せずに (ただし、場合によっては他の受取人に対して代替変換チャネルを使用して)、aliasdetourhost を使用するチャネルを使うと、次のことが可能になります。
メッセージの受け入れ
外部のスパム/ウイルスフィルタへのメッセージのルーティング
アドレス拡張および配信のためのメッセージの再受け付け
例 1:
MTA とは別のホストでサードパーティー製のスキャナが動作していると想定します。次の例では、偽の重複エントリを作成しなくてもユーザーエントリの転送が可能であり、なおかつメッセージを受け入れる前に受取人アドレスの検証を実行する機能は保持されています。
新しいチャネル tcp_scanner を作成します。
作成したチャネルに daemon キーワードを設定し、使用するフィルタ処理システムを指定します。さらに、チャネルに enqueue_removeroute を追加します。tcp_scanner チャネルは、imta.cnf 内で次のようになります。
tcp_scanner smtp mx single_sys subdirs 20 noreverse maxjobs 7 pool SMTP_POOL daemon my_a-v_filter.siroe.com enqueue_removeroute tcp_scanner-daemon |
スキャンするすべてのソース tcp チャネルの tcp_local に aliasDetourHost tcp_scanner-daemon を追加します。スキャンの対象となる tcp チャネルには、tcp_local、tcp_submit、tcp_intranet、tcp_auth などがあります。次に、tcp_local と tcp_submit の例を示します。
! tcp_local tcp_local smtp mx single_sys remotehost inner switchchannel identnonenumeric subdirs 20 maxjobs 7 pool SMTP_POOL maytlsserver maysaslserver saslswitchchannel tcp_auth missingrecipientpolicy 0 aliasdetourhost tcp_scanner-daemon tcp-daemon |
! tcp_submit tcp_submit submit smtp mx single_sys mustsaslserver maytlsserver missingrecipientpolicy 4 aliasdetourhost tcp_scanner-daemon tcp_submit-daemon |
aliasdetourhost の引数 (tcp_scanner-daemon) は、新しいチャネル tcp_scanner の正規のホスト名です。
スキャニングシステムから tcp_scanner チャネルを介して返送されるメッセージを受け入れるように、書き換えルールを作成します。
[1.2.3.4] $E$R$U[1.2.3.4]@tcp_scanner-daemon
1.2.3.4 は、スキャナシステムの IP アドレスです。
この書き換えルールを使用しない場合、メッセージはほかのいずれかの tcp* ソースチャネルを介して送信されます。すべてのメッセージには aliasdetourhost が含まれるため、メッセージは再びスキャンされて、ループが発生します。
設定をコンパイルしなおし、ディスパッチャーを再起動します。
#imsimta cnbuild #imsimta restart dispatcher |
例 2:
サードパーティー製のスキャナは MTA と同じホストで動作しているが、異なるポートで待機していると想定します。ポート 10024 でメールが受け入れられ、10025 に返送されるとします。
新しいチャネル tcp_scanner を作成します。
! tcp_scanner tcp_scanner smtp nomx single_sys identnonenumeric subdirs 20 maxjobs 7 pool SCAN_POOL daemon 127.0.0.1 port 10024 enqueue_removeroute tcp_scanner-daemon |
スキャンするすべてのソース tcp チャネルの tcp_local に aliasDetourHost tcp_scanner-daemon を追加します。スキャンの対象となる tcp チャネルには、tcp_local、tcp_submit、tcp_intranet などがあります。次に、tcp_local と tcp_submit の例を示します。
! tcp_local tcp_local smtp mx single_sys remotehost inner switchchannel identnonenumeric subdirs 20 maxjobs 7 pool SMTP_POOL maytlsserver maysaslserversaslswitchchannel tcp_auth missingrecipientpolicy 0 aliasdetourhost tcp_scanner-daemon tcp-daemon |
! tcp_submit tcp_submit submit smtp mx single_sys mustsaslserver maytlsserver missingrecipientpolicy 4 aliasdetourhost tcp_scanner-daemon tcp_submit-daemon |
mappings ファイルに次のように追加して、tcp_scanner チャネルを経由して送信メールを再ルーティングします。
CONVERSIONS in-chan=tcp_scanner;out-chan=*;CONVERT No in-chan=tcp_*;out-chan=tcp_local;CONVERT Yes,Channel=tcp_scanner
SMTP_POOL の下の job_controller.cnf に、同時スキャン数の制限を追加します。
スキャニングソフトウェアにも制限が必要ですが、同時スキャン数と同じに設定して、メッセージングサーバーがメッセージを受け入れない場合にスキャナへのメール送信を試みないようにすることをお勧めします。
! [POOL=SCAN_POOL] job_limit=2 ! |
dispatcher.cnf に新しいサービスを追加して、特別なポートのスキャナから返されたメールを受け入れ、再びスキャンしないように tcp_scan を経由させて送信します。
! [SERVICE=SMTP_SCANNING] INTERFACE_ADDRESS=127.0.0.1 PORT=10025 IMAGE=IMTA_BIN:tcp_smtp_server LOGFILE=IMTA_LOG:tcp_smtp_server.log STACKSIZE=2048000 PARAMETER=CHANNEL=tcp_scanner ! |
設定をコンパイルしなおし、ディスパッチャーを再起動します。
# imsimta cnbuild # imsimta restart job_controller # imsimta restart dispatcher |
次の機能セットを通じて、ユーザー単位の aliasdetourhost が可能になりました。
aliasoptindetourhost チャネルキーワード。これは、機能が aliasdetourhost に似ていますが、次の属性を介してユーザーがオプトインする場合のみ迂回が発生する点が異なります。キーワードの値は、迂回経路となる可能性のあるホストをカンマで区切ったリストです。
MTA オプション LDAP_DETOURHOST_OPTIN は、存在した場合にユーザーを迂回経路にオプトインする属性の名前を指定します (ソースチャネルで aliasoptindetourhost が設定済みであることを想定)。この属性の値にピリオドが含まれる場合、値が迂回経路となる可能性のあるホストのリストと比較され、リストで一致した最初のホストが迂回経路に選択されます。値にピリオドが含まれない場合は、最初の迂回経路ホストが無条件で使用されます。
ALIASDETOURHOST_NULL_OPTIN MTA オプション。SPAMFILTERx_NULL_OPTIN に似ています (表 14–2 を参照)。特殊な値を指定しますが、この値が LDAP_DETOURHOST_OPTIN 属性で使用される場合は、この属性が省略されている場合と同様に処理されます。デフォルト値は "" で、これは空の属性値が無視されることを意味します。