我的这次Qmail被黑经历

发表于:2007-06-08来源:作者:点击数: 标签:
前两天Exchang 服务器 被黑了一次,这两天Qmail又被黑了 真是奇怪,知道我水平不行,故意黑我,不过终于还是让我搞定了 非常感谢gadfly和各位兄弟的帮助,kiss~kiss~kiss~kiss~kiss~kiss~ 我说说被黑的经过,如果哪位兄弟不小心也被黑了,希望有点帮助 #----

前两天Exchang服务器被黑了一次,这两天Qmail又被黑了

真是奇怪,知道我水平不行,故意黑我,不过终于还是让我搞定了

非常感谢gadfly和各位兄弟的帮助,kiss~kiss~kiss~kiss~kiss~kiss~

我说说被黑的经过,如果哪位兄弟不小心也被黑了,希望有点帮助

#-----------------------------------------------------------------
这次是被人偷了一个email账号,利用这个帐号乱发垃圾邮件,导致queue很快被塞满

一.现象:
  信件发送后,要等一天才能收到,或者根本收不到
  后来发现qmail的queue邮件队列巨长,主要是mess,info,remote三个目录
  # du -d1 /usr/local/qmail/queue/
    2       /usr/local/qmail/queue/pid
    2       /usr/local/qmail/queue/intd
    2       /usr/local/qmail/queue/todo
    2       /usr/local/qmail/queue/bounce
    219660   /usr/local/qmail/queue/mess
    217660   /usr/local/qmail/queue/info
    64      /usr/local/qmail/queue/local
    217500   /usr/local/qmail/queue/remote
    4       /usr/local/qmail/queue/lock
    65560   /usr/local/qmail/queue/

二.找出入侵者:
  因为正常情况下,不会有那么多信的,有人不停的乱发信,随便找几个队列瞧瞧就知道是谁发的了

  1.先看日志,注意带有"new msg","info msg"的信息行:
    #more /var/log/maillog
      ...
      Apr  3 11:49:03 www qmail: 1049341743.532642 new msg 297872------记住这个队列号,查找这个队列号的邮件
      Apr  3 11:49:03 www qmail: 1049341743.533064 info msg 297872: bytes 893 from <[email protected]> qp 16985 uid 1038
      Apr  3 11:49:03 www qmail: 1049341743.706272 new msg 298223
      Apr  3 11:49:03 www qmail: 1049341743.706691 info msg 298223: bytes 881 from <[email protected]> qp 16986 uid 1038
      ...
  2.然后看看那家伙是从哪里登录的:
    #find /usr/local/qmail/queue/ -name 297872
      /usr/local/qmail/queue/mess/22/297872
      /usr/local/qmail/queue/info/22/297872
      /usr/local/qmail/queue/remote/22/297872
    #more /usr/local/qmail/queue/mess/22/297872
      Received: from unknown (HELO smtp0251.mail.yahoo.com) (210.21.6.44)------这就是入侵者的ip地址
      From: "jenypher  "<[email protected]>
      X-Priority: 3
      To: [email protected]
      Subject: Enlarge your PENIS and improve your SEX Life!
      Mime-Version: 1.0
      Content-Type: text/html; charset=us-ascii
      Content-Transfer-Encoding: base64

