免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: jackieyuan
打印 上一主题 下一主题

[Mail] 强制本地用户给本地用户发信时使用smtp认证问题[问题已解决] [复制链接]

论坛徽章:
0
1 [报告]
发表于 2004-06-06 11:24 |显示全部楼层

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

楼主有钻研精神,但是,对于问题的描述不够明确;
>; set type=mx
>; sina.com.
Server:  mail.sns.net.cn
Address:  61.145.117.164

Non-authoritative answer:
sina.com        MX preference = 20, mail exchanger = sinamx.sina.com.cn

sina.com        nameserver = tomahawk.sina.com
sina.com        nameserver = authns1.mpls.qwest.net
sina.com        nameserver = resolver.sina.com
authns1.mpls.qwest.net  internet address = 63.231.205.1
>;

telnet sinamx.sina.com.cn 25

220 sina.com ESMTP
helo mygod
250 sina.com
mail from:rhinofly@sina.com
250 ok
rcpt to:rhinofly@sina.com
250 ok
data
354 请继续 - go ahead
Hmm,fake mail sended.
.
553 Spam Mail http://mail.sina.com.cn/FAQ.html

失去了跟主机的连接。

看,给sina.com发信并不需要smtp auth(当然,它判定我的信是spam,这是另一回事);楼主对邮件投递体系的认知有误,请好好学习理论知识;

论坛徽章:
0
2 [报告]
发表于 2004-06-06 16:15 |显示全部楼层

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

老大啊,你看清楚,我贴nslookup的输出来干什么的?

别人的MTA给sina发信时只会去连接sina.com的MX主机,就是sinamx.sina.com.cn,不会去连接smtp.sina.com.cn的,

smtp.sina.com.cn是给新浪的用户发信用的,自己的用户发信(用自己的MTA作中转),和接收来自别的MTA的信是不同的事情;

