网络安全--利用awk分析Apache日志

一、溯源

你会溯源吗?怎么溯

拿到日志(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

你可能感兴趣的:(web安全,安全)