はじめに
この記事では、Eメールセキュリティアプライアンス(ESA)のメッセージフィルタに関するベストプラクティスと実装について説明します。メッセージフィルタを使用すると、特定の条件を満たすメッセージをESAで受信して処理するときの処理方法を説明する特別なルールを作成できます。
前提条件
- ESAフィルタ操作の基本的な知識
- ESAのコマンドラインインターフェイス(CLI)に精通していること
メッセージフィルタを使用する利点
コンテンツフィルタに対してメッセージフィルタを使用する主な利点は、次の2つです。
- これらは、ワークキュー処理パイプラインの先頭に向かってメッセージに適用されます。このため、主要なスキャンエンジン(スパム対策、ウイルス対策、AMPなど)が使用される前にメッセージをフィルタリングすることで、大量のリソースを節約できる可能性があります。
- これらのフィルタは着信トラフィックと発信トラフィックの両方に対してアクションを実行しますが、コンテンツフィルタの場合は、着信用に1つと発信用に1つを作成する必要があります。
また、コンテンツフィルタを使用して設定できない条件もいくつかあります。コンテンツフィルタは、メッセージフィルタでのみ設定できます。
例:ESAのSendergroupに基づいて条件を定義する必要がある場合、そのオプションはメッセージフィルタでのみ使用できます。
注:未完了のメッセージフィルタアクションは累積されます。メッセージが、各フィルタが異なるアクションを指定する複数のフィルタに一致する場合、すべてのアクションが累積され、適用されます。ただし、メッセージが同じアクションを指定する複数のフィルタに一致する場合、前のアクションが上書きされ、最後のフィルタのアクションが適用されます。
メッセージフィルタの操作
AsyncOSがメッセージフィルタを処理する場合、AsyncOSがスキャンする内容、処理の順序、および実行されるアクションは、次のいくつかの要因に基づきます。
- メッセージフィルタは、設定された順序で処理されます(上から下、最初から最後)
- メッセージフィルタは、フィルタに到達したときにメッセージの内容に対して処理されます。
- 正規表現に一致する場合は、フィルタ操作を実行する前に一致が必要な回数を集計する「スコア」を設定します。これにより、異なる用語に対する回答を「比較検討」できます。
- メッセージフィルタのリンク条件の主な代替は次のとおりです。(AND / OR / IF / ELSE)
メッセージフィルタの作成
最初に、CLIからコマンドfiltersを発行して、メッセージフィルタのコンフィギュレーションモードに入ります。オプションは次のとおりです。
- NEW:このオプションでは、新しいフィルタの作成を開始します。このオプションの選択の後に、フィルタ名と構文が続きます。
- DELETE:このオプションを選択すると、必要に応じて既存のフィルタが削除されます。このコマンドを発行した後、削除するシーケンス番号のフィルタ名を入力できます
- インポート:アプライアンスディレクトリに保存されているフィルタの関連ファイルをインポートできます。
- EXPORT:このオプションでは、フィルタの関連ファイルをエクスポートして、別の宛先にインポートできます
- MOVE:このオプションでは、フィルタの順序をプリファレンスごとに変更できます
- SET:このオプションでは、フィルタのステータスをアクティブから非アクティブに変更したり、非アクティブからアクティブに変更したりできます
- LIST:このオプションは、ESAに存在する作成済みのフィルタをすべて表示します
- DETAIL:このオプションを使用すると、作成されたフィルタのコンポーネント(定義された条件やアクションなど)を確認できます。
- LOGCONFIG:このオプションは、アーカイブとして定義されたアクションを持つメッセージフィルタ用に作成されたログファイル名(「フォルダ名」)を表示します
- ROLLOVERNOW:このオプションを使用すると、メッセージフィルタで定義されたアーカイブアクションのために作成されたフォルダに存在するすべてのログをロールオーバーできます
フィルタは、クラスタ、グループ、マシンモードなど、ESAのすべてのモードで作成できます。
ESAが電子メールにフィルタを適用する設定プリファレンスの基準は、次のとおりです。
1番目のプリファレンス:マシンモード
2番目の設定:グループモード
3番目の設定:クラスタモード
メッセージフィルタを作成するには、条件とアクションを定義するための構文の組み合わせが必要です(メッセージフィルタの構文は次のとおりです)。
以下に例を挙げます。
if (recv-listener == 'InboundMail' or recv-int == 'notmain')
{
skip-filters();
}
else
{
quarantine(“Policy”);
}
.
上記のフィルタは、受信リスナーが「InboundMail」または受信インターフェイスが「notmain」の場合、残りのメッセージフィルタをスキップする動作を示しています。
条件が一致しない場合は、ポリシーに対して隔離します。これはelseの後に定義されます。
役に立つヒント
メッセージフィルタで使用される構文が分かりにくいことがありますが、コンテンツフィルタが簡単なリファレンスポイントとなる場合もあります。
メッセージフィルタに必要な条件とアクションを含むコンテンツフィルタを作成できます。フィルタを送信すると、次のページのフィルタセクションの上部に、次の3つのタブが表示されます。
タブRulesをクリックすると、フィルタが使用する構文が表示され、同じものを使用してメッセージフィルタを作成できます。これが、要件に従ってフィルタ条件の構文を絞り込む最も簡単な方法です。
メッセージフィルタで使用される正規表現
- Carat (^):キャレット記号(^)を含むルールは、文字列の先頭にのみ一致します。
例: ^I'm will match I'm an engineer
- ドル記号($):ドル記号($)を含む規則は、文字列の末尾にのみ一致します
例:.com$はgoogle.comだけでなくyahoo.comにも一致します。
- ピリオド文字(.):ピリオド文字(.)を含むルールは、任意の文字(新しい行を除く)と一致します。
例:正規表現^...admin$は、文字列macadminおよび文字列sunadminに一致しますが、win32adminには一致しません。
- アスタリスク(*)ディレクティブ:アスタリスク(*)を含むルールは、「前のディレクティブと0回以上の一致」に一致します。 特に、ピリオドとアスタリスク(.*)のシーケンスは、任意の文字シーケンスに一致します(新しい行は含まれません)。
例:正規表現^P.*Piper$は、これらすべての文字列に一致します:Pper、Peter Piper、P.Piper
- バックスラッシュ特殊文字(\):バックスラッシュ文字は特殊文字をエスケープします。したがって、シーケンス\.はリテラル期間にのみ一致し、シーケンス\$はリテラルのドル記号にのみ一致し、シーケンス\^はリテラルキャレット記号にのみ一致します。
例:正規表現^ik\\.ac\\.uk$は、文字列ik.ac.ukにのみ一致します。
- 大文字と小文字を区別しない((?i):正規表現の残りの部分を示すトークン(?i)は、大文字と小文字を区別しないモードで扱う必要があります。
例:正規表現(?i)ciscoはCisco、CISCO、およびciscoに一致します
- Or (|):「or」演算子。AとBが正規表現の場合、式「A|B」は「A」または「B」のいずれかに一致するすべての文字列と一致します。
例:式"foo|bar"はfooまたはbarのいずれかに一致しますが、foobarには一致しません。
関連情報
Cisco E メール セキュリティ アプライアンス:エンドユーザ ガイド