通过重新路由方式执行后端序列集成

2023年8月21日

ID 43875

当使用了“后端队列”集成且将邮件重新路由至 Kaspersky Security 8 for Linux Mail Server 进行扫描,然后再返回 Exim 邮件服务器时,必须满足以下条件:

  • 必须将过滤器配置为通过 socket-in 从 Exim 邮件服务器拦截邮件。此套接字必须在配置程序时指定。
  • 过滤器必须通过 scanner socket 将邮件转发至“扫描逻辑”进行扫描。此套接字必须在配置程序时指定。
  • 过滤器必须通过 socket-out 将邮件返回 Exim 邮件服务器。此套接字必须在配置程序时指定。

当与 Exim 邮件服务器的后端序列集成用于重新路由时,socket-inscannersocket-out 必须指向网络套接字。

根据操作系统的具体分发,您必须修改 Exim 邮件服务器的一个或多个配置文件。例如,在 Debian 和 Ubuntu 中,Exim 邮件服务器配置可能包含 /etc/exim/conf.d 目录下的几个文件,或仅包含一个文件。

通过重新路由执行 Kaspersky Security 8 for Linux Mail Server 与 Exim 的后端序列集成:

  1. 对一个或几个 Exim 配置文件进行备份。
  2. 在 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 扫描之后被发送的套接字的端口号。

  3. 在 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 代表过滤器用于等待邮件的端口。

  4. 在 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 上监听数据。

  5. 根据您的操作系统设置编译一个或多个 Exim 配置文件。
  6. 打开文件 /var/opt/kaspersky/klms/installer.dat(Linux 环境下)或 /var/db/kaspersky/klms/installer.dat(FreeBSD 环境下)。
  7. 在文件中添加下列行:

    EXIM_INTEGRATION_TYPE= after-queue

    START_SMTP_PROXY=1

  8. 打开文件 /etc/opt/kaspersky/klms/klms_filters.conf(Linux 环境下)或 /usr/local/etc/kaspersky/klms/klms_filters.conf(FreeBSD 环境下)。
  9. [smtp_proxy] 区域中,指定以下设置:

    socket-in=inet:$scanner_port@127.0.0.1

    socket-out=inet: $forward_port@127.0.0.1

  10. [global] 区域中,为 header-guard 设置设置 true 值。
  11. 重新启动 klms 服务。
  12. 重新启动 Exim 邮件服务器。

Did you find this article helpful?
What can we do better?
Thank you for your feedback! You're helping us improve.
Thank you for your feedback! You're helping us improve.