iptables日志探秘
iptables日志探秘
防火墙的主要功能除了其本身能进行有效控制网络访问之外,还有一个很重要的功能就是能清晰地记录网络上的访问,并自动生成日志进行保存。虽然日志格式会因防火墙厂商的不同而形态各异,但被记录下的主要信息大体上却是一致的。无论是后面我们谈到的PIX、ASA或是CheckPoint放火墙其产生的日志内容均类似。这就表明,任何连接或者请求,例如TCP、UDP、ICMP连接记录、连接的流量信息、连接建立时间等,防火墙日志都会将其逐一体现。所以归纳起来,防火墙日志大致包含消息发送源IP地址、消息目的IP、消息流向、消息的内容,以及应用几方面。
防火墙每天要产生大量的日志文件,防火墙管理员针对这未经任何处理和分析的庞大的日志进行管理是很困难的。因此,日志的统计和分析现在已经成为防火墙功能中必不可少的一项,管理员不但可以按照不同的需求来查找日志、审计日志,还可以分析网络带宽的利用率、各种网络协议和端口的使用情况等。防火墙日志还会产生安全警告及一些对网络安全管理很有帮助的信息。这极大的方便了管理员对防火墙的安全管控。
本文以Linux下的iptables为例讲解防火墙日志,下面看一段iptables日志
Jun 19 17:20:04 webkernel: NEW DRAP IN=eth0 OUT=MAC=00:10:4b:cd:7b:b4:00:e0:le:b9:04:al:08:00SRC=192.168.150.1 DST=192.168.150.152 LEN=20 TOS=0X00 PREC=0x00 TTL=249ID=10492 DF PROTO=UDP SPT=53 DPT=32926 LEN=231
对于此日志解释见表1。
表1 iptablesLog字段解释
|
序号 |
字段名称 |
含义 |
|
1 |
Jun 19 17:20:24 |
日期时间,由syslog生成 |
|
2 |
Web |
主机名称 |
|
3 |
Kernel |
进程名由syslogd生成kernel为内核产生的日志说明netfilter在内核中运行 |
|
4 |
NEW_DRAP |
记录前缀,由用户指定—log-prefix”NEW_DRAP” |
|
5 |
IN=eth0 |
数据包进入的接口,若为空表示本机产生,接口还有eth0、br0等 |
|
6 |
OUT= |
数据包离开的接口,若为空表示本机接收 |
|
7 |
MAC=00:10:4b:cd:7b:b4:00:e0:le:b9:04:al |
00:10:4b:cd:7b:b4 为目标MAC地址 00:e0:le:b9:04:al 为源MAC地址 |
|
8 |
08:00 |
08:00 为上层协议代码,即表示IP协议 |
|
9 |
SRC=192.168.150.1 |
192.168.150.1为源IP地址 |
|
10 |
DST=192.168.150.152 |
192.168.150.152w为目标IP地址 |
|
11 |
LEN=20 |
IP封包+承载数据的总长度(MTU) |
|
12 |
TOS=0x00 |
IP包头内的服务类型字段,能反应服务质量包括延迟、可靠性和拥塞等 |
|
13 |
PREC=0x00 |
服务类型的优先级字段 |
|
14 |
TTL=249 |
IP数据包的生存时间 |
|
15 |
ID=10492 |
IP数据包标示 |
|
16 |
DF |
DF表示不分段,此字段还可能为MF/FRAG |
|
17 |
PROTO=UDP |
传输层协议类型,它代表上层协议是什么可分为TCP、UDP、ICMP等 |
|
18 |
SPT=53 |
表示源端口号 |
|
19 |
DPT=32926 |
表示目的端口号 |
|
20 |
LEN=231 |
传输层协议头长度 |
|
21 |
SEQ= 内容略 |
TCP序列号 |
|
22 |
ACK=内容略 |
TCP应答号 |
|
23 |
WINDOWS=内容略 |
IP包头内的窗口大小 |
|
24 |
RES |
TCP-Flags中ECN bits的值 |
|
25 |
CWR/ECE/URG/ACK/PSH/RST/SYN/FIN |
TCP标志位 |
|
26 |
URGP= |
紧急指针起点 |
|
27 |
OPT( 内容略 ) |
IP或TCP选项,括号内为十六进制 |
|
28 |
INCOMPLETE[65535 bytes] |
不完整的数据包 |
|
29 |
TYPE=CODE=ID=SEQ=PARAMETER= |
当协议为ICMP时出现 |
|
30 |
SPI=0xF1234567 |
当前协议为AHESP时出现 |
|
31 |
SYN |
TCP-Flags中的SYN标志,此外还有FIN/ACK/RST/URG/PSH几种 |
|
32 |
[ ] |
中括号出现在两个地方,在ICMP协议中作为协议头的递归使用;在数据包长度出现非法时用于指出数据实际长度 |
二、LOG日志格式的思考:
从表1的描述可看出,iptables日志记录的信息很多而且显得很凌乱,在分析时面临以下几个问题:
(1)MAC的表示过于简单,把目标MAC、源MAC及长度类型全部混在一起,不利于阅读。
(2)在表中的序号12、13中TOS和PREC的值都为“0x00”标志位表示方式混乱。
(3)在日志中没有记录数据包内容,特别是对一些被拒绝的数据包,如果有记录数据包内容将有助于查找攻击方式、方法。
(4)没有记录规则号,对于被记录的数据包,当需要查看它因为满足什么条件被记录时,将变得比较困难。
(5)LEN、DPT标志同时出现在IP头、TCP头中在分析处理日志时容易出现混乱。
三、日志分析
在Linux下单独记录Iptables的方法是编辑/etc/syslog.conf文件,在其中加入一行
kern.warning /var/log/iptables.log
然后重启syslog服务:
#/etc/init.d/syslog restart
为了方便地对日志进行分析,可加上适当的记录日志前缀,即在IPtables中使用LOG选项,通过LOG 选项打开匹配数据包的内核记录功能。LOG 选项的子选项 --log-prefix 用来给记录信息添加一个消息前缀,这个前缀可设达 29个字符。添加前缀的目的只是为了更好的辨别记录信息,比如更容易用 grep 这种工具过滤出匹配的记录信息。下面举个例子。在Linux 服务器中输入下面的命令:

