一、溯源
你會溯源嗎?怎么溯
拿到日志(ssh登錄日志,Apache日志),通過日志溯到ip,對日志進行每天的拆分,第二通過awk日志分析工具對每天的日志進行拆分,分析某一個ip今天對我訪問多少次,訪問的地址是多少,訪問的地址是非惡意的還是不惡意的,即使溯源未成功,也可以將此ip封除
通過遺落工具
二、具體方法
(1)查看IP($1代表IP)
#cat access_log | awk '{print $1}'
(2)對IP排序
#cat access_log | awk '{print $1}'|sort
(3)打印每一重復行出現的次數,“uniq -c”表示標記出重復數量。
#cat access_log | awk '{print $1}'|sort|uniq -c
(4)排序并統計行數
#cat access_log | awk '{print $1}'|sort|uniq -c|sort -rn|wc -l
(5)顯示訪問前10位的IP地址,便于查找攻擊源
#cat access_log|awk '{print $1}'|sort|uniq-c|sort -nr|head -10
注意awk '{print$1',它表示取日志的第一段,如果換成別的日志,其IP地址在第3段那么就要改變相應數值。
(6)顯示指定時間以后的日志($4代表時間)
#cat access_log |awk'$4>="[23/Jul/2012:01:00:01"' access_log
推薦大家在排錯時,同時打開多個終端,比如在一個窗口中顯示錯誤日志,在另一個窗口中顯示訪問日志,這樣就能夠隨時獲知網站上發生的情況。
(7)找出訪問量最大的IP,并封掉(對排錯很有幫助)
#cat access_log |awk '{print $1}'|sort|uniq -c|sort -nr |more
9999192.168.150.179
11 192.168.150.1
#iptables -I INPUT -s 192.168.150.179 -j DROP
#iptables -I INPUT -s 192.168.150.0/24 -j DROP
如果將上面的Shell做以下變形就可以得出訪問量TOP 10
#cat access_log |awk '{print $1}'|sort|uniq -c|sort -nr |head -10
(8)找出Apache日志中,下載最多的幾個exe文件(下載類網站常用,這里以.exe擴展名舉例)
[root@localhost httpd]# cataccess_log |awk '($7 ~/.exe/){print $10 "" $1 ""$4""$7}' |sort -n |uniq -c |sort -nr |head -10
2 - 192.168.150.1[25/Jul/2012:05:46:05/test.exe
1 -192.168.150.152[25/Jul/2012:05:46:47/test.exe