您的位置:首页 > 理论基础 > 计算机网络

安全实现Linux网络监控

2010-07-08 11:03 429 查看
一、SNMP简介
SNMP 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及 HUBS 等)的一种标准协议,它是一种应用层协议。 SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。简单网络管理协议(SNMP)首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。许多人认为 SNMP在IP上运行的原因是Internet运行的是TCP/IP协议,然而事实并不是这样。 SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。询时顺序不对,那么关于一些大的灾难性的事件的通知又会太馒。这就违背了积极主动的网络管理目的。
SNMP协议运行在UDP协议之上,它利用的是UDP协议的161/162端口。其中161端口被设备代理监听,等待接受管理者进程发送的管理信息查询请求消息;162 端口由管理者进程监听等待设备代理进程发送的异常事件报告陷阱消息,如Trap等。SNMP提供三类操作,分别为Get、Set和Trap。
2.MRTG软件的不足
谈到网络流量监控,相信大家都熟悉MRTG这个工具。MRTG监测网卡流量很方便,但是如果需要监测其它的系统性能比如CPU负载、系统负载,网络连接数等,就不是那么简单了。即使实现了这些功能,但管理起来非常麻烦。比如公司有1、2千个被监测点,分布在不同的机房,为了管理方便需要将这些服务器和网络设备分类,这样的话就需要将这些被监测点放在不同的MRTG配置文件中,运行多个crontab,甚至还要自己写HTML页面对其进行管理。MRTG存在许多缺点:
1. 使用文本式的数据库,数据不能重复使用;
2. 只能按日、周、月、年来查看数据;
3. 只能画两个DS(一条线、一个块);
4. 无管理功能;
5. 没有详细日志系统;
6. 无法详细了解一一流量具体构成;
7. 只能用于TCP/IP网络对于 SAN网络流量无能为力;
8. 不能在命令行下工作。
MRTG毕竟是一套很老的软件了,而且存在许多不足的地方,其作者Tobias Oetiker在1999年就已经开始开发另一套开源软件RRDTool来代替MRTG。现在RRDTool在已经发展得成熟,在功能上MRTG难以与其相提并论。
3. RRDTool的特点
优点:
1. 使用RRD(Round Robin Database)存储格式,数据等于放在数据库中,可以方便的调用。比如将一个RRD文件中的数据与另一个RRD文件中的数据相加;
2. 可以定义任意时间段画图,可以用半年数据画一张图,也用半小时内的数据画一张图;
3. 能画任意个DS,多种的图形显示方式;
4. 数据存储与绘图分开,减轻系统负载;
5. 能任意处理RRD文件中的数据,比如在浏览监测中我们需要将数据由Bytes转化为Bits,可以将原始数据乘8。
缺点:
1. RRDTool的作用只是存储数据和画图,它没有MRTG中集成的数据采集功能;
2. 在命令行的使用非常复杂,参数极多。
3. 无用户、图像管理功能。

