如何使用 amavis 扫描其他邮件服务器的邮件

如何使用 amavis 扫描其他邮件服务器的邮件

我有两个 Postfix 邮件服务器

  • mailserver1 正在运行 amavis 来扫描垃圾邮件和病毒邮件
  • mailserver2 在没有 amavis 的情况下运行。

我的问题是,如何以最聪明的方式分别使用 mailserver1 和 mailserver1 上的 amavis 来扫描来自 mailserver2 的邮件。
我已经在 mailserver1 上配置了 postfix 以将邮件转发到 amavis,并且运行正常,但如果可能的话,我想将来自 mailserver2 的邮件直接转发到 amavis。有人知道我如何指定 amavis 也监听外部端口吗?我的 amavis 配置已经如下所示:

#where can i specify the ip address and the networks for which amavis is listening??
$inet_socket_port = [10024,10028];   # default listening socket

#incoming mail from server1
$interface_policy{'10024'} = 'S1';

#incoming mail from server2 forewarded by server1
$interface_policy{'10028'} = 'S2';

$policy_bank{'S1'} = {
#send back to postfix on local server1
   notify_method => 'smtp:[127.0.0.1]:10026',
   forward_method => 'smtp:[127.0.0.1]:10026',
};

$policy_bank{'S2'} = {
#send to postfix on other server2
  notify_method => 'smtp:[192.168.1.2]:10029',
  forward_method => 'smtp:[192.168.1.2]:10029',
};

那么我需要在这个配置中添加什么才能让我能够使用 amavis 从 mailserver2 接收直邮并将其发回给它。

答案1

Amavisd 使用参数$inet_socket_bind 指定绑定 IP 地址。可能的值是undef或一个IP 地址。因此,无法指定某个 IP 地址但不是所有的。默认值为 127.0.0.1,这意味着 amavis 仅在本地主机上监听。

如果您通过将 amavisd 绑定到公共 IP 地址来公开它,请不要忘记设置 ACL,这样您就不会允许自由访问 amavisd SMTP 端口。为此,请使用参数@inet_acl。例如:

@inet_acl = qw(127.0.0.1 [::1] 192.168.1.2); # this will allow connection only from 127.0.0.1 or [::1] or 192.168.1.2)

答案2

旧帖子,但需要注意。要将邮件返回到其来源 IP,请使用“*”。因此,OP 的 2 个策略库可以用一个指令代替

$forward_method = 'smtp:*:10026';

已测试,并且有效。

相关内容