中国网管论坛's Archiver

iamshiyu 发表于 2008-4-24 18:20

一起研究点算法问题如何?

比如security文件,能否一次遍历,就把所有的fail,error,invalid,等词语都抓下来,
然后把每条记录分别按对应的服务和IP予以记录?
如果一次做不到,几次能做到?欢迎踊跃发言。

iamshiyu 发表于 2008-4-24 18:27

我从前写过的一个
LOGFILE=/var/log/secure
LOGFILE2=/root/myprog/TMPsecure
ACTION=`env LC_TIME=en date +%e" "%H":"%M":" -d -1min`
word1="Failed password"
word2="Invalid user"
word3="authentication failure"
word4="START: pop3"
grep "$ACTION" $LOGFILE |grep -E "$word1|$word2|$word3|$word4" > $LOGFILE2
这样倒是能一次就把这些信息都抓到某个文件里,但是分门别类放置我就没想出来。

isbasic 发表于 2008-4-25 13:23

grep "$ACTION" $LOGFILE |grep -E "$word1|$word2|$word3|$word4" > $LOGFILE2

参数分别使用应该可以实现吧?

grep "$ACTION" $LOGFILE |grep -E "$word4" > $word4
grep "$ACTION" $LOGFILE |grep -E "$word3" > $word3
grep "$ACTION" $LOGFILE |grep -E "$word2" > $word2
grep "$ACTION" $LOGFILE |grep -E "$word1" > $word1

个人一点天真的想法没有实际操作过,毋怪

iamshiyu 发表于 2008-4-25 14:42

[quote]原帖由 [i]isbasic[/i] 于 2008-4-25 13:23 发表 [url=http://bbs.bitscn.com/redirect.php?goto=findpost&pid=1572815&ptid=167080][img]http://bbs.bitscn.com/images/common/back.gif[/img][/url]
grep "$ACTION" $LOGFILE |grep -E "$word1|$word2|$word3|$word4" > $LOGFILE2

参数分别使用应该可以实现吧?

grep "$ACTION" $LOGFILE |grep -E "$word4" > $word4
grep "$ACTION" $LOGFILE |grep -E "$wor ... [/quote]
分别使用没问题,但是这不是意味着要把文件遍历4次么,肯定消耗的资源多啊,我希望一次遍历就把所有的关键字行都挑出来,然后再对他们进行分别的分析。因为导致这些问题的可能是不同的服务,比如sshd,crond,ftp,smtp之类,很多都是意味着有人在攻击我们的系统。所以希望能够统计一下,通过ssh攻击的有多少,ftp的有多少,分别来自哪个IP,攻击频率如何等等。
我眼下没有比较经典的security文件了,包含很多类型错误的日志最好,你有没有?

isbasic 发表于 2008-4-29 14:54

这个似乎就不能用简单的文本来实现了吧?

毕竟充满字符的界面还是没有图形界面那么直观

虽然脚本接近万能了,但似乎这样并不是一个妥善的方案

iamshiyu 发表于 2008-4-29 15:39

[quote]原帖由 [i]isbasic[/i] 于 2008-4-29 14:54 发表 [url=http://bbs.bitscn.com/redirect.php?goto=findpost&pid=1583214&ptid=167080][img]http://bbs.bitscn.com/images/common/back.gif[/img][/url]
这个似乎就不能用简单的文本来实现了吧?

毕竟充满字符的界面还是没有图形界面那么直观

虽然脚本接近万能了,但似乎这样并不是一个妥善的方案 [/quote]
我觉得应该能,但一时还没有想出来,对于命令还不是很熟悉。

tanming 发表于 2008-4-29 15:44

两位老大好厉害呀   ,,,
我就是脚本不好呀,,还要多多请教你们

tanming 发表于 2008-4-29 15:46

我问下  你们那里的%是什么呢?代表着什么意思呢 。。 是不是linux里%只代表一个意思,或多个

iamshiyu 发表于 2008-4-29 15:53

[quote]原帖由 [i]tanming[/i] 于 2008-4-29 15:46 发表 [url=http://bbs.bitscn.com/redirect.php?goto=findpost&pid=1583521&ptid=167080][img]http://bbs.bitscn.com/images/common/back.gif[/img][/url]
我问下  你们那里的%是什么呢?代表着什么意思呢 。。 是不是linux里%只代表一个意思,或多个 [/quote]
不同的状态下%的意思当然不同。
date命令有内建的参数,%似乎是个前缀,不能单独拿出来说
必须参考命令自己的说明。

isbasic 发表于 2008-4-29 16:14

根据不同的环境,%代表不同的参数,当然如果有编程基础的,类似C语言一类的,可能就不会在拘泥于符号的问题了。他不过是一个标记。如果有机会,建议看看manpage,很多东西就会明白了

tanming 发表于 2008-4-29 16:42

我靠  太感谢了   牛人一个

isbasic你说的对  我就是没编程基础   我去看看manpage

页: [1]

Powered by Discuz! Archiver 6.1.0  © 1999-2008 bbs.bitsCN.com