我目前使用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时使用它 – >后缀.请参阅本答案末尾的解释.
原文链接:https://www.f2er.com/bash/385629.html要使用套接字,您应该使用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/
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的电子邮件.