随着Internet的迅猛发展,网络已无处不在,但是,它可能随时受到来自各方的攻击。了解哪些人正在访问资源、哪些人正在享受服务、哪些人正在发送大量垃圾等,对网络管理员来说是非常必要的。利用Solaris中较常见的网络安全分析工具Tcpdump、Nmap和IP Filter 、ethereal、gftp,可以使网络管理工作更加轻松。Etherea和 Tcpdump主要是截获通过本机网络接口的数据,用以分析。Nmap是强大的端口扫描工具,可扫描任何主机或网络。lsof可用来检查本机当前提供的服务及状态。IP Filter是开源的防火墙工具。这几个者各有所长,结合起来,就可以比较透彻地了解网络状况。
一、使用Tcpdump
Tcpdump能够截获当前所有通过本机网卡的数据包。它拥有灵活的过滤机制,可以确保得到想要的数据。由于Tcpdump只能收集通过本机的数据,因此它的应用受到了一些限制,大多应用在网关或服务器自我检测上。
1. 软件下载和安装:
Libpcap能 独立地 通过主机协议发送和接受数据,如同TCP-IP。这就意味着Libpcap不能阻止、过滤或操纵同一机器上的其他应用程序的通讯:它仅仅能简单地"监视"在网络上传输的数据包。所以,它不能提供类似网络流量控制、服务质量调度和个人防火墙之类的支持。
#wget http://mirrors.easynews.com/sunfreeware/i386/10/libpcap-0.8.3-sol10-intel-local.gz
#pkgadd -d libpcap-0.8.3-sol10-intel-local.pkg
使用Solaris pkg-get 工具安装gftp
pkg_get,由blastwave.org推出的,是一个用来自动获得www.sunfreeware.com网站上的软件包工具. 模拟了Debian linux上的"apt-get 工具” 。安装 CSW (Community SoftWare) 软件包非常方便。
#wget http://www.blastwave.org/pkg_get.pkg
#pkgadd -d pkg_get.pkg all
# pkg_get ?i tcpdump
2 软件使用
例如,在作为网关的主机上,想知道本地网络中IP地址为192.168.0.2的主机现在与外界通信的情况,就可以使用如下命令:
tcpdump -i pcn0 src host 192.168.0.2 > 115.txt
如图1 。
图1 把tcpdump重定向到文件再进行分析
在默认情况下,Tcpdump会将数据输出到屏幕。如果数据量太大,可能根本看不清具体的内容,这时我们可以把它重定向到文件再进行分析。
把115.txt文件打开可以就可以清楚地了解刚才用户的一举一动:
首先到2911.net的SMTP服务器发送邮件:
06:08:03.434544 IP cjh.32899 > mail.2911.net.smtp: S 800489075:800489075(0) win 49640
06:08:03.454318 IP cjh.32899 > mail.2911.net.smtp: . ack 3379070854 win 50400
06:08:03.475770 IP cjh.32899 > mail.2911.net.smtp: . ack 31 win 50400
06:08:03.477207 IP cjh.32899 > mail.2911.net.smtp: P 0:18(18) ack 31 win 50400
06:08:03.497277 IP cjh.32899 > mail.2911.net.smtp: . ack 163 win 50400
然后访问了IT168的主页:
06:08:39.594065 IP cjh.32950 > gjjdial.bta.net.cn.domain: 20696+ AAAA? subject.it168.com. (35)
06:08:39.635189 IP cjh.32901 > 202.99.120.124.80: P 439:941(502) ack 621 win 50400
06:08:39.635867 IP cjh.32900 > 202.99.120.122.80: . ack 66554 win 50400
对于普通的网络分析,这些信息已经足够了。这就是Tcpdump的基本功能,其它高级功能都是在这一基础上的细化和增强。
例如,我只想知道192.168.0.2当前正在访问哪些Web站点,可以用下面这条命令:
./tcpdump -i pcn0 src host 192.168.0.5 and dst port 80
该命令的目的是截获所有由eth0进入、源地址(src)为192.168.0.2的主机(host),并且(and)目标(dst)端口(port)为80的数据包。显然,通过and或者not这些逻辑组合,就可以得到特定的数据。Tcpdump还可以监听不同的数据类型(如TCP、UDP),以用不同的网络范围(如Host主机、Net网络),甚至用Ether直接指定物理地址。
表1 Tcpdump常用命令行选项
用Tcpdump在网络中获取信息如此清晰,是不是有一种一览无余的感觉。正是因为Tcpdump功能过于强大,连个人隐私和敏感数据的保护都成了问题,所以通常只有root用户能够使用这一工具。
[1] [2] [3] 下一页