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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/bash/385629.html

猜你在找的Bash相关文章