二、安装配置NTOP监控Linux网络
1 P2P对于网络流量提出挑战
如果说让Linux网络管理员最头疼的问题,恐怕大家都会回答是网络带宽匮乏了,实际情况确实如此,随着网络应用与网络软件的越来越多,占用带宽资源的服务也越来越多。我们究竟应该怎么管理网络成为一个非常严肃的问题。BT,P2P等软件吞噬着网络带宽,蠕虫等网络病毒也使网络应用变得枯竭。从某种意义上讲带宽就是钱,那么我们这些网络管理员如何有效的监视、控制公司的网络流量呢?下面笔者为读者介绍一个不可多得的监控网络流量的工具:NTOP。
1.Linux异构网络中P2P流量情况
P2P(Peer-to-Peer)是一种用于文件交换的新技术,通过Internet允许建立分散的、动态的、匿名的逻辑网络。P2P为对等连接或对等网络,点对点网络技术,可应用于文件共享交换,深度搜索、分布计算等领域。它允许个体的PC通过Internet共享文件。随着P2P文件交换应用的普及,ISP在维持和增加宽带网的收益上也面临着新的挑战和机遇。据有关资料统计,现有的网络中有超过70%的带宽被P2P通信占据着。P2P通信会导致异常的流量峰值,对网络资源造成意外的变形;所带来的网络拥塞、性能下降等问题,已影响到正常的网络应用,如WWW、Email等,缓慢的网页浏览和收发邮件速度更引起普通用户的不满。
若想控制P2P通信,就必须对P2P通信进行有效地识别,然而,许多P2P通信使用了不同的通信技术和协议,使用传统的技术来识别它们非常困难。 比如,许多P2P协议不使用固定的端口,而是动态地使用端口,包括使用一些知名服务的端口。KaZaA就是可以使用端口80(通常是http/web来使用)来通信的,从而穿透传统的基于IP和端口的防火墙和包过滤器。所以,通过简单的基于IP和端口的分类技术(分析IP包头、IP地址、端口号等)很难识别、跟踪或控制这类通信。过去有一段时间,有人使用监测6881~6889端口来识别BT(BitTorrent),但这种做法现在早已失效——BT已不再使用固定的6881~6889端口来通信,而是动态地使用端口。随着P2P应用的不断增长,更多的通信协议被使用;识别和分类P2P的技术必须快速、简单,以适应这种技术的变化。现在,识别P2P通信的方法是在应用层分析数据包,看是否有某个应用协议的特征码,然后确定通信的种类。应用层分析数据包的基本方法是,如果应用层数据包的头部有“220 ftp server ready”的特征串,可以确定是在使用ftp程序;如果有“HTTP/1.1 200 ok”的特征串,可以确定是在使用http传送数据。
2.ntop的功能
MRTG基于SNMP协议获取信息,对于端口的流量,MRTG能提供精确统计,但对于3层以上的信息则无从得知了。而这正是NTOP的强项。NTOP能够更加直观的将网络使用量的情况和每个节点计算机的网络带宽使用详细情况显示出来。ntop是一种网络嗅探器,嗅探器在协助监测网络数据传输、排除网络故障等方面有着不可替代的作用。可以通过分析网络流量来确定网络上存在的各种问题,如瓶颈效应或性能下降;也可以用来判断是否有***正在***网络系统。如果怀疑网络正在遭受***,通过嗅探器截获的数据包可以确定正在***系统的是什么类型的数据包,以及它们的源头,从而可以及时地做出响应,或者对网络进行相应的调整,以保证网络运行的效率和安全。通过ntop网管员还可以很方便地确定出哪些通信量属于某个特定的网络协议、占主要通信量的是那个主机、各次通讯的目标是哪个主机、数据包发送时间、各主机间数据包传递的间隔时间等。这些信息为网管员判断网络问题及优化网络性能,提供了十分宝贵的信息。
ntop提供以下一些功能:

1. 自动从网络中识别有用的信息;

2. 将截获的数据包转换成易于识别的格式;

3. 对网络环境中的通讯失败进行分析;

4. 探测网络环境下的通讯瓶颈;

5. 记录网络通信时间和过程。
6.自动识别客户端正在使用的操作系统.
7.可以在命令行和Web两种方式运行.
3. 主动分析避免异常流量
面对异常流量,我们应当建立一套分析系统,支持异常流量发现和报警,能够通过对一个时间段内历史数据的自动学习,获取包括总体网络流量水平、流量波动、流量跳变等在内的多种网络流量测度,并自动建立当前流量的置信度区间作为流量异常监测的基础。
如果自行建立主动型的网络分析系统一般包括:测量节点、中心服务器、数据库和分析服务器。但对于中小企业来说难度较大。主动分析是借助产品化和集成程度较高的测量工具,有目的对生产网络注入监控点,并根据测量数据流的传送情况来分析网络的性能。虽然这些监控点也会占用带宽,但和P2P下载所占用的可用带宽相比是微不足道的。 排除病毒和封锁P2P之后,一般带宽占用前两名的应用是基于网站页面的在线音频与在线视频。为了节约带宽,我们应该在工作时间段对其进行限制和封锁。
ntop和MRTG相比相比它的安装配置比较简单。目前市场上可网管型的交换机、路由器都支持SNMP协议,Ntop支持简单网络管理协议所以可以进行网络流量监控。ntop几乎可以监测网络上的所有协议: TCP/UDP/ICMP、(R)ARP、IPX、Telnet、DLC、Decnet、DHCP-BOOTP、AppleTalk、Netbios、TCP/UDP、FTP、HTTP、DNS、Telnet、SMTP/POP/IMAP、SNMP、NNTP、NFS、X11、SSH和基于P2P技术的协议eDonkey, Overnet, Bittorrent, Gnutella (Bearshare, Limewire,etc), (Kazaa, Imesh, Grobster)。

