Postfix有两种方法可以实现发送邮件到不同的域,一种是信任网段,一种是身份认证。
Postfix想要认证用户,就需要使用额外的认证框架,因为Postfix提供的SMTP不具备认证的服务
所以须要使用SASL(Simple Authentication Secure Layer),系统默认已经安装cyrus-sasl软件
一、首先使用postfix -a可以查看postfix可以使用哪种机制认证
可以看到支持两种,其中一种就是cyrus
二、首先修改/etc/postfix/main.cf文件,设置除了127.0.0.0外拒绝给任何人中继
这样就只有身份认证通过的用户才可以发送邮件了,大概在268行
使用XP发送不是本域的邮件,发送不了,提示Relay access denied
三、开启认证,让通过认证的用户可以发送不是本域的邮件,这时候就用到了SASL服务,所以首先启动服务saslauthd
四、启动服务后,可以使用testsaslauthd来进行用户验证
a1是系统新建的帐号,123是密码,提示的是认证失败
五、修改/etc/sysconfig/saslauthd,使用shadow机制,重启服务在进行验证
在次验证就是验证通过了
六、虽然SASL已经可能让用户通过认证,但是Postfix却还没有开启SASL认证
所以需要修改配置文件,配置文件中需要设置两点
1.给postfix开启SASL认证
2.限定只有通过认证的用户才能中继邮件
可以通过postconf -d | grep smtpd可以获取上面的选项
七、设置用户,要求身份验证,之后便可以发送不是本域的邮件了
转载于:https://blog.51cto.com/zjsxzj/1707952