接下来查看iptables.log日志文件中加HACKERS前缀的日志,当然你也可以换成其他内容。

参数“-j LOG”用于设定日志级别,利用 syslog 把特殊级别的信息放入指定日志文件。初始存放在/var/log/messages里面,由于存放messages中,对于分析日志产生不便。这里简单介绍一个iptables日志的管理、循环和自动报告生成的实例。
几乎所有的Linux发行版都默认安装了iptables,由dmesg或syslogd的facility结合内核管理。iptables的日志的初始值是[warn(=4)],若需要修改这个初始值就需要编辑syslog.conf。
/etc/logrotate.conf的初始设置是每周进行日志循环。所以每周的日志将被存在 /var/log/iptables.log中,以前的日志将被顺次存储在iptableslog.1~ iptables-log.50 中。
另一种方法就是通过iptables直接获取日志,操作如下:
# iptables -A INPUT -s 127.0.0.1 -p icmp -j LOG--log-prefix "iptables icmp-localhost "
\\*保存从eth0 进入的packet记录;
# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
\\*废除从eth0进入的packet记录;
经过上面两条命令操作之后/var/log/iptables-log.1的内容将如下所示:
Sep 2310:16:14 hostname kernel: iptables icmp-localhost IN=lo OUT=MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=57148SEQ=256
上面这种方法比较麻烦,下面用ulog工具可使用netlink直接将日志广播到用户态,这样以来效率更高,首先安装ulog包,命令如下:
#apt-get install ulogd
查看Iptables日志,如图1所示。

图1 用ulog查看Iptables日志
四、图形化分析工具
了解日志构成和结构、含义是基础,但大数据下的“大安全时代”必须使用工具软件协助你完成任务,下面笔者推荐几款图形化分析工具。
1)OSSIM
在OSSIM USM 版本可以对各种日志进行归一化处理并以图表的方式展现出来,如图2所示。

图2 OSSIM日志收集
2) FirewallAnalyzer
Firewall Analyzer是一套基于Web,无需安装代理的防火墙日志分析系统,该系统可支持网络中的多款防火墙设备,并实现监视、日志搜集和分析、并以报表的形式将其呈现出来。利用Firewall Analyzer,网络安全管理员,可以快速的获取网络频宽占用,以及安全时间等重要信息,从而更加有效地对网络实施管理。一般来说,可以获取到的安全事件信息包括:入侵检测、病毒攻击、拒绝服务攻击等异常的网络行为。Firewall Analyzer能分析Cisco PIX、ASA,CheckPoint等多种防火墙日志。如图3所示,为Firewall Analyzer流量分析界面。

图3 Firewall Analyzer 日志分析主界面
3)Sawmill
Sawmill适用于Unix/Linux和Windows等多种平台,支持900 种日志格式,集中式且跨平台的日志报表管理系统,能集中搜集日志,并产生中文报表(包含体简体及繁体中文),简约的操作界面让使用者能直觉地透过简单的点击操作,能够轻松分析Netfilter日志,快速分析并定制报表,如图4、5所示。

