微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Postfix和Amavis – 使用UNIX Soket进行通信

我目前使用Postfix,Dovecot,Amavis和Spamassassin进行复杂的邮件服务器设置.

一切正常,但我想改进Postfix-Amavis-Communication.目前,postfix将所有邮件发送到localhost:10024,这是amavis服务.在所有检查之后,修改后的版本被发送回localhost:10025,这是一个用于接收amavis邮件的后缀服务.

我的想法:UNIX SOCKETS(由于安全原因;不重要的原因)

所以我配置amavis在/run/amavis/amavis.socket中生成一个unix套接字.

我改变了这个:

amavis-forward:[127.0.0.1]:10024` to `amavis-forward:unix:/run/amavis/amavis.sock

但后来我得到了这个错误

Jan  5 13:55:23 server postfix/smtp[1447]: fatal: unkNown service: /run/amavis/amavis.sock/tcp
Jan  5 13:55:24 server postfix/qmgr[1254]: warning: private/amavis-forward socket: malformed response
Jan  5 13:55:24 server postfix/qmgr[1254]: warning: transport amavis-forward failure -- see a prevIoUs warning/fatal/panic logfile record for the problem description

因此邮件状态设置为status = deferred(未知邮件传输错误).

master.cf:

...
 # Amavis
 amavis-forward   unix    -       -       -       -       2       smtp
    -o smtp_tls_security_level=none
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
    -o max_use=20
 ...

结束:10024一切正常.我该如何解决

免责声明:这是半答案,因为我可以在后缀时使用套接字 – > amavis但是我不能在amavis时使用它 – >后缀.请参阅本答案末尾的解释.

要使用套接字,您应该使用LMTP而不是SMTP将postfix中的电子邮件发送到amavis.

正如NickW上面所说,你需要将amavis套接字放在Postfix队列目录中.在这个答案中我假设postfix队列目录是/ var / spool / postfix /.

创建目录以保存amavis套接

mkdir /var/spool/postfix/amavis/
chmod 750 /var/spool/postfix/amavis/
chown amavis:amavis /var/spool/postfix/amavis/

在amavis组中添加postfix用户

usermod -G amavis postfix

在amavisd.conf中配置

# for socket,it should reside in /var/spool/postfix
$unix_socketname = "/var/spool/postfix/amavis/amavisd.sock";

# set permission so amavis group can access this socket
$unix_socket_mode = 0660;

# Replace $interface_policy{'SOCK'} = 'AM.PDP';

$interface_policy{'SOCK'} = 'mysock';
$policy_bank{'mysock'} = {
   protocol => 'LMTP',auth_required_release => 0,# don't require secret-id for release
};

Postfix main.cf

content_filter = amavis-forward:unix:amavis/amavisd.sock

Postfix master.cf

# Amavis
amavis-forward   unix    -       -       -       -       2       lmtp
    -o lmtp_data_done_timeout=1200
    -o lmtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
    -o max_use=20

结果

amais postfix/smtpd[13393]: connect from localhost[127.0.0.1]
amais postfix/smtpd[13393]: 4E0B82340F: client=localhost[127.0.0.1]
amais postfix/cleanup[13359]: 4E0B82340F: message-id=<20150106070245.4E0B82340F@example.net>
amais postfix/qmgr[13352]: 4E0B82340F: from=<root@example.net>,size=344,nrcpt=1 (queue active)
amais postfix/smtpd[13363]: connect from localhost[127.0.0.1]
amais postfix/smtpd[13363]: 6081E2340B: client=localhost[127.0.0.1]
amais postfix/cleanup[13359]: 6081E2340B: message-id=<20150106070245.4E0B82340F@example.net>
amais postfix/qmgr[13352]: 6081E2340B: from=<root@example.net>,size=688,nrcpt=1 (queue active)
amais postfix/smtpd[13363]: disconnect from localhost[127.0.0.1]
amais postfix/local[13365]: 6081E2340B: to=<root@example.net>,orig_to=<koala@example.net>,relay=local,delay=0.01,delays=0.01/0/0/0.01,dsn=2.0.0,status=sent (delivered to mailBox)
amais postfix/qmgr[13352]: 6081E2340B: removed
amais amavis[13113]: (13113-03) Passed CLEAN {RelayedInbound},mysock <root@example.net> -> <koala@example.net>,Message-ID: <20150106070245.4E0B82340F@example.net>,mail_id: MLZDzoda7siu,Hits: -,size: 344,queued_as: 6081E2340B,90 ms
amais postfix/lmtp[13361]: 4E0B82340F: to=<koala@example.net>,relay=example.net[amavis/amavisd.sock],delay=0.11,delays=0.01/0/0.01/0.09,status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6081E2340B)
amais postfix/qmgr[13352]: 4E0B82340F: removed

对于amavis – >后缀传输,由参数forward_method控制.除了使用smtp,我不熟悉这个配置.在example in this page中,此参数支持的显然协议是pipe,smtp和bsmtp.此外,基于postfix architecture,postfix仅接受来自smtpd,qmqmd或sendmail的电子邮件.

原文地址:https://www.jb51.cc/bash/385629.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