まず、InterScan MSS 9.1 Linux版 と IMSVA では一般的にメッセージは以下の経路でやり取りされます。検索サービスはアップストリームとダウンストリームにある Postfix のあいだに配置されており、この構成を前提として説明します。
- InterScan MSS (送信者フィルタが有効な場合)
- SMTP クライアント → 送信者フィルタ:25 → Postfix:2500 → 検索サービス:10025 → Postfix:10026 → SMTP サーバ
- InterScan MSS (送信者フィルタが無効な場合) または IMSVA
- SMTP クライアント → Postfix:25 → 検索サービス:10025 → Postfix:10026 → SMTP サーバ
- SMTP クライアントは送信元のメールサーバやメールクライアントを指します。
- SMTP サーバは配送先のメールサーバを指します。
- Postfix は InterScan MSS または IMSVA のローカルにインストールされている Postfix を指します。
- InterScan MSS では検索サービスのアップストリーム・ダウンストリームに配置する MTA は任意に選択できるため、Postfix の代わりに sendmail などの MTA が使用されている可能性があります。IMSVA では Postfix が製品内部にインストールされています。
- InterScan MSS では送信者フィルタ (IPプロファイラとメールレピュテーション) が有効かどうかで構成が異なります。
- IMSVA では上記の構成は簡易的なものです。実際にはメッセージは製品の内部で複雑にやりとりされます。
検索サービスが再起動されるタイミング
検索サービスが再起動 (停止・開始) される場面には主に以下が挙げられます。
- (a) ライセンスの登録
- 管理コンソールの 製品ライセンス 画面でアクティベーションコードを入力してアクティベートした場合 (ライセンスが自動更新された場合は除く)。
- (b) コンポーネントのアップデート
- 手動アップデートまたは予約アップデートにより、ウイルスパターンファイル等、なんらかのコンポーネントのバージョンが更新された場合 (Trend Micro Control Manager によるコンポーネントの配信も含む)。ウイルスパターンファイルは1日1回、スパムメール対策パターンファイルは1日に 4, 5回 アップデートされるため、1日に何度も検索サービスが再起動されます。
- (c) 管理コンソールにおける設定変更
- ポリシールールの設定変更など、ほとんどの場合で検索サービスが再起動されることはありませんが、検索の除外のセキュリティ違反における設定値の変更やプロキシの設定変更などが行われた場合に検索サービスが再起動します。
- (d) 手動でのスクリプトの実行による再起動
- スマートスキャンのクエリのタイムアウト値を引き上げるなど、S99IMSS restart のコマンドを手動で実行した場合。
検索サービスの再起動が発生した場合、管理コンソールの ログ > ログクエリ の画面で「システムイベント」「サービスのステータス」を選択して検索すると、「IMSSデーモンが停止しました。」「IMSSデーモンが開始しました。」というログを確認できます。
検索サービスの再起動による影響
検索サービスが再起動した場合、その間に SMTP クライアントから InterScan MSS または IMSVA のサーバに転送されるメッセージが若干遅延して配送される可能性があります。
検索サービスの停止と配送の失敗
検索サービスの再起動にかかる時間は長くても1分以内ですが、検索サービスはその間、いったん停止します。そのため、検索サービスのアップストリームにある Postfix が検索サービス停止中に SMTP クライアントからメッセージを受信すると、検索サービスにメッセージを配送できないため、メッセージは一時的に Postfix のキュー (deferred キュー、IMSVA では遅延キューとも呼びます) に保存されます。
Feb 3 10:07:36 imsva91 postfix/smtp[25240]: 17012C803E: to=, relay=localhost[127.0.0.1]:10025, delay=0.03, delays=0.01/0/0.02/0, dsn=4.4.2, status=deferred (lost connection with localhost[127.0.0.1] while receiving the initial server greeting) ... Feb 3 10:07:39 imsva91 postfix/smtp[25245]: 19E01C8047: to=, relay=none, delay=0.01, delays=0.01/0/0/0, dsn=4.4.1, status=deferred (connect to localhost[127.0.0.1]:10025: Connection refused)
また、InterScan MSS または IMSVA のサーバ上で以下のコマンドを実行すると、一時的にキューに保存されたメッセージを確認することができます。
# postqueue -p -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 19E01C8047 4627 Mon Feb 3 10:07:39 sender@example.com (connect to localhost[127.0.0.1]:10025: Connection refused) jane@trendmicro.com 17012C803E 8011 Mon Feb 3 10:07:36 sender@example.co.jp (lost connection with localhost[127.0.0.1] while receiving the initial server greeting) john@trendmicro.com
検索サービスの停止のタイミングでメッセージを検索中の場合、検索が中断されます。検索が完了していなければ検索サービスはメッセージを受信していないため、メッセージは Postfix のキューにいったん保存されます。
検索サービスの開始とキューのフラッシュ (flush)
Manager サービス (imssmgr) は毎分、検索サービス (imssd) を始めとした製品に関連するサービスを監視しています。Manager サービスは検索サービスが開始されたこと (再起動されたこと) を検知すると Postfix のキューをフラッシュ (flush) し、キューに保存されていたメッセージを再送します。
Manager サービスが Postfix のキューを flush した場合、Manager ログ (imssmgr.yyyymmdd.nnnn) とメールログ (maillog) には以下のログが出力されます。
2020/02/03 10:08:28 GMT+09:00 [8954:4061145968] [NORMAL]SysMonitor: Control postfix by cmd /opt/trend/imss/bin/close_handle_sh "/opt/trend/imss/script/postfix flush >/dev/null 2>&1"
Feb 3 10:08:28 imsva91 postfix/postlog[26077]: FLUSH: Checking if IMSS is running.
再送されたメッセージは検索サービスに渡され、ポリシールールの検索で隔離されたり、削除されなければダウンストリームの Postfix に転送され、配送先メールサーバに配送されます。
キューのフラッシュ (flush) が実行されない場合
IMSVA 9.1
IMSVA 9.1 に Patch 2 (b1830) が適用されていない環境では Manager サービスによるサービスの監視と検索サービス再起動のタイミングによって Postfix のキューが flush されない場合があります。
flush が実行されなかった場合、キューに保存されたメッセージは Postfix の再送設定にしたがって再送されます。IMSVA の初期設定では 15分 の間隔で最初にメッセージを 再送 するため、15分程度遅延する可能性があります。
遅延時間を短縮するのであれば、queue_run_delay と minimal_backoff_time のパラメータ値を 300s (5分) などに引き下げるなど、再送間隔を短くしてください。あるいは、検索サービスの開始後に常にキューが flush されるよう最新の Patch を適用してください。
InterScan MSS 9.1 Linux版
InterScan MSS 9.1 Linux版 とローカルの Postfix で連携している環境であったとしても、以下のビルドで検索サービス開始時に flush が実行されない問題が確認されています。
- InterScan MSS のビルドが b1241 未満
- InterScan MSS のビルドが b1241 未満の環境で Patch 1 を適用したビルド以降 (b1335 から b1342 まで)
キューの flush が実行されなかった場合、キューに保存されたメッセージは Postfix の再送設定にしたがって再送されます。遅延時間を短縮するのであれば、IMSVA の再送設定の 製品Q&A や、Postfix の ドキュメント を参考に Postfix の再送設定を変更してください。
なお、問題が発生しているビルドにおいて検索サービス再起動後に Postfix のキューを flush するためには以下の手順にしたがって回避策を実施してください。
InterScan MSS のインストールディレクトリは初期設定では /opt/trend/imss です。インストール時にインストールディレクトリを変更している場合には /opt/trend/imss を置き換えてください。
-
InterScan MSS のサーバに root でログインして以下のコマンドを実行し、まず InterScan MSS のビルドを確認します。
# /opt/trend/imss/script/S99IMSS version Version 9.1-Build_Linux_1335 $Date: Dec 5 2019 16:28:19$
上記のコマンド実行例では 1335 が InterScan MSS のビルドとなります。
この数字 (ビルド) が "1195" など 1241 未満の場合、まず、InterScan MSS 9.1 Linux版 Patch 1 (b1335) を適用してください。その上で手順 2 に進みます。
この数字 (ビルド) が 1241 以上、1248 以下の場合、または 1346 以上の場合、問題は発生しません。
この数字 (ビルド) が 1335 以上、1342 以下の場合、そのまま手順 2 に進みます。
-
次に下記コマンドを実行してスクリプトファイルのハッシュ値をチェックしてください。
# md5sum /opt/trend/imss/script/postfix 5e0eb2ceffbf474480ec2814e85d66ae /opt/trend/imss/script/postfix
上記のようにハッシュ値が 5e0eb2ceffbf474480ec2814e85d66ae の場合、手順 3 に進みます。
ハッシュ値が 5e0eb2ceffbf474480ec2814e85d66ae 以外の場合、問題は発生しません。
-
最後に以下のコマンドを順に実行して、バックアップファイルの取得とスクリプトファイルの変更を行います。
# cp -p /opt/trend/imss/script/postfix /opt/trend/imss/script/postfix.org # sed -i 's/# IMSS should not use this script\.$/if [ "$1" == "flush" ]; then\n\t\techo "postfix flush"\n\t\tpostfix $1\n\t\texit $?\n\tfi/' /opt/trend/imss/script/postfix
InterScan MSS において sendmail などの Postfix 以外の MTA と連携している環境では、遅延する時間を短縮するのであれば連携している MTA 側の再送設定を調整してください。