- 论坛徽章:
- 0
|
强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]
如何通过我的smtp服务器、使用我自己的account 对本地域名 mydomain.com 用户发送邮件时 也需要 smtp认证.
我无法想象你为何一定要这个BT做法,这是违规的,当然也许你有自己特殊的原因而且不便说出来;
好,让万能的postfix来满足你的要求吧:
- smtpd_recipient_restrictions =
- permit_mynetworks,
- permit_sasl_authenticated,
- check_recipient_access hash:/etc/postfix/my_recipient_access_list,
- check_policy_service inet:51k.org:10030,
- reject_non_fqdn_hostname,
- reject_invalid_hostname,
- reject_non_fqdn_sender,
- reject_non_fqdn_recipient,
- reject_unknown_sender_domain,
- reject_unknown_recipient_domain,
- reject_unauth_destination,
- reject_unauth_pipelining,
- permit_auth_destination,
- reject
- #
- #
复制代码
首先,你要能看懂这个postfix main.cf里的配置;
其次,需要一点变态的设置来实现你的要求;
在check_policy_service inet:51k.org:10030,这个策略服务器里,设置如果mail from:你是的account,就拒绝,并返回要求验证的信息,当然你要有一个自己能设置的策略服务器;因为在smtpd_recipient_restrictions中permit_sasl_authenticated,比策略服务器优先,所以验证过的用户是可以发信的,外网来的投递,因为mail from不是你的account,所以不会被策略服务器拒绝;
第三,别人可以简单的伪造mail from就可以避开你的这个限制;
第四,你不能针对rcpt to你的◎mydomain.com 设置策略拒绝,因为这样公网的MTA就无法给你的MTA发送邮件了。
BTW: 这个要求够变态,而且还跟别的问题混在一起,算是有点启发思维的意义吧。 |
|