Для использования метода интеграции "до передачи сообщения в очередь" (before-queue интеграции) при компиляции динамически подгружаемой библиотеки из исходных кодов требуется указать, что необходима поддержка dlfunc. В некоторых дистрибутивах Linux в хранилище содержатся скомпилированные версии Exim, в других случаях требуется ручная компиляция.
В случае ручной компиляции требуется добавить в Makefile следующие строки:
EXPAND_DLFUNC=yes
EXTRALIBS= -export-dynamic
При before-queue интеграции с использованием динамически подгружаемой библиотеки фильтр должен передавать сообщения для проверки модулю Scan Logic по сокету ServiceSocket. Этот сокет требуется задать в конфигурации программы.
В зависимости от дистрибутива операционной системы вам требуется внести изменения в один или несколько конфигурационных файлов почтового сервера Exim. Например, в Debian и Ubuntu почтовый сервер Exim может конфигурироваться как с помощью нескольких файлов в директории /etc/exim/conf.d, так и с помощью одного файла.
Чтобы выполнить before-queue интеграцию Kaspersky Security 8 для Linux Mail Server с Exim с использованием динамически подгружаемой библиотеки, выполните следующие действия:
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 согласно параметрам вашей операционной системы (опционально).kluser к группе, к которой принадлежит процесс exim. [global] установите значение false для параметра header-guard.EXIM_INTEGRATION_TYPE=dlfunc
Пакет установки Kaspersky Security 8 для Linux Mail Server содержит скомпилированную динамически подгружаемую библиотеку dlfunc для всех поддерживаемых программой операционных систем. Необходимые исходные файлы для библиотеки dlfunc находятся в директории /opt/kaspersky/klms/share/src/dlfunc (для Linux) или в директории /usr/local/share/klms/src/dlfunc (для FreeBSD).
Но в некоторых случаях требуется ручная компиляция.
Чтобы выполнить ручную компиляцию динамически подгружаемой библиотеки dlfunc, выполните следующие действия:
./configure --with-exim=<path to exim headers> --with-boost=<path to boost> --with-libevent=<path to libevent>.# make.В текущей директории появится файл libklms-exim.so.
В начало