before-queue 統合方式を使用するには、ソースコードからダイナミックライブラリをコンパイルする際に dlfunc サポートが必要であることを指定する必要があります。一部の Linux ディストリビューションのリポジトリにはコンパイル済みの Exim バージョンが含まれていることがありますが、手動でのコンパイルが必要な場合もあります。
手動でコンパイルする場合は、Makefile に次の行を追加する必要があります:
EXPAND_DLFUNC=yes
EXTRALIBS= -export-dynamic
ダイナミックライブラリによる before-queue 統合を使用する場合は、フィルターがスキャンするメッセージを ServiceSocket 経由で ScanLogic に転送する必要があります。このソケットは、本製品の設定で指定する必要があります。
オペレーティングシステムによっては、編集の必要がある Exim メールサーバー設定ファイルが 1 つの場合と複数の場合があります。たとえば、Debian および Ubuntu では、Exim メールサーバーの設定は /etc/exim/conf.d ディレクトリの複数のファイルまたは単独のファイルで構成されます。
動的に読み込まれるライブラリを使用して Kaspersky Security 8 for Linux Mail Server と Exim の before-queue 統合を実行するには:
exim -bV コマンドを実行します。実行結果に Expand_dlfunc が含まれていれば、サポートしています。
acl_smtp_data のアクセス制御リストを編集します。そのためには、Exim の設定ファイルで次のような行を見つけます:acl_smtp_data = acl_check_data(acl_check_data ではないアクセス制御リストが指定されている場合があります)
見つけたら、
acl_check_data: の行(または、別のアクセス制御リストを含む行)の後に
の後に、次の各行を追加します:
#klms-filter-begin
warn set acl_m_klms_headers =
set acl_m_klms_result =
set acl_m_klms_answer = ${dlfunc{LIBDIR/libklms-exim.so}{scan}{${spool_directory}/input}}
defer condition = ${if eq {$acl_m_klms_answer}{}{yes}{no}}
log_message = LMS check failed (empty answer)
message = Temporary local problem - please try later
defer condition = ${if match {$acl_m_klms_answer}{\N^451\N}{yes}{no}}
log_message = LMS check defer: ${if match {$acl_m_klms_answer} \
{\N^451 Mail processing aborted(.+\n?.*\n)*$\N}{$1}{}}\\
${if eq {$acl_m_klms_result}{}{}{, result is \
'$acl_m_klms_result\'}}\
, temporary file $acl_m_klms_tempfile
message = Temporary local problem - please try later
defer condition = ${if match {$acl_m_klms_answer}{\N^452\N}{yes}{no}}
log_message = LMS check defer: ${if match{$acl_m_klms_answer} \
{\N^451 Mail processing timed out(.+\n?.*\n)*$\N}{$1}{}}\
${if eq {$acl_m_klms_result}{}{}{, result is \
'$acl_m_klms_result\'}}\
, temporary file $acl_m_klms_tempfile
message = Temporary local problem - please try later
deny condition = ${if match {$acl_m_klms_answer}{\N^550\N}{yes}{no}}
log_message = LMS check reject: ${if match {$acl_m_klms_answer} \
{\N^550 Rejected by malware filter(.+\n?.*\n)*$\N}{$1}{}}\
${if eq {$acl_m_klms_result}{}{}{, result is \
'$acl_m_klms_result\'}}\
, temporary file $acl_m_klms_tempfile
deny condition = ${if match {$acl_m_klms_answer}{\N^554\N}{yes}{no}}
log_message = LMS check reject: ${if match {$acl_m_klms_answer} \
{\N^554 Mail processing failed(.+\n?.*\n)*$\N}{$1}{}}\
${if eq {$acl_m_klms_result}{}{}{, result is \
'$acl_m_klms_result\'}}\
, temporary file $acl_m_klms_tempfile
message = ${if match {$acl_m_klms_answer} \
{\N^554 Mail processing failed(.+\n?.*\n)*$\N} \
{Mail processing failed:$1}{}}
warn condition = ${if match {$acl_m_klms_answer}{\N^250\N}{yes}{no}}
logwrite = LMS check accept: ${if match {$acl_m_klms_answer} \
{\N^250 (.+)$\N}{$1}{}} \
${if eq {$acl_m_klms_result}{}{}{, result is \
'$acl_m_klms_result\'}}
set acl_m_klms_answer =
warn condition = ${if eq {$acl_m_klms_answer}{}{no}{yes}}
logwrite = LMS check: $acl_m_klms_answer
#klms-filter-end
LIBDIR は、ライブラリ libklms-exim.so のパスです:
so モジュールをコンパイルします(オプション)。exim プロセスが属するグループにユーザー kluser を追加します。[global] セクションで header-guard を false に設定します。EXIM_INTEGRATION_TYPE=dlfunc
Kaspersky Security 8 for Linux Mail Server のインストールパッケージには、製品によってサポートされるすべてのオペレーティングシステム向けの、コンパイル済みで動的に読み込まれるライブラリ dlfunc が含まれます。dlfunc ライブラリで必要なソースファイルは、ディレクトリ /opt/kaspersky/klms/share/src/dlfunc(Linux 環境)または /usr/local/share/klms/src/dlfunc(FreeBSD 環境)にあります。
場合によっては、手動でのコンパイルが必要になります。
動的に読み込まれる dlfunc ライブラリを手動でコンパイルするには:
./configure --with-exim=<exim ヘッダーのパス> --with-boost=<boost のパス> --with-libevent=<libevent のパス>。# makeファイル libklms-exim.so が現在のフォルダーに表示されます。
ページのトップに戻る