|
楼主 |
发表于 2003-12-12 09:03:50
|
显示全部楼层
1->Dec 11 09:46:52 cvsserver xinetd[955]: START: cvspserver from=192.168.0.19
2->Dec 11 09:46:52 cvsserver cvs: password mismatch for linxd: $1$.r2M1V0o$EfTsFX09zb/xzYE6.lhG.1 vs. $1$.r2M1V0o$GxrQHPud3NHEGRUTguvmB0//每次mismatch行出现时,一般前一行都是认证出错时对应的ip.此次登录的ip是192.168.0.19
3->Dec 11 09:46:52 cvsserver xinetd[955]: START: cvspserver from=192.168.0.1
4->Dec 11 09:46:52 cvsserver cvs: password mismatch for root: $1$xLgEQP9D$7W5q3xl.jMkQM9OYWK6P.1 vs. $1$xLgEQP9D$j3YJn8Ess5ZPK6o2Ym.Tx0//这次登录失败对应的ip是192.168.0.1
另外一种情况是:
5->Dec 11 09:00:38 cvsserver xinetd[955]: START: cvspserver from=192.168.0.19//登录成功时log只有这一行.
6->Dec 11 09:01:01 cvsserver last message repeated 3 times//如果登录成功多次则日志会压缩显示,直到下一次登录失败时才显示这一行.所以这一行表示登录成功了3-1次,失败了1次.因为登录失败时要同时显示第5行和第7行,我的意思明白吗?
7->Dec 11 09:01:01 cvsserver cvs: password mismatch for linxd: $1$.r2M1V0o$g.367x3AwJ8Qo22wg80Ei1 vs. $1$.r2M1V0o$GxrQHPud3NHEGRUTguvmB0//如果这一行的上一行是cvsserver last message repeated 3 times,那么看它的上上一行,如果是cvsserver xinetd[955]: START: cvspserver from=192.168.0.19,那么这就是失败时对应的ip
所以:总的来说分三种情况:
1.登录成功1次,日志信息仅有一行:
Dec 11 11:05:25 cvsserver xinetd[955]: START: cvspserver from=192.168.0.19
2.登陆失败n(>=1)次,日志信息为:上面的1->,2->行
3.成功登录N-1次,失败登录一次,日志信息为5->,6->,7->行,6->行中显示repeated N times.
so,处理过程是这样的:
(1).过滤掉其他行,只留下上述的三种情况对应的行.
(2).如果是1->行单独出现,其后没有2->行或者6->行,则此一行为成功登录的消息,也要过滤掉.
(3).如果1->,2->成对出现,从1->中取出ip,2->中取出username
(4).如果1->,6->,7->同时出现,则从7->中取出username,并用6->中的时间替换1->中的时间,这样就简化成了过程(3)
我是这么想的,不知对不对,而且更关键问题是我不知该怎么实现!
请大家多多指教. |
|