图4 设定读取数据源

图5设定输出报表

4.Splunk
Splunk是一款强大的日志分析工具,使用 Splunk 可收集、索引和利用所有应用程序、服务器和设备(物理、虚拟和云中)生成的快速移动型计算机数据 ,用它分析iptables日志,如图6所示,是不是和OSSIM的图形化输出有些相似?
图6
有关日志分析的更多内容大家可以参考《UNIX/Linux网络日志分析与流量监控》一书。
iptables日志探秘的更多相关文章
- iptables日志与limit参数
在处理工作问题的时候需要查看防火墙的日志,由于默认日志都是在系统日志里/var/log/messages里面.需要对rsyslog做设置. 首先编辑配置文件/etc/rsyslog.conf如下: # ...
- centos下防火墙iptables日志学习笔记
一直找不到日志方面怎么弄,问了同事,同事给了个网址: http://www.thegeekstuff.com/2012/08/iptables-log-packets/ 下面就是我根据这个网址里面的设 ...
- [iptables]iptables日志记录
Mar :: kernel: [:] IN=eth1 OUT= MAC=f0:1f:af:da:6f:1e::fb::ae:fa::: SRC= TOS= ID= DF PROTO=TCP SPT= ...
- iptables log日志记录功能扩展应用:iptables自动配置临时访问策略,任意公网登录服务器
一.修改日志记录: 1. 修改配置文件: vi /etc/rsyslog.conf 添加以下内容 #iptables log kern.=notice /var/log/iptables.log 2. ...
- CentOS 6.9开启iptables的日志实现调试
系统日志配置在CentOS 5上叫syslog,而在CentOS 6上叫rsyslog(增强版的syslog),CentOS 5上的配置文件在/etc/syslog.conf下,而CentOS 6在/ ...
- 《UNIX/Linux网络日志分析与流量监控》新书发布
本书从UNIX/Linux系统的原始日志(Raw Log)采集与分析讲起,逐步深入到日志审计与计算机取证环节.书中提供了多个案例,每个案例都以一种生动的记事手法讲述了网络遭到入侵之后,管理人员开展系统 ...
- iptables log
iptables 日志 LOG target 这个功能是通过内核的日志工具完成的(rsyslogd) LOG现有5个选项 --log-level debug,info,notice,warning,w ...
- linux服务之iptables与firewalld
开发语言: 服务器端:在内核中实现,无守护程序 客户端:一般是cli界面下的iptables命令 相关包:iptables-1.4.7-11.el6.x86_64 netfilter/iptables ...
- linux下syslog-ng日志集中管理服务部署记录
syslog是Linux系统默认的日志守护进程,默认的syslog配置文件是/etc/syslog.conf文件.syslog守护进程是可配置的,它允许人们为每一种类型的系统信息精确地指定一个存放地点 ...
随机推荐
- BZOJ1433 ZJOI2009 假期的宿舍 二分图匹配
1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2375 Solved: 1005[Submit][Sta ...
- Chapter 5: Design and implement security
Configure authentication Authenticating users IIS authentication Anonymous ASP.net impersonation Bas ...
- ubuntu下安装rpm 文件
正想着如何把rpm package 安装到ubuntu上, 发现了这篇文章,转载一下 Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb. sudo a ...
- JMeter基础之一 一个简单的性能测试
JMeter基础之一 一个简单的性能测试 上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测 ...
- 回调函数透彻理解Java
http://blog.csdn.net/allen_zhao_2012/article/details/8056665 回调函数透彻理解Java 标签: classjavastringinterfa ...
- javascript序列化和反序列化
一. JavaScript中的对象序列化(Serialize)和反序列化(Deserialize),简单实例: var obj = {id: 1, name: 'yoyo', age: undefin ...
- 几种I/O模型功能和性能对比
对比图 同步阻塞I/O服务端通信模型(一客户端一线程) 伪异步I/O服务端通信模型(M:N) NIO服务端和客户端通信时序图
- Keepalive双主搭建配置
Keepalive 双主搭建配置 keepalived保证双主数据库的可用性 环境说明 192.168.1.10 keepalive 主1 192.168.1.20 keepalive 主2 19 ...
- windows2003 IIS6.0右键属性没有asp.net选项卡的解决办法
windows2003 IIS6.0右键属性没有asp.net选项卡的解决办法 1,如果是只安装了.net framework 1.1 在iis中是不显示那个选项卡的.默认就会支持asp.net1.1 ...
- [Maven]Maven非常详细完整的教程
请参考:http://blog.csdn.net/u012152619/article/category/6239920 第四部分已看完 另外也可参看简书:http://www.jianshu.com ...