如何在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,邮件也不会被拒绝。