送信者、宛先といったアドレス以外の条件で特定のメッセージをスキャン処理の
対象外としたい場合、メッセージフィルターを使ってスキャン処理をバイパスする
ことができます。
この資料ではそのようなメッセージフィルターの設定方法についてご紹介します。
なおメッセージフィルターは GUI での設定はございません。
設定手順
1) CLI で ESA へログインします。
2) (オプション)必須ではありませんが受信処理中だと設定の反映が遅れる
可能性があるので事前に "suspendlistener", "workqueue pause" コマンドで
受信処理を一時停止して更新されることをお勧めします。
(hostname)> suspendlistener
(hostname)> workqueue pause
3) "filters" コマンドを実行します。
新規メッセージフィルタを作成するには "New" 実行し、フィルター
編集を行います。
(hostname)> filters
Chose the opration you want to perform:
- NEW - Create a new filter
- IMPORT - Import a filter script from a file.
[]> new
Enter filter script. Enter '.' on its own line to end.
(以後 "." か Ctrl-C を入力するまでスクリプト入力モードになります)
4) メッセージフィルタースクリプトを入力します。
以下のフォーマットで入力します。
(フィルター名):
if (メッセージを特定する条件) {
(行うアクション);
}
. (<= "." で終了します)
5) "LIST" コマンドで登録したフィルターが正常に登録され有効化されて
いるか確認します。
[]> list
Num Active Valid Name
1 Y Y Example1
なお登録したフィルターを使わない場合は "SET" コマンドで
"Inactive" にします。
[]> SET
Enter the filter name, number, or range:
[all]> 1
Enter the attribute to set:
1. Active
2. Inactive
[1]> 2
1 filters updated.
[]> list
Num Active Valid Name
1 N Y Example1
("Active" の箇所が "N" となり無効状態になります。)
6) CLI コマンドプロンプトに戻り、"commit" コマンドで変更を反映させます。
[]> (改行)
hostname> commit
7) (オプション)前述 2) の操作で受信処理を一時停止していたら、これを再開します。
(hostname)> workqueue resume
(hostname)> resumelistener
以下、フィルターの例です。
フィルター例1:添付ファイル名が "invoice.pdf" のメールを削除し、
ログに "Dropped by filter matched" と記録する
Example1:
if (attachment-filename == 'invoice\\.pdf') {
log-entry("Dropped by filter matched");
drop();
}
フィルター例2:件名が "Important" で始まるメールの場合、
アンチウイルスをスキップし、ログに "bypass AntiVirus by filter" と記録する
Example2:
if (subject == '^Important') {
log-entry("bypass AntiVirus by filter");
skip-viruscheck();
}
フィルター例3:ヘッダーに "X-sample" というヘッダーを持つメールを
アウトブレークフィルタをスキップし、ログに "bypass OutBreak by filter" と記録する
Example3:
if header('X-sample') {
log-entry("bypass OutBreak by filter");
skip-vofcheck();
}
以上