Если во время первоначальной настройки приложения вы пропустили автоматическую интеграцию программы с почтовым сервером, вам требуется интегрировать приложение KSMG с почтовым сервером вручную.
Вы можете вручную интегрировать KSMG с почтовым сервером Exim методом "до передачи сообщения в очередь" (before-queue-интеграция) с использованием динамически подгружаемой библиотеки (dlfunc). В этом случае сообщения передаются на проверку приложению KSMG до размещения в очереди почтового сервера Exim. Интеграция методом "после передачи в очередь" (after-queue-интеграция) не поддерживается.
В зависимости от дистрибутива операционной системы вам требуется внести изменения в один или несколько конфигурационных файлов почтового сервера Exim:
Чтобы выполнить before-queue-интеграцию KSMG с Exim:
exim -bV
Почтовый сервер Exim поддерживает функции динамически загружаемой библиотеки dlfunc, если в секции Support for
есть строка Expand_dlfunc
.
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 и может выглядеть следующим образом:
kluser
к группе, в которую входит пользователь, от имени которого запускается процесс exim.По умолчанию в операционных системах Red Hat Enterprise Linux и Rocky Linux такая группа называется exim, в операционных системах Ubuntu – Debian-exim.
klusers
и kl_var_users
.По умолчанию в операционных системах Red Hat Enterprise Linux и Rocky Linux имя этого пользователя – exim, в операционных системах Ubuntu – Debian-exim.
[global]
установите следующие значения параметров:scanner=unix:/var/run/ksmg/klms_scanner_sock
header-guard=false
PrivateTmp
установлен в false
или не указан:workdir=/tmp
PrivateTmp
установлен в true
:workdir=/var/opt/kaspersky/ksmg/tmp
MTA_INTEGRATION_METHOD=dlfunc
MTA_INTEGRATION_MODE=prequeue
filters_workdir=<значение параметра workdir из п. 7>
mta=manual
START_SMTP_PROXY=0
START_MILTER=0
Интеграция с Exim будет завершена.
В начало