免费注册 查看新帖 |

Chinaunix

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

[Mail] qmail 被人利用发邮件。。堵了队列 [复制链接]

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
21 [报告]
发表于 2009-10-20 16:20 |只看该作者
原帖由 半边糖果 于 2009-10-20 13:07 发表
你可以按照刘五十三  说的方法用outlook express 试试。 如果不能发,就应该没这个漏洞吧。POSTFIX 好像没这个漏洞吧。不太清楚。你要自己试试才知道



还好,没有!

论坛徽章:
0
22 [报告]
发表于 2009-10-21 10:22 |只看该作者
其实检查mail from 和auth一致也不能完全解决,如果对方编程就用你的email地址做mail from邮件头,然后还是可以发垃圾邮件的,最彻底的办法是自己定期检查自己的服务器用户是否有弱密码,强制用户改密码。等于是定期扫描用户密码了。不过现在我见到的破解了用户密码的都是只用auth认证,from地址乱填的,将来就不一定了。

论坛徽章:
0
23 [报告]
发表于 2009-10-29 10:23 |只看该作者
原帖由 半边糖果 于 2009-10-20 12:16 发表
我翻了以前论坛的帖子。 按照以前网友的打的补丁, 修改了 netqmail 下面的qmail 的源代码,在qmail-smtp.c 加了两个地址的比较。从新编译qmail-smtp . 解决了

  
  if (relayclient)
  {
          if(case_diffs(authusername.s,mailfrom.s)) {
          out("username does't equal mailfrom\r\n");
                  err_noauth();
                  return;
                 }

   }


请教一下,这行代码应该加在qmail-smtp.c哪里?还需要做别的设置吗?

论坛徽章:
0
24 [报告]
发表于 2009-10-30 14:47 |只看该作者

回复 #23 中年改行 的帖子

本帖最后由 半边糖果 于 2011-01-23 15:06 编辑

在qmail-smtp.c 中
增加

stralloc authusername={0};   //全局变量用于记录认证的email地址

在认证成功后将mailfrom存入上面的authusername中,也就是在函数
int authenticate(void)最后return 0;语句前插入下面的语句
         /*将用户名存入全局变量 authusername*/
         if(!stralloc_copy(&authusername,&user)) return 1;

在void smtp_rcpt(arg)函数里面 大约599行下面 增加一个判断
If (relayclient) {
             if(case_diffs(authusername.s,mailfrom.s)) {
                    err_noauth(); //认证用户名与mailfrom中的地址不符
                    /*在这儿加入log代码*/
                    return; //出错返回
             }

我的是这样写的:
  if (relayclient)
  {
          if(case_diffs(authusername.s,mailfrom.s)) {
          out("username does't equal mailfrom\r\n");
                  err_noauth();
                  return;
                 }

   }

这是 夜未眠   以前提出的修改方法。注意你的netqmail 的版本号。

从新编译下 qmail-smtpd   然后覆盖之前的可以了。

[ 本帖最后由 半边糖果 于 2009-10-30 14:55 编辑 ]

论坛徽章:
0
25 [报告]
发表于 2009-10-30 14:50 |只看该作者
原帖由 刘五十三 于 2009-10-21 10:22 发表
其实检查mail from 和auth一致也不能完全解决,如果对方编程就用你的email地址做mail from邮件头,然后还是可以发垃圾邮件的,最彻底的办法是自己定期检查自己的服务器用户是否有弱密码,强制用户改密码。等于是 ...


确实是这样。

论坛徽章:
0
26 [报告]
发表于 2009-11-02 12:23 |只看该作者
原帖由 半边糖果 于 2009-10-30 14:47 发表
在qmail-smtp.c 中
增加

stralloc authusername={0};   //全局变量用于记录认证的email地址

在认证成功后将mailfrom存入上面的authusername中,也就是在函数
int authenticate(void)最后return 0;语句前 ...

多谢指点!!

我用的是netqmail1.05,好像没有安验证补丁,或者是1.05是否解决了这个问题呢?这样修改代码是不是有效?

论坛徽章:
0
27 [报告]
发表于 2009-11-04 10:53 |只看该作者

回复 #26 中年改行 的帖子

smtp 的验证补丁应该有吧。 我是netqmail1.05  用这个是可以的。

论坛徽章:
0
28 [报告]
发表于 2009-11-24 10:47 |只看该作者
请教一下,我现在也发现了这个问题,我用的是netqmail1.05

安装文件没有找到qmail-smtp.c,只有qmail-smtpd.c,文件中也没有您说的代码,不知道这个该怎么办呢?

论坛徽章:
0
29 [报告]
发表于 2009-11-25 11:34 |只看该作者

回复 #28 bqsc 的帖子

是的。。。汗、、我写掉了一个字母错了。。 是改qmail-smtpd.c 这个文件。

论坛徽章:
0
30 [报告]
发表于 2009-11-25 16:53 |只看该作者
不允许域外中转
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP