配置 Postfix 以限制用户访问 Postfix“Sendmail”命令

配置 Postfix 以限制用户访问 Postfix“Sendmail”命令

阅读http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions,我们看到,默认情况下,对 postfix 的网络邮件中继访问仅限于“本地”或“经过身份验证的”用户:

smtpd_relay_restrictions(默认:permit_mynetworks、permit_sasl_authenticated、defer_unauth_destination)

Postfix SMTP 服务器在 smtpd_recipient_restrictions 之前在 RCPT TO 命令上下文中应用的邮件中继控制的访问限制。

但与此同时,任何能够在邮件服务器上运行应用程序的用户都可以绕过这些网络 smtpd_relay_restrictions,甚至 SASL 身份验证要求,只需使用本地 postfix sendmail 命令发送邮件即可。postfix sendmail 命令可以直接从 shell 运行,也可以间接运行,例如使用 Gnome Evolution“个人信息管理器”。

除了通过更改 sendmail 用户或组权限以及每个用户组成员身份来限制对 postfix sendmail 命令本身的访问之外,如何直接配置 postfix 以限制对 postfix sendmail 命令的访问?

答案1

阅读http://www.postfix.org/sendmail.1.html, 我们看:

Postfix sendmail(1) 依赖于 postdrop(1) 命令在 maildrop 目录中创建队列文件。

然后,阅读http://www.postfix.org/postdrop.1.html

以下 main.cf 参数与该程序特别相关。

authorized_submit_users(静态:任何人)
有权使用 sendmail(1) 命令(以及使用特权 postdrop(1) 帮助命令)提交邮件的用户列表。

进一步阅读http://www.postfix.org/postconf.5.html#authorized_submit_users, 我们看:

默认情况下,所有用户都允许提交邮件。否则,将在系统密码文件中查找进程的真实 UID,并且只有当相应的登录名在访问列表中时才授予访问权限。用户名“unknown”用于在密码文件中找不到其真实 UID 的进程。 要拒绝所有用户提交邮件的权限,请指定一个空列表。

指定用户名列表、“/file/name”或“type:table”模式,以逗号和/或空格分隔。列表从左到右匹配,搜索在第一次匹配时停止。“/file/name”模式由其内容替换;当名称与查找键匹配时,将匹配“type:table”查找表(查找结果将被忽略)。通过在下一行开头使用空格来继续长行。指定“!pattern”以从列表中排除用户名。只有 Postfix 版本 2.4 及更高版本支持“!/file/name”格式。

例如:
authorized_submit_users = !www, static:all

有关“type:table”模式的其他信息,请访问http://www.postfix.org/DATABASE_README.html#types

相关内容