[exim-conf] реализация поддержки Kaspersky Security for Linux Mail Server

Victor Ustugov victor на corvax.kiev.ua
Ср Мар 14 23:58:35 EET 2018


приветствую

реализована поддержка антивирусной части Kaspersky Security 8.0 for
Linux Mail Server.

их антиспам просто добавляется свои хедеры, которые пока просто
игнорируются.

не смотря на слово "Linux" в названии продукта, тестирование интеграции
с exim и конфигуратором проводилась на FreeBSD 11.1.

тестировался пакет klms-8.0.2_16.txz.

после установки пакета нужно провести его настройку путём запуска
скрипта /usr/local/bin/klms-setup.pl. при тестировании были выбраны все
значения по умолчанию.

единственным исключением является отсутствие необходимости в интеграции
с exim средствами /usr/local/bin/klms-setup.pl

для тех, кто будет интегрировать klms и exim средствами
/usr/local/bin/klms-setup.pl, понадобится патч, без которого интеграция
закончится неудачно, если в значении параметра trusted_users будут
пробелы не в конце и не в начале значения (например, в списке,
являющимся значением параметра, будет более одного элемента, при этом до
или после двоеточия будет хоть один пробел):

https://mta.org.ua/klms/patches/klms-8.0.2-16-fix-exim-dlfunc-integration/klms-8.0.2-16-fix-exim-dlfunc-integration.patch


далее необходимо в site/conf добавить подключение штатной dlfunc пакета:

ANTIVIR_DLFUNC(`klms8', `',
	`klms8', `QUARANTINE_MAILLIST QUARANTINE REJECT',
	`',
	`defer_no_mbox_unspool defer_next',
	`pkg info -I klms | perl -p -e "chomp;s/ .+//;"',
	`Kaspersky Security 8.0 for Linux Mail Server',
	`10240k')

первый параметр менять нельзя, это суффикс названия соответствующей
FEATURE, которая будет подключена из FEATURE(`antivirus'), настройки для
которой передаются с помощью конструкции ANTIVIR_DLFUNC.

второй параметр игнорируется.

в третьем параметре указывается условное название антивируса (будет
использоваться как часть названия цепочки фолдеров при размещении
антивирусного карантина в maildir.

четвёртый параметр - традиционная форма указания списка возможных
действий при срабатывании антивируса.

остальные параметры необязательные.

пятый параметр игнорируется.

в шестом параметре можно передать список из значений defer_okm
defer_next, defer_no_mbox_unspool, используемый при принятии решения о
необходимых действиях в случае проблем в работе антивируса.

в седьмом параметре можно указать шелловую команду, которая вернёт
название и версию антивируса. это название будет использовано в
сообщениях (например, в заголовках писем с отметкой о наличии или
отсутствии вредоносных данных или кода в письме). пример приведён для
FreeBSD. следует понимать, что команда, синтаксис которой указан в
седьмом параметре, выполняется лишь при перегенерации конфига. если
антивирус будет обновлён, а конфигурационный файл exim'а не
перегенерирован, то в сообщениях будет фигурировать версия антивируса,
актуальная на момент последней генерации конфига.

если при выполнении команды из седьмого параметра будет получено пустое
значение, то в сообщениях будет использование статическое значение по
умолчанию из восьмого параметра (минус лишь в отсутствии актуальной
информации о версии антивируса). если седьмой и восьмой параметры будут
не указаны, будут пусты и т. д., то в сообщениях в качестве названия
антивируса будет использовано значение третьего параметра.

в девятом параметре можно указать ограничение на размер проверяемых писем.

по умолчанию используется штатная dlfunc из состава пакета klms. в
случае FreeBSD для архитектуры amd64 dlfunc находится в тут:

/usr/local/lib/kaspersky/klms/compat64/libklms-exim.so

проблемы с самостоятельной сборкой этой же dlfunc пока не решены. в
случае решения этих проблем я планирую разместить dlfunc в каталоге
/usr/local/libexec/exim/ рядом со штатной dlfunc конфигуратора
exim-dlfunc.so и с dlfunc exim-p0f3-dlfunc.so для интеграции с p0f.

в этом случае перед подключение klms с помощью конструкции
ANTIVIR_DLFUNC нужно будет указать реальное местоположение dlfunc:

define(`confKLMS8_DLFUNC_PATH', `/usr/local/libexec/exim/libklms-exim.so')



-- 
Best wishes
Victor Ustugov        mailto:victor на corvax.kiev.ua
public GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc
Skype ID: corvax_nb   JID: victor на corvax.kiev.ua



Подробная информация о списке рассылки exim-conf