三.找出被入侵的账号:
   通过lastauth文件,查找在210.21.6.44上登录的用户
   因为有很多用户,所以我写了个脚本来找被黑的用户
     #!/bin/sh
     #set -x

     echo "" > maillastauth.txt
     ls -d1 /home/vpopmail/domains/bsd.com/*/ > mailusers.txt-----------输出所有用户的email路径

     for MAILUSERS in `cat mailusers.txt`
     do
       more ${MAILUSERS}lastauth >> maillastauth.txt--------------------输出所有用户的lastauth文件
       echo $MAILUSERS >> maillastauth.txt------------------------------以及对应的用户
     done
  
     more maillastauth.txt | grep 210.21.6.44----------------------------输出在210.21.6.44上登录的用户

四.找到那个被黑的账号了,赶快修改密码,重新启动服务器(多此一举,呵呵~,只是自己感觉心里踏实一点)
   因为那家伙乱发邮件,所以postmaster收到很多[email protected]的文件,删除这些垃圾
    /home/vpopmail/domains/bsd.com/postmaster/Maildir/cur/*
    /home/vpopmail/domains/bsd.com/postmaster/Maildir/new/*
   如果你的postmaster用户有其他的重要文件,可不要这么做
  还要看看你的queue邮件队列是不是在减少,如果还在继续增加,那完蛋了,估计系统账号都被黑了

五.昨天还干了点愚蠢的事情,因为看到queue里的文件很多,所以直接删除了queue队列里的文件,事实上这些文件是不能删除的
   否则就会出现类似"unable to stat mess/22/176892"这样的错误
   #more /var/log/maillog
     ...
     Apr 1 18:07:41 www qmail: 1049191661.303612 warning: unable to stat mess/22/176892 
     Apr 1 18:07:41 www qmail: 1049191661.303972 warning: unable to stat mess/16/346258 
     Apr 1 18:07:41 www qmail: 1049191661.304059 warning: unable to stat mess/9/33773 
     Apr 1 18:07:41 www qmail: 1049191661.304139 warning: unable to stat mess/2/190258
     ...
   如果不小心,删除了queue队列里的文件,可以从qmail.org上下载qmail-fix来修复这个错误

 gadfly 回复于:2003-04-03 15:56:45
如果用mysql的话,数据库里面有个lastauth的表.

不知道记不纪录smtp的auth

 leaper 回复于:2003-04-03 16:12:45
我不同意楼主的看法。。。

1、你这个不是入侵,只是有人借用你的帐号在向外发邮件罢了;

2、你的哪些所谓的入侵地址是假的,不是真实的,要是你对邮件系统有所了解,哪个地址是可以伪造的。你这次的还好,可能IP地址有相对固定性,我上次统计过,几乎过一会就变一下IP,要是你细心查,很多IP与地址都是不对的。。。

3、至于解决方法上次说过了,就是把数据导出来,变成没用户的帐号系统,就能找到答案了。

4、最后出错信息只是在队列中没有删除相关的信息,当你重启后,MTA又向外发邮件,可是一大部门信息让你删除了,当然出错了,要是你删除队列中的信息,就不会有出错了。

  总之,你的系统不是让人入侵了,只是有人破解你的某个邮箱的密码,再用一个高明的工具在向外不信发信罢了。

  以上个人观点。请观摩!!!

 gadfly 回复于:2003-04-03 16:46:06
同意楼主的说法。

很简单,如果你知道别人的用户名和密码,利用这个去干坏事?还不叫黑。

他的这种情况和你说的不一样。auth smtp方式,除了本系统用户,是没办法relay垃圾邮件的。即使被黑,也是通过本系统用户干的事,从管理上很容易杜绝。

总之smtp auth后,能杜绝绝大部分的垃圾邮件情况。

 Fun-FreeBSD 回复于:2003-04-03 16:48:11
前2个,我同意,确实只是被人利用了一下email账号,我算比较幸运的

第3个,我不知道怎么用,呵呵,我再仔细看看

第4个嘛,我还专门为这个做了个删除的脚本,删除queue及子目录里所有的文件,好像还是不管用,也许是我看错了

我对邮件系统确实不了解 ops:  ops:  ops:

 gadfly 回复于:2003-04-03 16:52:58
1.你就用我说的那种查找信件的方式,将几个文件同时删除就可以了.

2.或者删除其中一个,用queue-fix删除其它的

 Fun-FreeBSD 回复于:2003-04-03 16:57:10
[quote:06aff936ec="gadfly"]1.你就用我说的那种查找信件的方式,将几个文件同时删除就可以了.

2.或者删除其中一个,用queue-fix删除其它的[/quote:06aff936ec]


i see,i see

good idea啊~

 leaper 回复于:2003-04-03 17:16:00
1、看队列中的邮件可以用
  #mailq


2、如果你要删除队列中的邮件,你可以看下面的提示,由于我这里没有环境,没法帮你确认可行性???

处理队列中的邮件: 

A)如想在队列中的邮件马上传递,可以

          #kill –HUP qmail-send 


B)如果要删除队列中的邮件 

1) 停止QMAIL 
2) find /var/qmail/queue/$i -type f -exec rm {} ; 
3) 重启QMAIL. 
队列中的邮件包含在以下目录中 /var/qmail/queue/{info,mess,remote,local}/hash/#number 



------------------------------------------------
要是能行,回个帖子!!!多交流!!相信大众的力量是能解决问题的!!!!

 Fun-FreeBSD 回复于:2003-04-03 17:21:30
我把queue及其子目录里的文件全删除了,这样可以吗?

 gadfly 回复于:2003-04-03 17:31:18
晕,兄弟,不要误导别人,

1.mailq是系统自带的,与sendmail搭配用的,如果sendmail没有被替换成qmail对应的,是不起作用的.qmail-qread可以做这种事情

2.你那样删除会有问题,lock目录中有普通文件,是不能随便删除的,
而且,如果有用的信件在目录中,也会被删除掉。做好的办法还是根据一些
特征判断这封信件是否是垃圾,然后再删除。特征很多,例如:垃圾的from或者
to还是有固定串的。或者ip

3.你说的看日志的方式并不能看出用哪个用户发的,因为auth的用户并不纪录在日志中。比较之下,FUN-FreeBSD的看lastlog的方法是很有效的。

 cooldown 回复于:2003-04-03 19:58:42
[quote:48a3f43525="Fun-FreeBSD"]前两天Exchang服务器被黑了一次,这两天Qmail又被黑了

真是奇怪,知道我水平不行,故意黑我,不过终于还是让我搞定了

非常感谢gadfly和各位兄弟的帮助,kiss~kiss~kiss~kiss~kiss~kiss~

我说说被黑的经过,..........[/quote:48a3f43525]


兄弟,我也碰到类似的问题了,不过我没你那么幸运阿!
我的qmail是被程序员改过的,所以有些不同,你说的那个lastauth文件
我根本找不到,根据那个邮件头信息我怎么去找哪个帐号被黑了阿??帮帮我!

 cooldown 回复于:2003-04-03 19:59:11
[quote:04b47995b0="Fun-FreeBSD"]前两天Exchang服务器被黑了一次,这两天Qmail又被黑了

真是奇怪,知道我水平不行,故意黑我,不过终于还是让我搞定了

非常感谢gadfly和各位兄弟的帮助,kiss~kiss~kiss~kiss~kiss~kiss~

我说说被黑的经过,..........[/quote:04b47995b0]


兄弟,我也碰到类似的问题了,不过我没你那么幸运阿!
我的qmail是被程序员改过的,所以有些不同,你说的那个lastauth文件
我根本找不到,根据那个邮件头信息我怎么去找哪个帐号被黑了阿??帮帮我!

 Fun-FreeBSD 回复于:2003-04-04 09:20:17
找不到lastauth,那估计你用的是数据库,那就更好找了

 kinux 回复于:2003-04-04 22:36:56
qmail是这么容易被黑的吗??

那postfix 呢??

 cooldown 回复于:2003-04-05 00:11:52
[quote:6f132a85a6="Fun-FreeBSD"]找不到lastauth,那估计你用的是数据库,那就更好找了[/quote:6f132a85a6]

那一般是在哪个表里面??

 Fun-FreeBSD 回复于:2003-04-05 16:25:18
数据库vpopmail的lastauth表

 dhtxgfnh2003 回复于:2003-04-07 15:39:55
班主:
   你们好,你们所说的latauth 是一个文件吗?是电脑自代的吗?还是要到哪里去找,你们可以把步骤写清楚点,麻烦了,谢谢

 kentchoi 回复于:2003-04-07 10:19:55
我的qmail+vpopmail+mysql

并没有在vpopmail数据库底下发现

lastauth表,我是以 --enable-large-domain

编译的,每个域一个数据库。

 Fun-FreeBSD 回复于:2003-04-07 13:28:01
那就在相应域的数据库里找

 冷风 回复于:2003-04-07 14:11:08
我绝得对于qmail还是做smtp after pop来实现smtp relay比较好,qmail得smtp-auth实在是.....

 vipvip 回复于:2003-04-08 03:36:38
qmail有自带参数,可以定期删除queue中队列,不知道你设了没有。具体是什么我忘了,看看life with qmail吧,里面有的。
还有,你凭什么确定是297872呢,为什么不是298223或是其他的编号呢?

 红袖添香 回复于:2003-04-08 07:25:22
...

椰子真不错。。。 

 Fun-FreeBSD 回复于:2003-04-08 08:54:33
[quote:89286e8bclearcase/" target="_blank" >cc="vipvip"]qmail有自带参数,可以定期删除queue中队列,不知道你设了没有。具体是什么我忘了,看看life with qmail吧,里面有的。
还有,你凭什么确定是297872呢,为什么不是298223或是其他的编号呢?[/quote:89286e8bcc]

我ft~,这是从maillog里随便找的一个队列,拿来作说明的

因为正常情况下,不会有那么多信的,有人不停的乱发信,随便找几个队列瞧瞧就知道是谁发的了

 wuliao 回复于:2003-04-08 15:40:27
那你得写清楚,不就几个字吗,误导啊.

 wuliao 回复于:2003-04-08 15:41:21
那你得写清楚,不就几个字吗,误导啊.我也纳闷你怎么就这么准呢.一下就找到了.

 kelei 回复于:2003-04-20 09:52:10
ok,bucuo

 tomorrowmine 回复于:2003-06-06 09:24:31
不晓得大家有没有人用Webmin的,里面的qmail的管理模块还可以,另外也可以直接使用msql的管理模块检查数据库的信息,比手工的管理方便很多

 yayong 回复于:2003-06-09 13:42:14
我 qmail很少用
sendmail和postfix的smtp认证都会有记录,查哪个帐户通过认证发信简直就是
几秒钟搞定的事情

原文转自:http://www.ltesting.net