免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
41 [报告]
发表于 2004-06-08 21:56 |只看该作者

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

本域发往外域:
220 js.cn SMTP Server of AIMC 2.9.5.2; Tue, 08 Jun 2004 21:48:10 +0800
helo nt
250 js.cn, nt<218.91.168.246>; okay.
mail fromxx1@pub.nt.jsinfo.net
250 <xxx1@pub.nt.jsinfo.net>;, sender ok.
rcpt to:test@cn99.com
553 Relay restriction.

我想它的逻辑大概是如此:
本域-->;本域:if 通过认证 then ok (relay) else block;
本域-->;外域:if 通过认证 then ok (relay) else Relay restriction;
外域-->;本域,无需认证: ok

请大家指正!

论坛徽章:
0
42 [报告]
发表于 2004-06-11 22:37 |只看该作者

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

[quote]原帖由 "jackieyuan"][/quote 发表:


大概看了一下关于这个问题大家的讨论,我觉得是不是大家想问题想得太复杂了?:)

我明白jackieyuan的意思,他无非是要禁止伪造本地account给本地其他用户(包括自己)发邮件而已。

这个实现方法不难:
1.qmail
在rcpt to 阶段,检查mail from的地址域名部分:domain.tld,如果该域名是本地的(也就是说在locals里),那么再看rcpt to的地址域名部分,如果也在locals里,并且2者相同,就发出5XX please SMTP AUTH first,也就是:

假设本地域名是mydomain.tld,则smtp会话:
mail from:<bbc@mydomain.tld>;
rcpt to:<cbb@mydomain.tld>;
5XX please SMTP AUTH first <--------- 这里mta就不允许了。

这样可以防止假冒本地地址给本地用户发邮件了。至于代码,直接在qmai里改,老外应该也有写类似的补丁

2.postfix
这个功能实现很简单:
设置好smtpd_sender_login_maps = hash:/path/to/maps/file
再在smtpd_sender_restrictions 里加reject_sender_login_mismatch即可。

这样,凡是在file里列出的地址,都不允许在没smtp auth前mail from:<xxx>; rcpt to:<xxx>;,其中xxx是username@localdomain.tld 的形式.

这样应该明白吧?真没想到这个问题会讨论如此热烈啊

论坛徽章:
0
43 [报告]
发表于 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
复制代码

论坛徽章:
0
44 [报告]
发表于 2004-06-12 20:21 |只看该作者

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

原帖由 "hzqbbc" 发表:


大概看了一下关于这个问题大家的讨论,我觉得是不是大家想问题想得太复杂了?:)

我明白jackieyuan的意思,他无非是要禁止伪造本地account给本地其他用户(包括自己)发邮件而已。

这个实现方法不难:
1...........

呵呵~ 我就是这个意思~~ 呵呵,终于用恰当的说法说出来了~~ 嘿嘿~谢谢!!
解决方法该不会是在 badmailfrom 里面验证吧? (楼上的已经给出了postfix的方法)
最近装了 spamcontrol ,里面只有对locals的域进行 mailbox存在与否的检验~(很实用噢~)。  

这里放一个与relay test相关的资料吧

qmail.faqts
http://www.faqts.com/knowledge_base/view.phtml/aid/1198/fid/206/lang/en

Chris Hardie's qmail Anti-Spam HOWTO
http://www.chrishardie.com/tech/qmail/qmail-antispam.html

论坛徽章:
0
45 [报告]
发表于 2004-06-12 22:54 |只看该作者

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

原帖由 "jackieyuan" 发表:

呵呵~ 我就是这个意思~~ 呵呵,终于用恰当的说法说出来了~~ 嘿嘿~谢谢!!
解决方法该不会是在 badmailfrom 里面验证吧? (楼上的已经给出了postfix的方法)
最近装了 spamcontrol ,里面只有对locals的域进..........


我不是已经描述了吗?这个可以修改一下qmail代码。。校验locals里的domain对应的account并不是解决方法。

论坛徽章:
0
46 [报告]
发表于 2004-06-12 23:35 |只看该作者

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

原帖由 "hzqbbc" 发表:


我不是已经描述了吗?这个可以修改一下qmail代码。。校验locals里的domain对应的account并不是解决方法。


Thanks!  

论坛徽章:
0
47 [报告]
发表于 2004-06-17 13:16 |只看该作者

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

原帖由 "hzqbbc" 发表:


大概看了一下关于这个问题大家的讨论,我觉得是不是大家想问题想得太复杂了?:)

我明白jackieyuan的意思,他无非是要禁止伪造本地account给本地其他用户(包括自己)发邮件而已。

这个实现方法不难:
1...........


今天把你的方法试用了一下~ 很好用,终于解决了~~ (主要是以前一直没有理解一些基本概念)谢谢你的指导!

修改文件: /var/qmail/control/badmailfrom
@mydomain1.com
@mydomain2.com


测试结果:
220 mydomain.com ESMTP
helo sina.com
250 mydomain.com
mail from: user1@mydomain.com
250 ok
rcpt to: user2@mydomain.com
553 sorry, your envelope sender is in my badmailfrom list (#5.7.1)
quit
221 mydomain.com

失去了跟主机的连接。


使用SMTP-AUTH发信仍然正常。

感谢:思一克、paulwang、rhinofly、dennis2、xiaohua、tonygong、hzqbbc 等的不吝指导!你们的耐心回贴解决了我很多问题,也教会了我很多¥#%%!!

论坛徽章:
0
48 [报告]
发表于 2004-06-18 16:54 |只看该作者

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

问题没说清楚啊,如何在qmail实现此功能?
我在我的badmailfrom中加入我的domain,结果无法发邮件了,我没有安装spam,是否与此有关?

论坛徽章:
0
49 [报告]
发表于 2004-06-18 17:10 |只看该作者

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

原帖由 "tomduanj" 发表:
问题没说清楚啊,如何在qmail实现此功能?
我在我的badmailfrom中加入我的domain,结果无法发邮件了,我没有安装spam,是否与此有关?

你是怎么配的?你怎么样发邮件发不来?本地?smtp?装了smtpauth没有?
......

你要说清楚阿~

论坛徽章:
0
50 [报告]
发表于 2004-06-23 11:50 |只看该作者

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

使用badmailfrom,而不修改qmail-smtpd.c的话,应该不可以实现楼主的要求吧。

我用 oe6和foxmail5都试过,出现
553 sorry, your envelope sender is in my badmailfrom list 后即断开。

即使选择了smtp认证,邮件客户端还是得用mail from:<>;开始吧。这是邮件的必需的要素呀
除非楼主的mail from改为一下第三方的东西吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP