Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10504106
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: LINUX

2009-03-23 11:09:36

2007年7月10日20:49:55
iptraf是一款linux环境下,监控网络流量的一款绝佳的免费小软件,特别是安装到防火墙上,与iptables一起工作,监控流经防火墙的网络异常,效果非常好。

1、软件下载
iptraf的最新版本是2.7.0,可以从下面的地址下载

2、安装环境需要
--- gcc 2.7.2.3 or later
--- GNU C (glibc) development library 2.1 or later
--- ncurses development libraries 4.2 or later
可以在linux下执行:
# rpm -qa | grep gcc
# rpm -qa | grep glibc
# rpm -qa | grep ncurses
如果没有,则请安装

3、安装
将下载得到的iptraf-2.7.0.tar.gz上传到你所要安装的机器上,我的是防火墙的 /home/yang/ 目录
# cd /home/yang
# tar zxf iptraf-2.7.0.tar.gz
# cd iptraf-2.7.0
# ./Setup
至此,安装完毕
安装程序会将执行程序安装到 /usr/local/bin 目录下,并创 /var/local/iptraf 目录放置iptraf的配置文件,同时创建 /var/log/iptraf 目录放置iptraf产生的日志文件

4、运行iptraf
确认环境变量的PATH变量包含路径 /usr/local/bin
# iptraf
运行iptraf后会产生一个字符界面的菜单,点击 x 可以退出 iptraf,

各菜单说明如下:

1、菜单Configure...
在这里可以对 iptraf 进行配置,所有的修改都将保存在文件:/var/local/iptraf/iptraf.cfg 中
--- Reverse DNS Lookups 选项,对IP地址反查 DNS名,默认是关闭的
--- TCP/UDP Service Names 选项,使用服务器代替端口号,例如用www 代替80,默认是关闭的
--- Force promiscuous 混杂模式,此时网卡将接受所有到达的数据,不管是不是发给自己的。
--- Color 终端显示彩色,当然用telnet ,ssh连接除外,也就是用不支持颜色的终端连接肯定还是没有颜色。
--- Logging 同时产生日志文件,在/var/log/iptraf 目录下
--- Activity mode 可以选择统计单位是kbit/sec 还是 kbyte/sec
--- Source MAC addrs in traffic monitor 选择后,会显示数据包的源MAC地址

2、菜单Filters...
在这里可以设置过滤规则,这是最有用的选项了,当你从远端连入监控机时,自己的机器与监控机会产生源源不断的tcp数据包,有时很令人讨厌,此时你就可以将自己的ip地址排除在外。
它包括六个选项,分别是:Tcp、Udp、Other IP、ARP、RARP、Non-ip。我们以TCP为例说明,其他选项的配置都很相似。

--- Defining a New Filter
选择Defining a New Filter后,会出来一对话框,要求填入对所建的当前规则的描述名,然后回车确定,Ctrl+x取消
再接着出现的对话框里,Host name/IP address:的First里面填源地址,Second里填目标地址,Wildcard mask 的两个框里面分别是源地址和目标地址所对应的掩码,注意,这里的地址即可以是单个地址,也可以是一个网段,如果是单个IP,则相应的子网掩码要填成 255.255.255.255,如果是一个网段,则填写相应的子网掩码:例如,想表示192.168.0.0,有256个IP地址的网段,则填写 192.168.0.0,子网是:255.255.255.0,其他类推,All则用0.0.0.0,子网也是0.0.0.0表示。
Port:栏要求填入要过滤的端口号,0表示任意端口号
Include/Exclude栏要求填入I或者E,I表示包括,E表示排除
填写完毕,回车确认,Ctrl+x取消

--- Applying a Filter
我们在上一步定义的一个或多个过滤规则会存储为一个过滤列表,在没有应用之前并不起作用,我们可以在这里选择我们应用那些过滤规则。所有应用的规则会一直起作用,即使重新启动iptraf。我们可以执行Detaching a Filter来取消执行当前所有应用的规则。