4 Ntop的安装
NTOP在http://www.ntop.org  可以下载最新的源代码安装使用。NTOP可以安装在所有计算机(Linux/Unix/BSD/Windows)上,这里根据各服务器自身应用的特点,定制规则,并将收集到的信息、告警等传至网管员控制台的NTOP控制中心。运行软件需要libpcap库支持。libpcap 是 unix/linux 平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。Libpcap 提供了系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程序的可移植性。Libpcap 可以在绝大多数类 unix 平台下工作,Libpcap 软件包可从 http://www.tcpdump.org/ 下载。Windows客户端安装WinPcap( http://www.winpcap.org/ )它是网络数据包截取驱动程序,能够分析在线播放的流媒体直接下载地址信息类似与libpcap的包,支持Windows平台。可以进行信息包捕获和网络分析,是基于UNIX的libpcap和BPF(Berkeley 分帧过滤器)模型的包。配置NTOP的网络拓朴如图16-2,核心交换机是SmartBits 6000C。其L3+模块的NetStream功能兼容Cisco的NetFlow V5/V8格式,能够提供对业务流量数据的精确统计。使用基于Linux平台的ntop作为收集和分析NetStream数据的工具。另外还要安装以下函数库:glibc, glibc-devel ,gcc ,gdbm, binutils,ncurses,RRDTool。打开交换机SPAN端口:ntop若是架设在集线器时便能监视到网络上所有的封包。但若是架设在交换机环境下时,除非是开放SPAN的功能否则只能监测给自己的封包。所谓SPAN,是The Switched Port Analyzer的缩写,通常被称为端口镜像或端口监听。SPAN功能是基于交换机的,而交换机的原理不同于集线器:交换机在获得了源端口的MAC地址后,会将流经该MAC地址的所有数据直接发往目标端口。


560)this.style.width=560;" border=0 big(this)?>

图1 配置Ntop的网络拓扑
软件安装过程:

#rpm - ivh ntop-3.2-1.el4.rf.i386.rpm
然后建立日志文件目录
#mkdir /var/log/ntop/建立账号:
#useradd -g ntop -s /bin/true -M ntop
初始化:
/usr/sbin/ntop -P /usr/share/ntop/ -u ntop -A

启动ntop
#ntop -i eth0
第一次运行系统它会要你输入管理员的密码,预设密码是:admin,第二次执行就不用再输入,如果希望系统启动时自动启动NTOP,可以这样操作:如果没有打开可以运行命令:

#ntsysv
打开终端窗口,在ntop服务选项加上*(用空格键),然后重新启动系统,这样系统会自动启动ntop监控服务。这时你可以打开浏览器输入:http://IP:3000即可打开管理界面。Ntop主页面如图2。


560)this.style.width=560;" border=0 big(this)?>

