77 FreeBSD连载:安全工具( 三 )


显然为了安全起见,不用作网络管理用途的计算机上不应该运行这一类的网络分析软件,为了屏蔽它们,可以屏蔽内核中的bpfilter伪设备 。一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关的数据包,为了接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的TCP/IP堆栈才行 。在FreeBSD下,这就需要内核支持伪设备bpfilter 。因此,在内核中取消bpfilter支持,就能屏蔽tcpdump之类的网络分析工具 。
并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否被用作攻击同网络的其他计算机的跳板 。
May 15 16:27:20 host1 /kernel: fxp0: promiscuous mode enabled
虽然网络分析工具能将网络中传送的数据记录下来,但是网络中的数据流量相当大,如何对这些数据进行分析、分类统计、发现并报告错误却是更关键的问题 。网络中的数据包属于不同的协议,而不同协议数据包的格式也不同 。因此对捕获的数据进行解码,将包中的信息尽可能的展示出来,对于协议分析工具来讲更为重要 。昂贵的商业分析工具的优势就在于它们能支持很多种类的应用层协议,而不仅仅只支持tcp、udp等低层协议 。
从上面tcpdump的输出可以看出,tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的 。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump截获数据并保存到文件中,然后再使用其他程序进行解码分析 。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘 。FreeBSD提供的一个有效的解码程序为tcpshow,它可以通过Packages Collection来安装 。
# pkg_add /cdrom/packages/security/tcpshow*# tcpdump -c 3 -w tcpdump.outtcpdump: listening on fxp0# tcpshow < tcpdump.out---------------------------------------------------------------------------Packet 1TIME: 12:00:59.984829LINK: 00:10:7B:08:3A:56 -> 01:80:C2:00:00:00 type=0026 <*** No decode support for encapsulated protocol ***>---------------------------------------------------------------------------Packet 2TIME: 12:01:01.074513 (1.089684)LINK: 00:A0:C9:AB:3C:DF -> FF:FF:FF:FF:FF:FF type=ARPARP: htype=Ethernet ptype=IP hlen=6 plen=4 op=request sender-Mac-addr=00:A0:C9:AB:3C:DF sender-IP-address=202.102.245.3 target-MAC-addr=00:00:00:00:00:00 target-IP-address=202.102.245.3---------------------------------------------------------------------------Packet 3TIME: 12:01:01.985023 (0.910510)LINK: 00:10:7B:08:3A:56 -> 01:80:C2:00:00:00 type=0026 <*** No decode support for encapsulated protocol ***>tcpshow能以不同方式对数据包进行解码,并以不同的方式显示解码数据,使用者可以根据其手册来选择最合适的参数对截获的数据包进行分析 。从上面的例子中可以看出,tcpshow支持的协议也并不丰富,对于它不支持的协议就无法进行解码 。
除了tcpdump之外,FreeBSD的Packages Collecion中还提供了Ethereal和Sniffit两个网络分析工具,以及其他一些基于网络分析方式的安全工具 。其中Ethereal运行在X Window下,具有不错的图形界面,Sniffit使用字符窗口形式,同样也易于操作 。然而由于tcpdump对过滤规则的支持能力更强大,因此系统管理员仍然更喜欢使用它 。
对于有经验的网络管理员,使用这些网络分析工具不但能用来了解网络到底是如何运行的,故障出现在何处,还能进行有效的统计工作,如那种协议产生的通信量占主要地位,那个主机最繁忙,网络瓶颈位于何处等等问题 。因此网络分析工具是用于网络管理的宝贵系统工具 。
为了防止数据被滥用的网络分析工具截获,关键还是要在网络的物理结构上解决 。常用的方法是使用交换机或网桥将信任网络和不信任网络分隔开,可以防止外部网段窃听内部数据传输,但仍然不能解决内部网络与外部网络相互通信时的数据安全问题 。

推荐阅读