我在 Gentoo 上运行postfix
邮件守护进程。在调查一些队列堆积时,我发现/usr/sbin/postqueue
系统上的所有用户都可以执行它,它会愉快地-q
为所有用户输出当前邮件队列(带有)。
看起来这或多或少是经过设计的:postdrop
和postqueue
是set-gid
带有组的二进制文件postdrop
。
-rwx--s--x 1 root postdrop 15K Apr 10 23:49 postdrop
-rwx--s--x 1 root postdrop 15K Apr 10 23:49 postqueue
它们也可以由 执行other
,似乎postfix
需要( 的输出postfix check
):
postfix/postfix-script: warning: not set-gid or not owner+group+world executable: /usr/sbin/postqueue
我可能遗漏了一些内部工作原理,但据我所知,普通用户不应该有权访问队列,尤其是因为在此配置中,所有地址和域都设置为虚拟(通过数据库)。如果用户postqueue
定期轮询,他可以汇编一个<from>,<to>
地址对列表(postcat
受到限制,用户无法访问邮件内容)。
exim
有一个名为 的配置选项queue_list_requires_admin
,但我找不到类似的 postfix 配置选项。是否可以使用 postfix 限制队列访问?
答案1
Postfix 不使用 unix 权限功能来限制访问postqueue
。相反,它使用像“authorized_mailq_users”这样的参数
authorized_mailq_users(静态:任何人)
有权查看队列的用户列表。
因此,如果你想限制特定用户,例如:root,你可以使用
authorized_mailq_users = static:root
有关详细信息,请参阅man 1 postqueue