通过重新路由方式执行后端序列集成
2023年8月21日
ID 43875
当使用了“后端队列”集成且将邮件重新路由至 Kaspersky Security 8 for Linux Mail Server 进行扫描,然后再返回 Exim 邮件服务器时,必须满足以下条件:
- 必须将过滤器配置为通过
socket-in
从 Exim 邮件服务器拦截邮件。此套接字必须在配置程序时指定。 - 过滤器必须通过
scanner socket 将邮件转发至“扫描逻辑”进行扫描。
此套接字必须在配置程序时指定。 - 过滤器必须通过
socket-out 将邮件返回 Exim 邮件服务器。
此套接字必须在配置程序时指定。
当与 Exim 邮件服务器的后端序列集成用于重新路由时,socket-in
、scanner
和 socket-out
必须指向网络套接字。
根据操作系统的具体分发,您必须修改 Exim 邮件服务器的一个或多个配置文件。例如,在 Debian 和 Ubuntu 中,Exim 邮件服务器配置可能包含 /etc/exim/conf.d 目录下的几个文件,或仅包含一个文件。
通过重新路由执行 Kaspersky Security 8 for Linux Mail Server 与 Exim 的后端序列集成:
- 对一个或几个 Exim 配置文件进行备份。
- 在 Exim 配置文件的
[routers]
区域中,在行begin routers
后面添加以下行:
#klms-filter-begin-2
klms_dnslookup:
driver = dnslookup
domains = ! +local_domains
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
verify_only
pass_router = smtp_proxy
no_more
klms_system_aliases:
driver = redirect
allow_fail
allow_defer
data =${lookup{$local_part}lsearch{/etc/aliases}}
verify_only
pass_router = smtp_proxy
klms_localuser:
driver = accept
check_local_user
verify_only
pass_router = smtp_proxy
cannot_route_message = Unknown user
failed_address_router:
driver = redirect
verify_only
condition = "{0}"
allow_fail
data = :fail: Failed to deliver to address
no_more
smtp_proxy:
driver = manualroute
condition = "${if or {{eq {$interface_port}{$forward_port}} \\
{eq {\$received_protocol}{spam-scanned}} \\
}{0}{1}}"
transport = smtp_proxy
route_list = "* localhost byname"
self = send
#klms-filter-end-2
其中,
$forward_port
是邮件经过 Kaspersky Security 8 for Linux Mail Server 扫描之后被发送的套接字的端口号。 - 在 Exim 配置文件的
[transports]
区域中,在行begin transports
后面添加以下行:
#klms-filter-begin-3
smtp_proxy:
driver = smtp
port = $scanner_port
delay_after_cutoff = false
allow_localhost
#klms-filter-end-3
其中,
$scanner_port
代表过滤器用于等待邮件的端口。 - 在 Exim 的主配置文件(exim.conf 或 update-exim.conf.conf)中,以
127.0.0.1.$forward_port
形式指定子字符串,如下所示:dc_local_interfaces=<IP adress1>.<port1>:127.0.0.1.$forward_port
或
local_interfaces=<IP address1>.<port1>:127.0.0.1.$forward_port
其中,必须有
127.0.0.1.$forward_port
子字符串,Exim 邮件服务器才能接受来自过滤器的已处理邮件并在$forward_port
上监听数据。 - 根据您的操作系统设置编译一个或多个 Exim 配置文件。
- 打开文件 /var/opt/kaspersky/klms/installer.dat(Linux 环境下)或 /var/db/kaspersky/klms/installer.dat(FreeBSD 环境下)。
- 在文件中添加下列行:
EXIM_INTEGRATION_TYPE= after-queue
START_SMTP_PROXY=1
- 打开文件 /etc/opt/kaspersky/klms/klms_filters.conf(Linux 环境下)或 /usr/local/etc/kaspersky/klms/klms_filters.conf(FreeBSD 环境下)。
- 在
[smtp_proxy]
区域中,指定以下设置:socket-in=inet:$scanner_port@127.0.0.1
socket-out=inet: $forward_port@127.0.0.1
- 在
[global]
区域中,为header-guard
设置设置true
值。 - 重新启动 klms 服务。
- 重新启动 Exim 邮件服务器。