postfix防止伪造本域发件人

1.修改main.cf

加上:

smtpd_sender_login_maps = mysql:/etc/postfix/mysql_sender_login_maps.cf
验证发信人的信箱或别名是否真实有效,我使用mysql验证,不嫌累的可以使用hash验证。记得要在proxy_read_maps中添加$smtpd_sender_login_maps

smtpd_reject_unlisted_sender = yes

smtpd_sender_restrictions = permit_mynetworks,  reject_sender_login_mismatch,  reject_authenticated_sender_login_mismatch,  reject_unauthenticated_sender_login_mismatch, reject_unknown_sender_domain。

在smtpd_recipient_restrictions = 中加上:reject_sender_login_mismatch,reject_authenticated_sender_login_mismatch。

将邮箱地址不匹配的踢回去,防止冒充同一域中其他信箱发信。

2.编辑mysql_sender_login_maps.cf文件,内容如下:

user = mysql_dbuser
password = mysql_dbpassword
dbname = mail
hosts = 127.0.0.1
query = select email from users where email= '%s'


4.重启Postfix之后,测试了一下,已经生效

如果登录,验证身份通过之后,想冒用其他信箱发信,会提示:550.5.1.0  Sender address rejected: User unknown in virtual mailbox table。实现对<From:>的验证。

分享到