Postfix + sasslauthd + PAM如何拒绝/允许特定用户进行身份validation?

我在RedHat上安装了一个简单的postfix安装,运行良好多年,并使用TLS / saslauthd / PAM来允许用户通过身份validation来从外部networking中继邮件。 所有用户都是本地Linux帐户,所以使用PAM的saslauthd方法一般运行良好。

有几个本地帐户不用于用户login,并将shell设置为/ sbin / nologin,但这些帐户仍然通过SMTP通过saslauthd公开。 我还没有find任何明显的方法来提供saslauthd帐户列表,应拒绝authentication。 基本上,我正在寻找一种白名单或黑名单用户帐户的方式,以便他们总是拒绝SMTP中继许可。 我不希望所有现有的本地帐户被允许中继邮件,只有那些我select的邮件。 有没有一个方便的方法来做到这一点,而不是我的当前身份validation链的重大变化?

一种方法是使用pam_listfile ,并拒绝用户提供的文本文件中列出的用户。

我怀疑给定的SASL用户排除在本地可能在Postfix。 但是,您可以创build一个自定义的Postfix策略服务 ,根据您select的任何标准来允许和拒绝访问。 我已经创build了pfxpold框架作为其基础,但是pfxpold需要一个定制的Perl类,可能对您的应用程序来说太重了。 尽pipe如此,对低利用率系统的小规模政策检查可以分解为几行shell脚本。