--- Editing a Defined Filter 编辑一个已经存在的规则

--- Deleting a Defined Filter 删除一个已经定义的规则

--- Detaching a Filter 取消执行当前所有应用的规则

3、菜单IP Traffic Monitor
IP数据包流量实时监控窗口,注意这里会监控所有的来往数据包,包括自己的,所以,如果你使用远程终端连接上来的话,你和监控机将会源源不断的产生数据流,因此建议在Filters...菜单中将自己的IP过滤掉,是它不产生影响。在这里可以实时的看到每一个连接的流量状态,它有两个窗口,上面的是TCP的连接状态,下面的窗口可以看到UDP、ICMP、OSPF、IGRP、IGP、IGMP、GRE、ARP、RARP的数据包。可以点击s键选择排序,可以按照包的数量排序,也可按照字节的大小排序,如果因为它是实时变化的而导致看不太清楚的话,可以在Configure菜单中把Logging功能打开,它就会在/var/log/iptraf 目录中记录日志,以方便你在日后查看,当Logging功能打开后,当你开始监控IP Traffic时,程序会提示你输入Log文件的文件名,默认的是ip_traffic-1.log。

在一个比较繁忙的网络里,显示的结果可能很乱,以至于你很难找到自己感兴趣的数据,这时可以使用Filters菜单,来过滤显示的数据。

4、菜单General Interface Statistics
这里显示每个网络设备出去和进入的数据流量统计信息,包括总计、IP包、非IP包、Bad IP包、还有每秒的流速,单位是kbit/sec或者是kbyte/sec ,这由Configure菜单的Activity选项决定。
如果设置了Filter选项,这里也受到影响

5、菜单Detailed Interface Statistics
这里包括了每个网络设备的详细的统计信息,很简单,不再赘述。

6、Statistical Breakdowns
这里提供更详细的统计信息,可以按包的大小分类,分别统计;也可以按Tcp/Udp的服务来分类统计,也不再赘述。