图2 ntop主界面
NTOP的主界面,一共八个大版面,33个选项。主要包括:
[align=left]About: 基础知识,使用指南。[/align]
[align=left]Summary : 目前网络的整体概况 [/align]
[align=left]l Traffic : 流量 [/align]
[align=left]l Hosts : 所有主机使用概况 [/align]
[align=left]l Network Load : 各时段的网络负载 [/align]
[align=left]l Netflows : 网络流量图。[/align]
[align=left]All Protocols : 查看各主机占用的频宽与各时段网络使用者等的明细 [/align]
[align=left]l Traffic : 流量。[/align]
[align=left]l Throughput : 频宽使用明细表 (点选主机,可以看到该主机详细的信息及使用状况) [/align]
[align=left]l Activity : 各时段所有主机使用流量(状况). (点选主机,可以看到该主机详细的信息及使用状况)[/align]
[align=left]IP : 局域网络内各主机使用状况. [/align]
[align=left]l Routers : 路由器状况。[/align]
[align=left]l Ports Used : 端口使用情况[/align]
[align=left]l Active TCP Sessions : 目前正在进行的联机 。[/align]
[align=left]l Host Fingerprint : 主机快照情况。[/align]
[align=left]l Host Characterization : 主机描述。[/align]
[align=left]l Local Matrix : 局域网络内各主机间的流量明细。[/align]
[align=left] Media :监控其他网络类型。[/align]
[align=left]l FC : 光纤网络的状况 。[/align]
[align=left]l SCSI : SCSI 设备状况 。[/align]
[align=left]Utils:ntop的备份和日志文件。[/align]
[align=left]Plugins:ntop的插件。[/align]
[align=left]Admin : 新增ntop 使用者或重新启动,停止ntop 。[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
本文出自 51CTO.COM技术博客

三、 Ntop使用详解
ntop是一个灵活的、功能齐全的,用来监控和解决局域网问题的工具。它同时提供命行输入和web界面,可应用于嵌入式web服务。下面分别介绍:
1 Web浏览器方式:
(1)查看网络的所有的计算机流量
查看网络整体流量用鼠标点击“Stats”按钮后下载“Triffic”选项。网络流量会以柱面图和明细表格的形式显示出,如果你想查看网络的所有的计算
机流量,用鼠标点击“IP Traffic”-“Host”按钮即可,如图3。


560)this.style.width=560;" border=0 big(this)?>
图3网络总体流量
(2)查看通信数据包(协议)比例
数据包对于网络管理的网络安全具有至关重要的意义。比如,防火墙的作用本质就是检测网络中的数据包,判断其是否违反了预先设置的规则,如果违反就加以阻止。Linux网络中最常见的数据包是是TCP和UDP。如果想了解一个计算机传输了那些数据,可以双击计算机名称即可分析出用户各种网络传输的协议类型和占用带宽的比例。如图4、图5。图4 是全部网络数据包柱状图,图5是数据包(协议)比例图。


560)this.style.width=560;" border=0 big(this)?>
图4 全部网络数据包柱状图


560)this.style.width=560;" border=0 big(this)?>
图5 数据包(协议)比例图
说明:Linux网络中最常见的数据包是是TCP和UDP。
(3)查看端口使用情况
网络中有许多TCP数据包和UDP数据包在传送,根据它们使用的不同端口,就可以识别它们的用途,从而可判断网络中有什么类型的数据在传送,为网络管理提供依据。在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。如果想了解一个计算机传输数据使用哪些端口,可以双击计算机名称即可分析出网络传输的协议使用的端口号。如图6。


560)this.style.width=560;" border=0 big(this)?>
[align=left]图6 端口使用情况 [/align]
[align=left](4)使用NTOP监控SAN网络[/align]
SAN(Storage Area Network的缩写)意为存储区域网络,是真正的专注于企业级的存储。SAN采用一个分离的网络(从传统的局域网中分离)连接所有的存储器和服务器,这个网络可以采用高性能的实现技术,如光纤通道(Fiber Channel),可以容纳SCSI等协议,使数据块的移动更为有效,也便于用户自由增加磁盘阵列、磁带库或服务器等设备。现在的SAN基本都是通过Fibre Channel来实现的,Fibre Channel,简称FIBRE CHANNEL,又称光纤通道,是利用专用设备进行数据高速传输的一种网络标准,主要用于连接服务器的干线(backbones),并把服务器连接到存储设备上。NTOP最新版本比MRTG的最大优势是可以监控SAN网络。工作界面如图7。


