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”用于设定日志级别,利用syslo把特殊级别的信息放入指定日志文件。初始存放在/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流量分析界面。
图3Firewall Analyzer日志分析主界面
3)Sawmill
Sawmill适用于Unix/Linux和Windows等多种平台,支持900种日志格式,集中式且跨平台的日志报表管理系统,能集中搜集日志,并产生中文报表(包含体简体及繁体中文),简约的操作界面让使用者能直觉地透过简单的点击操作,能够轻松分析Netfilter日志,快速分析并定制报表,如图4、5所示。
图4设定读取数据源
图5设定输出报表
有关日志分析的更多内容大家可以参考《UNIX/Linux网络日志分析与流量监控》一书。
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
iptables防火墙终结版iptables防火墙终结版iptables防火墙终结版iptables防火墙终结版iptables防火墙终结版iptables防火墙终结版iptables防火墙终结版iptables防火墙终结版iptables防火墙终结版iptables防火墙终结版...
对Linux下netfilter/iptables中log日志格式探讨 本文将探讨Linux系统下的netfilter/iptables日志格式,对其进行分析和改进。通过对ipt_LOG.c源文件的分析,我们可以看到当前的日志记录格式存在一些问题,如过于随意...
### Centos离线安装iptables详解 #### 一、前言 在CentOS系统中,iptables是用于设置网络规则的重要工具之一。然而,在某些情况下,由于网络环境限制或安全考虑,我们可能无法通过在线方式安装iptables。本文将...
iptables 防火墙 linux
iptables源码 iptables工具
iptables 源码包安装,编译linux内核
4. **目标(Target)**: 规则的目标表示当数据包满足该规则时应采取的动作,如 `ACCEPT` (接受数据包)、`DROP` (丢弃数据包)、`LOG` (记录日志) 等。 #### 三、iptables命令详解 - **初始化iptables**: 在配置...
iptables防火墙iptables防火墙iptables防火墙
iptables 好用的叫学,非常的厉害iptables 好用的叫学,非常的厉害iptables 好用的叫学,非常的厉害iptables 好用的叫学,非常的厉害iptables 好用的叫学,非常的厉害iptables 好用的叫学,非常的厉害iptables 好用...
iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables iptables
iptables 是基于内核的防火墙,功能非常强大,iptables 内置了 filter,nat 和 mangle 三张表。filter 负责过滤数据包,包括的规则链有,input,output 和 forward;nat 则涉及到网络地址转换,包括的规则链有,...
- **The iptables-restore and iptables-save(iptables-restore和iptables-save)**:分别用于从文件恢复iptables配置和保存当前iptables配置到文件。 通过以上介绍,我们不仅了解了iptables的基本概念和架构,还...
Android 流量防火墙 Iptables 原理详解 Android 流量防火墙是一种基于 Iptables 的防火墙解决方案,旨在限制单个应用的联网状态。Iptables 是一个功能强大的 IP 信息包过滤系统,可以用于添加、编辑和删除规则,...
下面小编就为大家带来一篇iptables配置(/etc/sysconfig/iptables)操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
iptables是一个管理netfilter的工具。 多个连续IP操作 1、拆分成多条命令运行 iptables -A INPUT 192.168.122.2 -j ACCEPT iptables -A INPUT 192.168.122.3 -j ACCEPT iptables -A INPUT 192.168.122.4 -j ACCEPT ...
设置iptables的界面程序
iptables 应用手册详细介绍 iptables 是 Linux 核心里的 Netfilter 子系统所提供的唯一工具程序,用于创建防火墙、网址转换、数据包记录、流量统计等功能。iptables 的接口很可能是 Linux 有史以来最精致的,使得 ...
它是一个简单的基于 Java 的日志查看器,用于查看 iptables 日志,无需依赖,小巧便携
iptables
iptables 命令实例 本文档主要介绍了 Linux 中的iptables 命令的实例,涵盖了 iptables 的基本用法、规则设定、端口控制、NAT 转发等方面的知识点。 一、iptables 的基本概念 iptables 是 Linux 系统中的一个...