7、LAN Station Statistics
提供对每个网络地址通过本机的数据的统计信息。
*******************************************
iptraf
就可以启动IPTraf。首先你将看到版权声明,按任意键后就进入了主菜单。注意:使用iptraf需要root权限。IPTraf需要引用/usr/share/terminfo目录中的终端信息数据库,因此如果这个目录位于其它的位置,IPTraf将输出"Error opening terminal"错误信息之后,启动失败。一般在Slackware中可能出现这种错误,因为在Slackware发布中,terminfo一般位于/usr/lib/terminfo。这种情况可以通过如下方式解决:
#TERMINFO=/usr/lib/terminfo
#export TERMINFO
或者填加一个连接:
#ln -s /usr/lib/terminfo /usr/share/terminfo
另外,成IPTraf目前还不支持SIGWINCH处理功能,在xterm或者其它的终端启动iptraf,如果终端的大小改变,IPTraf自己不会调节自己的大小
1.4.命令行选项
与大多数UNIX系统的命令一样,IPTraf还支持一些命令行参数,虽然不多。以下是iptraf支持的所有功能选项:
-i 网络接口
让IPTraf监视特定的网络接口,例如:eth0。-i all表示监视系统的所有网络接口。
-g
网络接口的一般统计信息。
-d 网络接口
显示特定网络接口的详细统计信息。
-s 网络接口
对特定网络接口的TCP/UDP数据流量进行监视。
-z 网络接口
监视局域网的特定网络接口。-l all表示全部。
-t timeout
使IPTraf在指定的时间后,自动退出。如果没有设置IPTraf就会一直运行,直到用户按下退出键(x)才退出。
-B
使IPTraf在后台运行。单独使用无效(被忽略直接进入菜单界面),只能和-i、-g、-d、-s、-z、-l中的某个参数一块使用。
-L filename
如果使用-B参数,使用-L filename使IPTraf把日志信息写入其它的文件(filename)中。如果filename不包括文件的绝对路径,就把文件放在默认的日志目录(/var/log/iptraf)。
-q
这个参数现在已经不用了。原来,如果IPTraf运行在使用IP地址伪装(IP Masquerading)的内核上时,会出现大量的警告信息。现在新版的IP Masquerading代码已经没有这个问题了。
-f
使IPTraf强制清除所有的加锁文件,重置所有实例计数器。
-h
显示简短的帮助信息
1.5.进入菜单界面
前面已经讲过,不使用任何参数运行IPTraf就会进入菜单界面。使用上、下箭头键移动菜单选择条。还可以使用每个菜单项中加亮的字母作为运行某个菜单选项的快捷键。
2.使用IPTraf
2.1.一般信息
2.1.1.数字表示
IPTraf能够计量接通过的报文数和字节数。因为数字的增长会很快,所以IPTraf使用了一些符号来表示较大的数字,这些符号包括:K(1x10E3)、M(1x10E6)、G(1x10E9、T(1x10E12)。这些符号和它们通常表示的数目不一样。例如:
1024K=1024000
1024M=1024000000
1024G=1024000000000
1024T=1024000000000000
2.1.2.实例和日志
IPTraf允许同时运行多个进程,但是一次只有一个进程监听某个或者所有的网络接口。不过一般接口统计(General Interface Statistics)功能除外,一次只能有一个进程执行这个操作。
IPTraf的这个特性带来了一个问题,每个进程都要产生日志文件。如果你打开了IPTraf的日志功能,在你使用某个功能时,它都会提示你设置日志文件的名字。这时,你需要自己指定每个示例的日志文件。如果日志文件发生冲突,可能会有无法预料的事情发生。如果你没有指定日志文件的绝对路径,它们就会被记录到默认的日志目录:/var/log/iptraf。
2.1.3.支持的网络接口
IPTraf目前支持如下网络接口:
lo
本机回环接口。每台机器都有这个接口,IP地址是127.0.0.1。
ethn(n>=0)
以太网接口,n是从0开始的整数。eth0是第一个以太网接口,eth1是第二个网络接口。
fddin(n>=0)
FDDI(光纤分布式数字接口)接口,n是从0开始的整数。
pppn(n>=0)
PPP(点到点协议)接口,n是从0开始的整数。
slin(n>=0)
SLIP(串行线路接口协议)接口,n是从0开始的整数。
ipppn(n>=0)
使用ISDN的同步PPP接口,n是从0开始的整数。
isdnn(n>=0)
ISDN(综合业务数字网)接口。不过ISDN接口的命名比较随意,只有以isdnn命名才能被IPTraf使用。IPTraf支持同步PPP接口、原始IP和Cisco-HDLC encapsulation。
plipn(n>=0)
PLIP接口。使用PC并口的一种点到点IP连接协议。
2.2.IP流量监视
执行IPTraf的IP Traffic Monitor菜单项或者使用-i命令行,你就可以使用IPTraf的IP流量监视功能。使用这个功能,你可以实时地监视在被监听网络接口上通过的所有报文。IPTraf的监视器对IP报文进行解码,显示报文的特定信息,例如:源地址和目的地址。除此之外,它还可以辨别出IP封装的协议(例如:TCP、UDP等),并显示这些协议的某些重要信息。
IPTraf的IP流量监视器有两个显示窗口。每个窗口都可以使用小键盘的up、down键上下滚动。使用w可以切换活动的窗口。
2.2.1.IP流量监视器的上部窗口
2.2.1.1.IP流量监视器上部窗口显示内容
IPTraf的流量监视器上部的的显示窗口显示当前的检测到的TCP连接。主要包括TCP连接的如下信息:
源地址和端口
报文计数
字节计数
源MAC地址
报文大小
窗口(window)大小
TCP标志(flag)
网络接口
使用up、down键滚动TCP窗口可以看到更多的连接信息。IPTraf的IP流量监视器不区分连接的客户端和服务器端。它可以在混杂模式下工作,监视局域网的连接状态。
IP流量监视器显示两个方向的TCP流量,窗口最左边的是TCP连接的两端(以主机:端口的格式显示)。为了方便显示,每个TCP连接对都使用[连接到了一起。
IP流量监视器上部窗口的每个条目都包括如下域,注意:在默认情况下,有些域是不显示的,要按m键才能显示:
源地址。端口(Source address and port)
以源地址:端口的格式显示。表示数据的来源。目的地址和端口是[另一头的源地址:端口对。
报文计数(Packet count)
接收到的报文数目。
字节计数(Byte count)
收到的字节数。这个数目包括IP、TCP头信息和实际的数据。数据链路层的报头不包括在内。
MAC源地址(Source MAC address)
投递这个报文的MAC地址。要使用这个功能首先要使用配置菜单(Configure)打开Source MAC addrs in traffic monitor功能,然后按m键就可以了。
报文大小(Packet Size)
最近收到报文的大小。要使用m键才能显示。这个值只是IP报文的大小,数据链路包头不包括在内。
窗口大小(Window Size)
最近收到报文的窗口大小。这个项也需要按M键盘才能显示。
标志状态(Flag statuses)
最近收到的报文的TCP标志
S
同步标志(SYN),用于建立连接。S---表示发起连接,S-A-表示对连接请求的回应。
A
确认有效标志(ACK)。
P
PSH。本报文段请求一次推动(PUSH)。对于发送方,强制协议软件不等一个缓冲区填满就发送所有数据;对于接收方,使TCP不加延迟地将数据提供给应用程序。
U
URG。表示这个报文包含紧急数据。
RESET
RST。重置连接标志。
DONE
FIN。发送放不再发送任何数据,关闭连接。
CLOSED
FIN被另一端主机确认。
2.2.1.2.rvnamed进程
在使用IP流量监视功能时,IPTraf会启动一个精灵进程rvnamed来加速域名反查的速度。在rvnamed的域名反查完成之后,IPTraf就会使用报文来源的域名来代替IP地址。之所以在IPTraf中使用独一的域名反查程序是因为标准的域名反查调用会阻塞进程,直到域名反查功能完成,比较浪费时间。
2.2.1.3.IP转发和IP地址伪装
如果内核具有IP伪装功能,老版本的IPTraf需要处理警告信息。不过,新版本内核已经对IP转发和IP伪装功能进行了改写,IPTraf不再需要处理有关的错误信息了。因此,-q命令选项已经失去作用。
对于没有IP地址伪装的IP转发,转发主机会在同一个TCP连接出现两次,不过进、出的网络接口是不同的;对于进行IP地址伪装的主机,每个TCP连接的两端分别是内部/外部网地址和接口。
2.2.1.4.连接的关闭(closed)、空闲(idle)和超时(time out)
实际应用过程中,经常会出现一些被关闭、被重置,或者空闲时间很长的连接。如果这些连接太多,IPTraf会自动把活动的连接提到显示窗口的上面。你还可以通过configure->timer->TCP closed/idle persistence...配置菜单设置IPTraf自动清理这些连接的时间,或者使用f键手工清理。
2.2.1.5.显示条目排序
你可以对上部窗口的显示条目进行排序。按s键可以显示一个排序菜单。按p键,会以报文的数量进行排序;按b键,会以字节数进行排序。
2.2.2.底部显示窗口
IP流量监视器的底部显示窗口显示其它种类的网络流量。IPTraf支持以下协议:
用户数据报协议(User Datagram Protocol,UDP)
互联网控制报文协议(Internet Control Message Protocol,ICMP)
开放式最短路径优先(Open Shortest-Path First,OSPF)
内部网关路由协议(Interior Gateway Routing Protocol,IGRP)
内部网关协议(Interior Gateway Protocol,IGP)
互联网组管理协议(Internet Group Management Protocol,IGMP)
General Routing Encapsulation (GRE)
地址解析协议(Address Resolution Protocol, ARP)
反向地址解析协议(Reverse Address Resolution Protocol,RARP)
另外,对于不认识的IP报文,IPTraf会显示其协议号;对于非IP报文IPTraf会在窗口中指出。在底部显示的条目中,UDP报文也以地址:端口的格式显示;ICMP条目包括ICMP协议类型。为了正确区分,每种协议都使用不同的颜色。
底部显示窗口可以容纳512个条目。可以使用上下箭头键滚动。如果达到了512个条目,再有新的条目加入,最老的就会被丢掉。某些条目可能很长,你也可以使用左右键滚动显示。使用w切换两个显示窗口的活动状态。
你如果打开了配置菜单(Configure)的Source MAC addrs in traffic monitor功能,IPTraf也会显示收到的非IP报文的来源MAC地址。
2.3.网络接口的一般信息统计(General Interface Statistics)
主菜单的第二个菜单项是网络接口的一般统计功能(General Interface Statistics)。在其显示窗口中,IPTraf会显示被监视网络接口的一些一般统计信息,包括这些网络接口上通过的IP、非IP和坏IP(校验和错误)报文的的数量。还有一个活动指示器显示每秒通过每个网络接口的报文数目,这个活动指示器使用Activity mode配置选项控制开/关的。如果你打开了日志功能(配置菜单的logging选项),所有的统计信息将被复制到/var/log/iptraf/iface_stats_general.log文件中。
你可以按x或者q键回到主菜单。
2.4.网络接口的细节信息统计(Detailed Interface Statistics)
主菜单的第三个功能选项是网络接口的细节统计(Detailed Interface Statistics)功能。除了General Interface Statistics选项提供的统计信息之外,Detailed Interface Statistics选项还提供有关网络接口的其它一些更为详尽的统计信息。它提供如下统计信息:
IP报文数和字节数。
TCP报文数和字节数
UDP报文数和字节数
ICMP报文数和字节数
非IP类型的报文数和字节数
其它IP类型的报文数和字节数
校验和错误计数
网络接口活动状态
IP报文(IP、TCP、UDP、ICMP以及其它IP)的字节数包括IP包头和负载字节数,而数据链路包头不包括在内;在总(total)字节数和非IP报文计数数中包括数据链路包头的字节数。
你如果想直接启动网络接口的细节统计功能,可以使用如下命令:
#iptraf -d eth0(或者其它的网络接口)
另外,你也可以打开日志功能,把网络接口的细节统计信息记录到日志文件中,默认的日志文件名是iface_stats_detailed-iface.log,其中iface以相关的网络设备名(例如:eth0)代替。
这个功能也是按x或者q键回到主菜单。
2.5.统计分析(Statistical Breakdowns)
使用IPTraf的统计分析(Statistical Breakdowns)功能,可以帮助你优化网络设置和监视网络的安全问题。IPTraf的统计分析包括:报文大小分析和TCP/UDP端口分析。
2.5.1.报文大小分析(Statistical Breakdown: Packet Sizes)
在主菜单的选择:Statistical Breakdowns->By packet size就可以进入报文大小分析界面。在老版本的IPTraf中,这个功能属于网络接口细节统计(detailed interface statistics),后来才独立出来。IPTraf根据网络接口最大传输单元(Maximum Transmission Unit,MTU)的大小,划分出20个范围,统计报文大小的分布情况。
你也可以打开日志功能,把报文大小分布信息记录到日志文件中,默认的日志文件名是packet_size-iface.log,其中iface以相关的网络设备名(例如:eth0)代替。
另外,使用以下命令行可以直接进入报文大小分析界面:
#iptraf -z eth0
按x或者Ctrl+X键退出。
2.5.2.TCP/UDP流量分析
IPTraf也可以对流过每个端口(小于1024)的TCP/UDP报文数量进行统计。
阅读(324) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~