560)this.style.width=560;" border=0 big(this)?>
图7使用ntop监控SAN网络
(5)NTOP 提供的插件
NTOP还提供的几个插件,最主要包括:
ICMPWATCH:用于端口检测很多人都已经知道了可以借助NETSTAT -AN来查看当前的连接与开放的端口,但NETSTAT并不万能,比如你的Win2000遭到OOB***的时候,不等NETSTAT你就已经死机了。为此,出现了一种特殊的小工具——端口监听程序。端口监听并不是一项复杂的技术,但却能解决一些局部问题。
NetFlow:近年来,很多服务提供商一直使用NetFlow。因为NetFlow在大型广域网环境里具有伸缩能力,可以帮助支持对等点上的最佳传输流,同时可以用来进行建立在单项服务基础之上的基础设施最优化评估,解决服务和安全问题方面所表现出来的价值,为服务计费提供基础。NetFlow是一种数据交换方式,其工作原理是:NetFlow利用标准的交换模式处理数据流的第一个IP包数据,生成NetFlow 缓存,随后同样的数据基于缓存信息在同一个数据流中进行传输,不再匹配相关的访问控制等策略,NetFlow缓存同时包含了随后数据流的统计信息。但是,NetFlow也不是万能的,比如它无法提供应用反应时间。
rrdPlugin:用于生成流量图。RRD的作者,也是MRTG的作者,RRD可以简单的说是MRTG的升级版,它比MRTG更灵活,更适合用shell、perl等程序来调用,成生所要的图片。
sFlow(RFC 3176)是基于标准的最新网络导出协议,能够解决当前网络管理人员面临的很多问题。sFlow已经成为一项线速运行的“永远在线”技术,可以将sFlow技术嵌入到网络路由器和交换机ASIC芯片中。与使用镜像端口、探针和旁路监测技术的传统网络监视解决方案相比,sFlow能够明显地降低实施费用,同时可以使面向每一个端口的全企业网络监视解决方案成为可能。与数据包采样技术(如RMON)不同,sFlow是一种导出格式,它增加了关于被监视数据包的更多信息,并使用嵌入到网络设备中的sFlow代理转发被采样数据包,因此在功能和性能上都超越了当前使用的RMON、RMON II和NetFlow技术。sFlow技术独特之处在于它能够在整个网络中,以连续实时的方式监视每一个端口,但不需要镜像监视端口,对整个网络性能的影响也非常小。NTOP插件工作界面如图8。


560)this.style.width=560;" border=0 big(this)?>
图8 NTOP插件工作界面
2.命令行方式:
实际上我们还可以通过命令行方式来使用NTOP,一般高手都是这样操作的,因为命令行下修改和添加设置非常迅速,而且还有很多图形化无法实现的操作,特别适合远程操作。如图9。


560)this.style.width=560;" border=0 big(this)?>
图9命令行下的ntop
常用参数
-d : 放入后台执行。
-L : 输出讯息写入系统记录文件。
-r : 设定页面的自动更新频率,预设每 3 秒更新一次. 。
-w : 使用其它端口 (预设是 3000) 。
-W : 同 -w , 不过这个是使用 SSL 联机 。
-u : 指定使用其它身份执行。
-i : 指定 ntop 监听的网卡,"," 隔开多个网卡。
-M : 使用 -i 指定多张网卡时, 预设是合并统计. 若要分别统计,加此参数。
-h:获取帮助信息。
如果安装了lynx浏览器还可以大大方便远程管理。方法是使用命令:“lynx:http://ip:3000 ”即可如图10。


560)this.style.width=560;" border=0 big(this)?>
图10 命令行浏览器下的ntop
Ntop有很多命令行参数,可以使用ntop -h获取帮助信息。另外在首选单“About”的“Man Page”中有200页的常见问题回答。这样你也可以自己轻松监控流量了。在线官方文件:http://www.ntop.org/ntop-overview.pdf
本文出自 51CTO.COM技术博客

本文出自 51CTO.COM技术博客
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 职场 网络监控