分类
取证

UNIX&Linux网络日志分析与流量监控[持续更新]

 Centos 7.x版本
rsyslog的服务管理系统日志;Linux系统内核和许多程序会产生各种错误信息、告警信息和其他提示信息,这些各种信息都应该记录到日志文件中,完成这个过程的程序就是rsyslog,rsyslog可以根据日志的类别和优先级将日志保存到不同的文件中。
/etc/rsyslog.conf和/etc/rsyslog.d是主配置文件。
一下日志文件都是由syslog日志服务驱动的:
/var/log/boot.log:记录系统在引导过程中发生的事件,就是linux系统开机自检过程显示的信息。
/var/log/lastlog:记录最后一次用户成功登陆的时间、登陆IP等信息。
/var/log/messages:记录linux操作系统常见的系统和服务错误信息。(目录下:system log\Dns\Sendmail.postmail\Samba\FTP\HDHCP\NFS\IPtables)
/var/log/secure:linux系统安全日志,记录用户和工作组变化情况、用户登陆认证情况。(如果文件很大,很有可能有人在暴力破解密码)
/var/log/btmp:记录linux登陆失败的用户、时间以及远程ip地址。
/var/log/wtmp:该日志永久记录每个用户登陆、注销以及系统的启动、停机的事件,使用last命令查看。
/var/run/utmp:该日志文件记录有关当前登陆的每个用户的信息。如who、w、users、finger等就需要访问该文件。(不是100%信赖)
第一篇 日志分析基础
第一章 网络日志获取与分析
1.1 网络环境日志分类:操作系统日志、网络设备日志、应用系统日志
1.1.1 UNIX/Linux系统日志:登陆时间日志子系统(/var/log/wtmp和/var/run/utmp)、进程统计日志子系统、错误日志子系统
1.1.2 Windows日志(系统日志、安全日志、应用程序日志)
1.1.3 Windows系统日志 常见的位置system32下。
1.2 Web日志分析(以Apache服务器为例)
1.2.3 访问日志的位置 在Apache配置文件/etc/apache2/apache2.conf中定义访问日志位置为:CustomLog /var/log/apache2/access_log combined;可以看出访问日志位于/var/log/apache2/access_log文件中;如果是FreeBSD平台,Apache日志位于/usr/local/apache/logs 或者 /usr/local/apache2/logs目录下。
1.2.4 访问日志格式分析:远程主机IP地址 请求时间 时区 方法 资源URL 协议 返回状态 发送字节
1.2.5 HTTP返回状态代码 
2XX成功(200:确定,202:已接受,204:无内容);
3xx重定向(302:对象移动,207:临时重定向);
4xx客户端错误(400:错误请求,401拒绝访问,403:访问禁止,404未找到);
5xx服务器错误(500:内部服务器错误,503服务不可用,504网关超时)
1.2.6 记录Apache虚拟机日志 在Apache配置文件中CustomLog和ErrorLog位置加入虚拟机对应容器)
1.2.7 Web日志统计举例
(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
(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  >显示>行1 #9999 192.168.150.179 行2#11 192.168.150.1 #第三行#iptables -I INPUT -s 192.168.150.179 -j DROP #第四行#iptables -I INPUT -s 192.168.0150.0/24 -j DROP
将上面的shell做以下变形就可以得出访问量TOP10:#cat access_log |awk '{print $1}' | sort |uniq -c|sort -nr|head 10
(8)找出Apache日志中,下载最多的几个exe文件(下载类网站常用,这里以.exe扩展名为例)#cat access_log | awk'($7 ~/.exe/){print $10""$1“”$4""$7}`|sort -n|uniq -c|sort -nr|head -10
#cat access_log |awk '($10>10000000&&$7 ~/.exe/){print $7}' | sort -n|uniq -c|sort -nr|head -10;该命令增加>10000000的条件判断就可以显示出大于10MB的exe文件,并统计对应文件发生次数。
(9)简单统计流量#cat access.log | awk'{sun+=$10}'
(10)统计401访问拒绝的数量,便于找出可疑IP #cat access_log | awk '(/401/)'|wc -1 ;#cat access_log |awk '{print $9}'|sort|uniq -c|sort -rn 该命令可疑统计所有状态信息。
(11)查看某一时间内的IP连接情况 #grep "2012:05"access_log | awk '{print $4}'|sort|uniq -c|sort -nr
Apache 错误日志文件 /var/log/apache2/error_log
1.2.10 清空日志的技巧
#cat /dev/null >access_log \\重定向到NULL 或者使用 #echo "" > access_log
1.2.11 linux平台apache日志位置




1.2.12 Nginx日志 Nginx的日志文件分为访问日志和错误日志,一般情况下存在/usr/local/nginx/logs目录,access.log代表访问日志,error.log代表错误日志,Nginx.conf为配置文件。
1.2.13 Tomcat日志配置文件 /etc/tomcat7/server.xml
1.2.14 常用Apache日志分析工具
1. 命令行工具分析 #tail -f access_log | grep "关键字" 过滤出包含特定关键字的日志
2. #tail -f access_log | grep “关键字” | grep -v "MSIE" 这条指令会显示包含关键字且不含”MSIE"的行;如果后面再加上wc指令则可以统计行数。
1.3 在Redhat linux系统下Vsftp的配置文件在/etc/vsftpd/vsftpd.conf;默认情况下,Vsftp不单独记录日志,统一存放到/var/log/messages文件中。
6.7 #find / -mtime l -ls //查找一天内更动过的文件;#find / -amin -10 //查找在系统中最近10分钟访问的文件;#find -atime -2 //查找在系统中最近48小时访问的文件。

 

shuoed

山东鄄城人士,大学本科读了计算机科学与技术专业,研究生期间读了诉讼法学专业。
计算机领域,算法方面是算是ACM省银水平;编程方面在高校取得过项目比赛的奖励;网络方面考过了计算机等级四级网络工程师;安全方面考过了软考信息安全工程师;学术方面发表了一篇关于密码设置的论文,毕业论文写了X86架构下微内核的设计与实现。
法律领域,学术方面发表了三篇分别关于身份同一认定、不损坏原件原则、跨境取证的论文,写了一篇关于DDoS黑产的硕士论文(投稿中);取证方面参见了三类电子取证比赛,虎鲸杯、中科实数杯、美亚杯等共6次比赛,5次获奖。
目前就职于国内某知名电子取证公司做培训讲师。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注