如何在postfix(local_recipient_maps)中拒绝未知用户的邮件
时间:2020-02-23 14:40:14 来源:igfitidea点击:
如何仅将邮件传递给本地主机上的有效用户
如何使用Postfix在localhost上拒绝未知用户的邮件
如何使用Postfix拒绝未知的本地收件人
从Postfix 2.0版开始,Postfix SMTP服务器拒绝本地收件人表中具有未知用户的本地域(与$mydestination或者$inet_interfaces或者$proxy_interfaces中的IP地址匹配的域)中未知收件人的邮件。
。
对于较早的Postfix版本,此功能是可选的。
启用local_recipient_maps
local_recipient_maps参数定义Postfix可以用来确定本地用户名是否有效的位置列表。local_recipient_maps
的值部分的格式是逗号或者空格分隔的列表:
local_recipient_maps = $alias_maps unix:passwd.byname
为该参数定义的值指示Postfix在系统上查看其中以验证消息收件人地址。
前面的示例指示Postfix首先检查别名查找表,然后使用Unix系统密码文件。
拒绝未知用户的邮件
如前所述,在postfix 2.0之后,默认情况下postfix将拒绝未知用户的邮件。
我们也可以通过以下格式的local_recipient_maps
来明确定义。
在/etc/postfix/main.cf
文件中添加以下内容
local_recipient_maps = $alias_maps unix:passwd.byname
重新加载后缀服务
# systemctl reload postfix
核实
我的postfix服务器上没有用户hynman
。
# id hynman id: ‘hynman’: no such user
因此,我们将尝试通过telnet向" hynman"用户发送邮件以验证配置
# telnet -4 localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 centos8-2.example.com ESMTP Postfix HELO mail.example.com 250 centos8-2.example.com MAIL FROM: <[email protected]> 250 2.1.0 Ok RCPT TO: <[email protected]> 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in local recipient table ^] telnet> quit Connection closed.
从日志
Aug 02 02:21:20 centos8-2.example.com postfix/smtpd[9446]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in local recipient table; from=<[email protected]> to=<[email protected]> proto=SMTP helo=<mail.example.com> Aug 02 02:21:26 centos8-2.example.com postfix/smtpd[9446]: lost connection after RCPT from localhost[127.0.0.1]
停用local_recipient_maps
要关闭SMTP服务器拒绝的未知本地收件人拒绝,请在/etc/postfix/main.cf
中指定具有空值的local_recipient_maps,如下所示:
local_recipient_maps =
接下来重新加载后缀服务
# systemctl reload postfix
验证配置
# telnet -4 localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 centos8-2.example.com ESMTP Postfix HELO mail.example.com 250 centos8-2.example.com MAIL FROM: <[email protected]> 250 2.1.0 Ok RCPT TO: <[email protected]> 250 2.1.5 Ok ^] telnet> quit Connection closed.
现在即使我的本地主机上不存在用户hynman
,邮件也不会被拒绝。