Exim メールサーバーとの手動統合
2024年4月16日
ID 56941
本製品の初期設定時にメールサーバーの自動連携をスキップした場合は、KSMG をメールサーバーと手動で連携する必要があります。
動的リンクライブラリ(dlfunc)を使用して、KSMG と Exim メールサーバーの before-queue 連携を手動で設定できます。before-queue 連携を使用すると、KSMG はメッセージが Exim メールサーバーのキューに入る前にメッセージをスキャンします。After-queue 連携はサポートされていません。
オペレーティングシステムによっては、編集の必要がある Exim メールサーバー設定情報ファイルが 1 つの場合と複数の場合があります:
- Red Hat Enterprise Linux および Rocky Linux では、メイン設定情報ファイル /etc/exim/exim.conf が変更されます。
- Ubuntuの場合:
- 設定情報ファイルがモノリシックテンプレートから生成されている場合は、ファイル /etc/exim4/exim4.conf.template が変更されます。
- 設定情報ファイルが分割テンプレートから生成されている場合は、テンプレートファイル /etc/exim4/conf.d/acl/40_exim4-config_check_data などに変更が加えられます。
KSMG と Exim の before-queue 連携を実行するには、次の手順を実行します:
- Exim メールサーバーが dlfunc 動的リンクライブラリの機能をサポートしていることを確認してください。この操作には、次のコマンドを実行します:
exim -bV
Exim メール サーバーは、[
Support for
]セクションにExpand_dlfunc
行が含まれている場合、動的にロードされる dlfunc ライブラリをサポートします。 - Exim 設定ファイルのバックアップコピーを作成します。
acl_smtp_data
のアクセス制御リストを編集します。そのためには、Exim の設定ファイルで次のような行を見つけます:acl_smtp_data = acl_check_data
(acl_check_data
の代わりに別の変数またはマクロを使用できます)見つけたら、
acl_check_data:
(または別の変数またはマクロを含む文字列)の後に、次の各行を追加します:
# Manually added block ksmg-exim-filter-dflunc begin
warn set acl_m_ksmg_input_directory = ${spool_directory}/input
set acl_m_ksmg_lookup_result = ${lookup {$message_id-D} dsearch {$acl_m_ksmg_input_directory}}
warn condition = ${if eq {$acl_m_ksmg_lookup_result}{}{yes}{no}}
set acl_m_ksmg_input_directory = ${spool_directory}/input/${substr{5}{1}{$message_id}}
warn set acl_m_ksmg_answer = ${dlfunc{DLFUNC_LIBRARY_FULLPATH}{scan}{$acl_m_ksmg_input_directory}}
defer condition = ${if match {$acl_m_ksmg_answer}{^[245]}{no}{yes}}
log_message = KSMG check failed, unexpected answer: $acl_m_ksmg_answer
defer condition = ${if match {$acl_m_ksmg_answer}{^4}{yes}{no}}
log_message = KSMG check defer: $acl_m_ksmg_answer
deny condition = ${if match {$acl_m_ksmg_answer}{^5}{yes}{no}}
log_message = KSMG check reject: $acl_m_ksmg_answer
message = This message is blocked due to security reason
warn condition = ${if match {$acl_m_ksmg_answer}{^2}{yes}{no}}
logwrite = KSMG check accept: $acl_m_ksmg_answer
# Manually added block ksmg-exim-filter-dlfunc ends here
DLFUNC_LIBRARY_FULLPATH は、dlfunc ライブラリへのパスです。ライブラリへのパスは Exim のバージョンによって異なり、次のようになります:
- Exim バージョン 4.86 から 4.90 未満— /opt/kaspersky/ksmg/lib/libklms-exim-abi20-1.so
- Exim バージョン 4.90 から 4.93 未満 — /opt/kaspersky/ksmg/lib/libklms-exim-abi20-2.so
- Exim バージョン 4.93 から 4.94 未満 — /opt/kaspersky/ksmg/lib/libklms-exim-abi31.so
- Exim バージョン 4.94 から 4.96 未満 — /opt/kaspersky/ksmg/lib/libklms-exim-abi41.so
- 4.96 以降の Exim の場合 — /opt/kaspersky/ksmg/lib/libklms-exim-abi60.so
- 必要に応じて、設定情報ファイルの編集が完了したら、メインの Exim 設定情報ファイルを再生成できます。
- exim プロセスを開始するユーザーが含まれるグループにユーザー
kluser
を追加します。既定では、このグループは Red Hat Enterprise Linux および Rocky Linux では「exim」、Ubuntu では「Debian-exim」と呼ばれます。
- exim プロセスを開始するユーザーを
klusers グループ
とkl_var_users
グループに追加します。既定では、ユーザー名は Red Hat Enterprise Linux および Rocky Linux では「exim」、Ubuntu では「Debian-exim」です。
- フィルター設定ファイル /etc/opt/kaspersky/ksmg/filters.conf の
[global]
セクションで、次のパラメータ値を設定します:scanner=unix:/var/run/ksmg/klms_scanner_sock
header-guard=false
PrivateTmp
がfalse
に設定されているか、Exim Unit ファイルで指定されていない場合:workdir=/tmp
- Exim Unit ファイルで
PrivateTmp が
true
に設定されている場合:workdir=/var/opt/kaspersky/ksmg/tmp
- ファイル /var/opt/kaspersky/ksmg/installer.dat で、次のパラメータ値を設定します:
MTA_INTEGRATION_METHOD=dlfunc
MTA_INTEGRATION_MODE=prequeue
filters_workdir=<手順 7 の「workdir」パラメータ値>
mta=manual
START_SMTP_PROXY=0
START_MILTER=0
- ksmg サービスを再起動します:
- Exim メールサーバーを再起動します。
Exim との連携が完了しました。