sina是把接收本域信件和为本域用户提供relay(俗称"发信"服务这两件事分开用不同的服务器来作,对于一个邮件服务提供商来说是很有必要的;而我们平常配置的MTA也许规模没那么大,也就把这两件事情用同一个MTA服务器实现了;这里面有一点不寻常,不过,如果你对MTA的运作有理解,理解这个做法就是自然而然的了;


如果你说你没注意看smtp.sina.com.cn和sinamx.sina.com.cn是不同的主机,我只能晕倒,不,在晕倒之前要求你向各位关注过你的帖子的兄弟们道歉。

任何不细心的人都会在unix(like)下碰的头破血流甚至倾家荡产;

如果说你想知道怎么实现sina这样的多个MTA协同运作.........好像不难吧?如果你熟悉某种MTA系统。

论坛徽章:
0
3 [报告]
发表于 2004-06-06 20:25 |显示全部楼层

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

请问如何设置:
1. 如何通过我的account 对本地域名 mydomain.com 用户发送也需要 smtp认证.
2. 如何设置mail server的正确DNS和MX记录使得类似于sina.com的服务器可以顺利通过我的 DNS auth.


对于要求1,如果你的用户都在内网(如果有的话),你可以permit_sasl_authenticated,然后deny 内网网段,如果你的用户也在不确定的公网连接(如同众多的MX server一样),那么,我认为你的要求违反了smtp协议本身;

对于2,偶没听说dns auth这样一个东西,偶知道的是bind可以配置acl控制对bind 服务的访问,但是没有对外提供的身份验证服务;能提供的是,你可以要求前来连接你的MTA的主机必须是它所声称的那个域的MX server(你的MTA可以通过dns查询去验证这一点);据知目前hzqbbc的策略服务器能提供这个检查。

你家的邮箱总要有一道缝,这是楼上某位兄弟说的,我想这个缝你是没法堵上的了,除非你的MTA不是公网MTA(不接收来自公网的邮件)。

论坛徽章:
0
4 [报告]
发表于 2004-06-07 15:31 |显示全部楼层

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

  如何通过我的smtp服务器、使用我自己的account 对本地域名 mydomain.com 用户发送邮件时 也需要 smtp认证.


我无法想象你为何一定要这个BT做法,这是违规的,当然也许你有自己特殊的原因而且不便说出来;

好,让万能的postfix来满足你的要求吧:

  1. smtpd_recipient_restrictions =
  2.             permit_mynetworks,
  3.             permit_sasl_authenticated,
  4.         check_recipient_access hash:/etc/postfix/my_recipient_access_list,
  5.         check_policy_service inet:51k.org:10030,
  6.         reject_non_fqdn_hostname,
  7.             reject_invalid_hostname,
  8.             reject_non_fqdn_sender,
  9.             reject_non_fqdn_recipient,                                 
  10.             reject_unknown_sender_domain,                                 
  11.             reject_unknown_recipient_domain,                              
  12.             reject_unauth_destination,
  13.             reject_unauth_pipelining,
  14.         permit_auth_destination,
  15.         reject
  16.             #
  17.         #
复制代码


首先,你要能看懂这个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: 这个要求够变态,而且还跟别的问题混在一起,算是有点启发思维的意义吧。

论坛徽章:
0
5 [报告]
发表于 2004-06-07 18:26 |显示全部楼层

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

BT是某种赞赏,有时,看你怎么理解了。

偶不认为你在用postfix,偶只是提出理论上的解决方法,至于你的qmail怎么实现postfix那样的功能,偶可没兴趣去研究。


另外,如果你认为是大家误解,看来你得举出更多的实例来说明你的想法;

论坛徽章:
0
6 [报告]
发表于 2004-06-07 18:38 |显示全部楼层

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

噢~~~

故意生硬的,偶以为那也可以说是一种幽默,嘿嘿

偶不是在打击用qmail的人,只是偶不知道qmail该怎么实现嘛。

论坛徽章:
0
7 [报告]
发表于 2004-06-07 19:01 |显示全部楼层

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

这个....不用试了吧?偶的是公网服务器,并且MX服务器和中转服务器是同一个啊,肯定是可以的。

这跟你用什么用户去发是没有关系的,只有rcpt to:是abcdefxxx@rhinofly.com,在通过各种反垃圾邮件检查(跟smtp auth无关的)后肯定是收下的。

看来不是我们理解错你的意思,而是你没有理解我们所说的MX服务器和smtp(中转)服务器的区别;

更进一步的说,即使你把MX服务器和中转服务器分开放在两台物理上不同的机器上,那么你可以配置smtp(中转)服务器发信,无论发到哪里都是需要验证的,同时,你依然还得配置MX服务器不需要auth就接收发给abcdefxxx@rhinofly.com的信;这是不言而喻的。

如果你的用户都不知道有MX服务器的存在,那么他们发信,即使是发给abcdefxxx@rhinofly.com的信,也只能通过smtp(中转)服务器,那么,他们的确是必须要auth才能发的。问题是:你的用户真的不知道么?


原帖由 "jackieyuan" 发表:

例子么。。。就这样试试吧
rhinofly你有你的服务器是吧? 你的邮件服务器应该装了qmail或者postfix的smtp auth把?
比如说是 www.rhinofly.com 吧,假设你的 smtp 服务器是 smtp.rhinofly.com, 你有一个账号叫 user@rhinofly.com 。
你在你的outlook express 里面设置 你的user1@rhinofly.com,smtp服务器填写smtp.rhinofly.com,在“我的服务器需要认证”不要打勾~。
然后你向 你的另外一个用户 user2@rhinofly.com 发邮件试试,把结果告诉我好吗? 成功否?失败否?

问题就这么简单嘛~~ 我的服务器如果这样设置是可以发的。
.........

论坛徽章:
0
8 [报告]
发表于 2004-06-07 19:12 |显示全部楼层

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

花大侠不要这样嘛,你想过qmail该如何实现我上面说的诸多反垃圾邮件检查么?我是没什么概念,qmail只会配最简单的那种。


[quote]原帖由 "xiaohua"]反正俺觉得这个问题,很BT :em06: 心情看下去 :em06:[/quote 发表:

论坛徽章:
0
9 [报告]
发表于 2004-06-07 23:27 |显示全部楼层

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

http://bbs.chinaunix.net/forum/14/20040607/342903.html

看这个,我要修正一下前面的说法,从server的角度来说,只要有策略服务器的支持,一台MTA也可以实现这个要求了。

论坛徽章:
0
10 [报告]
发表于 2004-06-12 02:15 |显示全部楼层

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

使用 postfix 2.1.1

假设 oss4e.net 是本地域;


  1. #
  2. # UCE RESTRICTIONS
  3. #
  4. smtpd_delay_reject=no
  5. #delay_reject 不能是yes;

  6. #append
  7. #smtpd_client_restrictions =
  8. #        check_client_access hash:/etc/postfix/my_client_access_list,           
  9. #        permit

  10. #对mail from的限制
  11. smtpd_sender_restrictions =
  12.             permit_mynetworks,
  13.             permit_sasl_authenticated,
  14.         check_sender_access hash:/etc/postfix/my_sender_access_list,           
  15.         permit

  16. smtpd_tls_auth_only = no

  17. broken_sasl_auth_clients = yes

  18. smtpd_sasl_auth_enable = yes
  19. smtpd_sasl_local_domain =
  20. smtpd_sasl_security_options = noanonymous
  21.        
  22. #
  23. smtpd_recipient_restrictions =
  24.             permit_mynetworks,
  25.             permit_sasl_authenticated,
  26.         check_recipient_access hash:/etc/postfix/my_recipient_access_list,           
  27.             reject_non_fqdn_hostname,
  28.             reject_invalid_hostname,
  29.             reject_unknown_hostname,
  30.             reject_non_fqdn_sender,                                    
  31.             reject_non_fqdn_recipient,                                 
  32.             reject_unknown_sender_domain,                                 
  33.             reject_unknown_recipient_domain,                              
  34.             reject_unauth_destination,
  35.             reject_unauth_pipelining,
  36.         permit_auth_destination
复制代码


  1. #参考: http://bbs.chinaunix.net/forum/viewtopic.php?p=2289911#2289911
  2. #参考: http://bbs.chinaunix.net/forum/14/20040607/342903.html

  3. #vi /etc/postfix/my_sender_access_list
  4. #当mail from是你的域时,要求验证;逻辑在于:自己不应该从remote给自己发信;
  5. 127.0                250        welcome from localhost.
  6. oss4e.net             550        AUTH first,view http://mail.oss4e.net/uce.html for help.
  7. #

  8. postmap /etc/postfix/my_sender_access_list
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP