一次性付费进群,长期免费索取教程,没有付费教程。

进微信群回复公众号:微信群;QQ群:460500587

 教程列表 见微信公众号底部菜单 |  本文底部有推荐书籍 

微信公众号:计算机与网络安全

ID:Computer-network

对于单台服务器网络故障的排查,iftop工具可以轻松实现,但是在监控一个庞大的服务器网络,并且要分析每台主机以及端口的网络状态时,iftop就显得爱莫能助了,这个时候就需要一个高效的网络管理系统了。Ntop就是一个功能强大的流量监控、端口监控、服务监控管理系统。

1、Ntop与MRTG的异同

MRTG是一个监控网络链路流量的工具,通过SNMP协议得到设备的流量信息,并将信息通过图形展示给用户。MRTG配置简单,容易使用,它的优点是耗用的系统资源小,可以非常直观地显示流量负载,但是它也有很多缺点,例如:只能用于TCP/IP网络、数据不能重复使用、无法记录更详细的流量状态、没有管理功能等,而这些刚好是Ntop最擅长的地方。

Ntop是网络流量监控中的新贵,它是一种网络嗅探器,在监测网络数据传输、排除网络故障方面功能十分强大。它通过分析网络流量来判断网络上存在的各种问题,还可以监控是否有黑客正在攻击网络,如果网络突然变缓慢,通过Ntop截获的数据包,可以确定是什么类型的数据包占据了大量带宽,以及数据包的发送时间、数据包传送的延时、数据包的来源地址等,通过这些信息,运维人员可以及时做出响应,或者对网络进行调整,从而保证网络正常、稳定运行。

2、Ntop与Ntopng的功能介绍

Ntop提供了命令行界面和Web界面两种工作方式,通过Web界面,可以清晰展示网络的整体使用情况、网络中各主机的流量状态与排名、各主机占用的带宽以及各时段的流量明细、局域网内各主机的路由、端口使用情况等。

根据官方的介绍,Ntop主要提供以下几个功能:

● 可以自动从网络中获取有用的信息。

● 可以将获取的数据包信息转换为可识别的格式。

● 可以记录网络的通信时间和过程。

● 可以对网络中失败的通信进行分析。

● 可以发现网络环境中通信的瓶颈。

● 可以自动识别客户端正在使用的操作系统。

通过对Ntop功能的介绍,不难看出,它就是从分析网络流量角度来确定网络上存在的各种问题,说得更简单一点,它就是一个抓包工具,然后通过归纳和绘图实现更多的功能。

在Ntop版本更新到Ntop5.x之后,官方宣布停止Ntop版本的更新,继而推出替代版本Ntopng。Ntopng在Ntop版本的基础上,去掉了一些拖沓冗长的功能,同时新增了网络流量实时监控功能,并将各个功能进行重新梳理和整合,使整个流量展示更加智能化和合理化。

Ntopng使用Redis键值服务按时间序列存储统计信息,通过这种方式实现了流量状态实时展示。与Ntop类似,Ntopng也内置Web服务功能,同时,也支持命令行界面和Web界面两种工作方式,但是Ntopng降低了对CPU和内存的使用率,资源消耗更少。Ntopng除了可以实现Ntop的所有功能外,新增的功能如下:

● 以图形的方式动态展示流量状态。

● 实时监控网络数据并实时汇总。

● 以矩阵图的方式显示IP流量。

● 可以生成基于HTML5/AJAX的网络流量统计。

● 支持历史流量数据分析。

● 基于HTML5的动态图形用户界面。

下面分别介绍Ntop和Ntopng的安装及使用技巧。

3、安装Ntop与Ntopng

(1)安装Ntop

Ntop支持Win32、Linux、UNIX、BSD等平台。可以在Ntop官方网站http://www.ntop.org/下载对应的版本。Ntop的安装可以通过yum源方式和源码编译安装两种方式实现,为了能够使用最新的稳定版本,这里采用源码编译的方式来安装,安装过程如下。

1)安装Ntop必需的软件包

这里安装的操作系统环境为CentOS 6.3 x86_64版本。为了顺利完成源码编译,需要安装Ntop必需的一些软件包,操作如下:

[root@monitor ~]# yum -y install libpcap libpcap-devel libtool libpng gdbm gdbm-devel glib libxml2-devel pango pango-devel gd zlib zlib-devel

[root@monitor ~]# yum -y install svn rrdtool rrdtool-devel python python-devel GeoIP GeoIP-devel

2)编译安装Ntop

这里下载的是ntop-5.0.1版本,编译安装过程如下:

[root@monitor ~]# tar zxvf ntop-5.0.1.tar.gz

[root@monitor ~]# cd ntop-5.0.1

[root@monitor ~]# ./autogen.sh --with-tcpwrap

[root@monitor ~]# make

[root@monitor ~]# make install

其中,--with-tcpwrap选项用于支持tcp_wrappers访问控制,以保证Ntop Web访问的安全。

3)简单配置Ntop

在Ntop安装完成后,默认的数据存放目录为/usr/local/var/nto。为了保证安全,建议以低权限用户nobody身份运行Ntop进程,因此,可能需要对Ntop默认的数据存放目录进行权限调整,执行如下命令即可:

[root@monitor ~]# chown -R nobody /usr/local/var/ntop

通过Ntop的Web页面可以修改Ntop的设置或关闭Ntop服务,但是必须通过管理员用户的验证,Ntop默认的管理员为admin,密码为空,因此,需要为其设置一个密码。通过如下命令即可设置admin用户的密码:

[root@monitor ~]# ntop –A

然后重复输入两次密码即可。

Ntop的Web页面在默认情况下没有访问限制,有时候为了网络的安全,建议设置授权访问,只有授权的主机才能访问此Web页面,这可以通过Linux系统本身的tcp_wrappers功能实现,授权过程如下:

[root@monitor ~]# vim /etc/hosts.allow ntop: 192.168.12.188

[root@monitor ~]# vim /etc/hosts.deny ntop: ALL

这里设置只允许IP地址为192.168.12.188的主机可以访问Ntop的ntop服务,禁止其他所有IP访问。

(2)安装Ntopng

Ntopng是目前Ntop官方的主推版本,可以从http://www.ntop.org/下载目前最新的ntopng源码版本进行编译安装。不过为了安装方便,官方推出了Ntopng的yum源仓库,通过yum源仓库可以轻松安装Ntopng,这里就采用yum源方式进行安装。

1)设置yum源

首先为Ntopng创建一个yum源仓库,内容如下:

[root@localhost ~]# cat /etc/yum.repos.d/ntop.repo

[ntop]

name=ntop packages

baseurl=http://www.nmon.net/centos/$releasever/$basearch/

enabled=1

gpgcheck=1

gpgkey=http://www.nmon.net/centos/RPM-GPG-KEY-deri

然后下载一个epel的yum源:

[root@localhost ~]# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

[root@localhost ~]# rpm –Uvh epel-release-6-8.noarch.rpm

2)安装Ntopng

在设置好两个yum源后,安装Ntopng就变得十分简单了,只需执行如下操作即可:

[root@localhost ~]# yum clean all

[root@localhost ~]# yum update

[root@localhost ~]# yum install pfring n2disk nProbe ntopng ntopng-data nbox

3)配置Ntopng

在Ntopng安装完成后,默认的配置文件模板是/etc/ntopng/ntopng.conf.sample,可以将此文件重命名为ntopng.conf,然后在这个配置文件中添加一些配置信息,例如:

[root@localhost ~]# cat /etc/ntopng/ntopng.conf

-G=/var/tmp/ntopng.gid

--local-networks "192.168.12.0/24"

--interface em2

--user nobody

--http-port 3000

相关参数含义如下:

-G指定存储Ntopng进程号的文件路径。

--local-network指定要监控的本地子网段。

--interface em2指定监听em2网卡上的流量。

--user指定运行Ntopng服务所使用的账户。

--http-port指定Ntopng的Web服务端口号,如果不指定,默认端口为3000。

4)启动Ntopng服务

在启动Ntopng服务之前,需要先启动redis服务。redis主要为Ntopng提供键值存储。下面首先启动redis服务,然后启动Ntopng服务,执行操作如下:

[root@localhost ~]# service redis  start

[root@localhost ~]# service ntopng  start

为了保证redis和Ntopng服务在以后可开机自启动,还需要执行如下操作:

[root@localhost ~]# chkconfig ntopng on

[root@localhost ~]# chkconfig redis on

最后,就可以通过Web方式(http://IP:3000)来访问Ntopng提供的服务了,默认登录用户名和密码均为admin,可在登录后进行修改。

4、Ntop和Ntopng的使用技巧

在完成Ntop安装后,执行如下命令即可启动Ntop服务:

[root@networkserver ~]# ntop -i em1 -L –d

这里通过Ntop命令监控网卡em1的流量状态,在执行此命令后,Ntop服务的日志输出将重定向到系统的/var/log/messages文件中,同时将开启默认的3000端口作为Web界面服务端口,执行http://IP:3000即可访问Ntop提供的Web监控界面。

(1)Web界面下Ntop的使用方法与技巧

Ntop的Web界面主要由7个主栏目组成,下面介绍每个栏目中需要重点关注的功能点。

“About”栏目包括Ntop的简单介绍和一些在线手册等帮助信息。

“Summary”栏目是对目前网络流量的一个整体概况,其中子栏目“Traffic”可以显示全局流量统计,主要包含网络接口流量统计、协议流量分布、应用协议流量统计等,网络流量会以柱面图、曲线图和明细表格的形式展示。图1显示的是L2/L3协议对应的流量分布图。

图1  Ntop根据协议进行的流量分布统计

“Summary”下的子栏目“Host”主要显示所有可监控主机的IP地址、地理位置、MAC地址、数据发送接收量、目前活动连接数等各种信息,在主机流量监控方面,可通过Bytes方式统计,也可以用packets方式统计,要了解每个主机的详细流量信息,只需单击对应的Host便可查看,图2就是某主机在某时刻的流量连接流视图。

图2  通过Ntop展示某主机在某时刻的连接流视图

通过图2可以非常清晰地了解某主机在某时刻的连接状态,中间的竖柱表示的是IP为“125.76.237.248”的这台主机,然后以竖柱为中心,分成左右两个部分,左边部分表示外部IP与“125.76.237.248”这台主机之间的发送、接收数据流量,右边部分表示“125.76.237.248”这台主机与外部IP之间的发送、接收数据流量,连接的宽度表示发送或接收数据量的大小。

在“Summary”下的子栏目“Host”中,在查看每台主机的详细流量页面上有一个按时段的流量统计功能,这个功能非常有用,通过这个统计可以查看某主机在一天任意一个小时内发送、接收的数据流量,同时还可以通过饼状图进行集中汇总。

“Summary”下的子栏目“Network Load”用于网络负载统计,通过该项功能可以查看最近10分钟、一小时、一天、一个月的网络流量信息。图3展示的是一个小时内的网络负载统计。

图3  Ntop展示的一个小时内的网络负载

“All Protocols”栏目主要用于查看各主机发送、接收的数据量,并将数据以TCP、UDP、ICMP的方式进行分类统计。其中,子栏目“Throughput”主要显示所有可见主机的吞吐量,子栏目“Activity”主要显示当前网络可见主机在24小时中每小时的流量状态,并且每个时段根据流量的大小分别用不同的颜色进行标注。

“IP”栏目主要对各台主机中应用层协议产生的流量进行统计。例如,子栏目“Summary”主要对各主机中HTTP、FTP、Mail、SSH、DNS等服务产生的流量进行详细统计,同时还可以统计多播信息、流量分布等;子栏目“Traffic Directions”主要用于统计端到端的流量信息,可以统计本地到本地、本地到远端、远端到本地、远端到远端的流量状态;子栏目“Local”主要是统计局域网络内各主机使用状况,比如可以统计本地路由使用信息、本地端口使用信息、Active Sessions连接信息等。

“Utils”栏目主要包括RRD参数的配置、转存Ntop的统计信息,以及查看Ntop运行日志信息等功能。

“Plugins”栏目用于继承Ntop插件工具,默认安装的插件有NetFlow、rrdPlugin、sFlow等,其中,NetFlow插件可用于设置、激活、停用NetFlow支持,在启用NetFlow后,Ntop就可以统计NetFlow的详细信息,包括NetFlow的格式、数据量及端口流量。而rrdPlugin插件主要用于生成流量图,它比MRTG更灵活,非常适合用shell、perl等程序来调用,以生成所需的图片。sFlow是一种新的网络监测技术,可适应超大网络流量下的流量数据分析,在Ntop中启用sFlow支持后,不但可以降低实施成本,也可以解决网络管理中面临的很多问题。

最后一个栏目“admin”是一个管理选项,访问此栏目时需要提供管理员密码,有Ntop的参数配置、登录Ntop的密码设置、配置用户访问Ntop的页面、Ntop的启动与关闭等几个功能选项。

(2)命令行下Ntop的常用参数

Ntop也可以在命令行下使用。虽然在命令行下没有那么直观,但是添加和修改配置非常迅速,并且还能实现很多Web界面下无法完成的功能。执行“ntop -h”命令即可显示Ntop在命令行下可使用的所有参数信息。在命令行下Ntop常用的参数及含义如表1所示。

表1  命令行下Ntop常用参数含义说明

(3)Ntopng的使用方法与技巧

与Ntop的使用方法类似,Ntopng的Web监控界面更加智能化,功能展示更加统一和人性化。Ntopng的核心功能是实时数据流展示。图4是登录Ntopng后的一个主界面,中间的“Top Flow Talkers”部分就是流量实时展示界面。

图4  Ntopng流量实时监控主界面

从图4可以看出,Ntopng的Web界面主要分为Home、Flows、Hosts和Interfaces四个主栏目。其中“Home”栏目主要是从整体上展示并统计发送、接收的数据流;“Flows”栏目是基于DPI的自动程序或服务探测程序生成的实时数据报告,主要用于统计活跃的数据流,并将数据流以协议类型、应用类型、数据量大小等方式进行详细统计,如图5所示。

图5  Ntopng对活跃数据流的统计

通过图5可以很清晰地看出每条数据流的发送方和接收方,而“Breakdown”列展示了发送和接收数据量的大小,单击右上角的“Applications”按钮,还可以根据不同的应用类型,例如HTTP、ICMP、DNS等,有选择地查看活跃的数据流状态。

“Hosts”栏目显示了所有Ntopng可见的主机信息,可分类显示本地的或远程的主机列表,还可以显示每台主机间的交互信息、本地主机矩阵图等信息,如图6所示。

图6  Ntopng收集到的所有主机列表

在图6中,Ntopng展示了每台主机的主机名、IP地址、主机所处地域(本地或者远程)、数据收集持续时长、发送/接收数据量、主机网络吞吐量、数据传输量等信息。如果想要了解每台主机更详细的统计信息,可以在图6中单击每台主机的IP进入主机详细信息页,如图7所示。

图7  Ntopng对每台主机的详细监控页面

从图7可以看出,每台主机的详细信息页中又分很多小栏目,默认打开的页面展示了此主机的MAC地址、IP地址、操作系统类型、主机名、数据收集的开始截止时间、数据发送和接收量等信息,单击图7中的“Traffic”栏目,可以根据协议类型查看数据的通信量,并且还通过饼状图进行了汇总,如图8所示。

图8  Ntopng根据协议类型进行数据流量统计

在图8中,Ntopng将通信流量以TCP、UDP、ICMP三种协议类型进行分别统计,并且通过饼状图方式进行整体汇总,这对于了解网络中某个通信协议的流量是非常有用的。

单击图7中的“Packets”栏目,可以根据发送、接收包的数量进行流量统计,如图9所示。

图9  Ntopng绘制的数据包发送量、接收量分布图

“Packets”栏目展示的是数据包发送量、接收量的分布图。从图9中可以看到,在发送的数据包中,数据包量高达128的占总发送量的71.2%,在接收的数据包中,数据包量高达256的占总接收量的83.8%,这个功能可以帮助网络管理员判断网络中发送或接收数据包的数据及占据的比例,网络管理员可以据此来判断网络是否存在异常,进而解决潜在的网络问题。

单击图7中的“Protocols”栏目,可以根据应用程序的类型进行流量统计,如图10所示。

图10  Ntopng根据应用程序的类型进行流量统计

图10展示了DNS、HTTP、ICMP、MySQL、SSH等应用协议在一段时间内的发送、接收数据量,哪个应用程序传输的数据量大,哪个传输的数据量小,一目了然。通过此功能,可以迅速发现哪个应用程序存在问题,对于短时间内流量非常大的应用协议,管理员就需要重点关注了。

图7中的“Flows”栏目、“Talkers”栏目、“Current Contacts”栏目都比较浅显易懂,这里不再介绍。最后重点关注下“Historical”栏目,如图11所示,此栏目主要用于将数据流量生成流量图,进而用于分析历史流量数据,可以根据传输协议、应用协议类型等方式选择不同时段来分析数据发送、接收的趋势,通过这些生成的历史流量图,可以分析网络一段时间内的运行状态,并为网络管理和网络故障排除提供依据。

图11  Ntopng生成的历史数据流量图

Ntopng的最后一个主栏目是“Interfaces”,主要用于对监控的网络接口的数据流量进行分析,可以查看监控接口传输数据量的总大小、接收数据包的总个数以及包大小分布状况、每个应用协议产生的流量大小、历史流量数据查询等,可以从整体上了解网络接口的通信状态。

Ntopng也提供了简单的Web管理功能,通过Web界面可以添加、修改、删除管理员用户,还可以将每台主机的数据以JSON的格式导出。

微信公众号:计算机与网络安全

ID:Computer-network

【推荐书籍】

局域网网络流量监控_Linux网络安全运维:网络流量监控与分析工具Ntop和Ntopng相关推荐

  1. 运维人必备:日志分析工具日志易之银行业解决方案

    运维人必备:日志分析工具日志易之银行业解决方案 银行和金融服务行业面临着因为技术革新带来的许多挑战和机遇.系统每天产生数以 TB 计的交易.支付.渠道等各种日志数据.银行机构必须为迅速增长的海量数据建 ...

  2. 网络安全运维人员面临的痛点分析

    1. 工作压力大:网络安全运维人员需要时刻关注系统的安全状况,发现并修复漏洞,保护系统免受攻击和数据泄露的风险.这需要他们不断学习新知识.掌握新技能,并且在短时间内快速响应和处理各种安全问题,这种高强 ...

  3. 局域网网络流量监控_【干货】Linux网络安全运维:网络流量监控与分析工具Ntop和Ntopng...

    本文授权转载自微信公众号:计算机与网络安全,转载请联系授权.对于单台服务器网络故障的排查,iftop工具可以轻松实现,但是在监控一个庞大的服务器网络,并且要分析每台主机以及端口的网络状态时,iftop ...

  4. 运维工作常用的性能分析工具介绍

    在运维工作中常用到的性能分析工具包括:vmstat.sar.iostat.netstat.free.ps.top.mpstat以及第三方开发工具,如:dstat.collectl及淘宝的开源监控项目t ...

  5. linux下进程监控6,系统运维|Linux系统监控神器-Collectl

    系统资源监控 为使系统良好运转,Linux系统管理员经常需要监测cpu,内存,磁盘,网络等系统信息.Linux上已有iotop,top,free,htop,sar等丰富的常规工具来实现监测功能.今天让 ...

  6. 网络安全运维流量攻击分析需要掌握的核心能力有什么

    网络安全运维流量攻击分析需要掌握的核心能力 1.掌握sql注入攻击的流量特征 2.掌握XSS攻击的流量特征 掌握WebShell工具流量特征 3.掌握基于文件上传漏洞攻击的流量特征 4.掌握反序列化攻 ...

  7. 网络运维和网络安全运维就业前景如何?

    随着互联网以及科技的高速发展,衍生出了许多的新奇职业,比如网络运维.网络安全运维.从字面意思理解,两者之间没有什么太大区别,因此很多人很容易将两者混淆.那么网络运维和网络安全运维有什么区别?以下是详细 ...

  8. 网络运维和网络安全运维有什么区别?就业前景如何?

    随着互联网的高速发展,运维安全已经成了大多数企业安全保障的基石.在如今的信息时代,无论是网络运维还是网络安全运维都成了不可缺少的一部分.因此导致很多人都容易把两者弄混淆. 首先我们来了解一下网络运维和 ...

  9. 数字化时代下,智能运维全栈监控解决方案及案例盘点

    云智慧 AIOps 社区是由云智慧发起,针对运维业务场景,提供算法.算力.数据集整体的服务体系及智能运维业务场景的解决方案交流社区.该社区致力于传播 AIOps 技术,旨在与各行业客户.用户.研究者和 ...

最新文章

  1. OTA固件升级对于物联网设备的重要性
  2. 怎么在linux的cmd中运行c项目,如何在cmd窗口编译运行c语言程序?
  3. java线程提交_从Java线程到线程池
  4. 【转】c# 协变与抗变
  5. 不使用杀毒软件就上网也不会感染计算机病毒,【判断题】不使用杀毒软件就上网也不会感染计算机病毒。 A. 正确 B. 错误...
  6. opencv图像处理中的一些滤波器+利用滤波器提取条形码(解析二维码)+公交卡倾斜矫正+物体尺寸丈量
  7. 作者: ​李国杰,中国工程院院士。现任中国科学院计算技术所首席科学家,国家信息化专家咨询委员会信息技术与新兴产业专委会副主任。...
  8. HTML5 API详解(8):worker多线程教你如何避免页面卡死
  9. C++:不同数据类型作为参数传递和作为返回值的例子
  10. mysql 5.6 密码_Mysql5.6 忘记root密码的解决办法
  11. Qt5.12安装错误提示:C:\Qt5.12.11\vcredist\vcredist_msvc2019_x86.exe /norestart /q
  12. python芙蓉数用abs函数_Python调用OpenCV阈值化
  13. php最难,那个PHP中号称最难的‘递归函数’
  14. shell脚本实现Fibonacci数列
  15. MapInfo MIF/MID文件格式描述
  16. 全新的SharePoint 2019
  17. C1083: 无法打开包括文件:“corecrt.h”
  18. 开发板Linux手指滑动方向,移动端 手指滑动方向获取
  19. 题解 P3588 [POI2015]PUS
  20. 【Qt】QMainWindow应用程序窗口类简单介绍

热门文章

  1. 使用JCreator进行servlet程序的开发
  2. Revit插件 | 建模助手插件框架重大更新
  3. 关于c语言在循环赋值字符时出现乱码情况
  4. 不能对Revit插件进行强签名
  5. 计算机应用基础简化版,电大宝典1200《计算机应用基础》期末考试题库简化版2020年1月年最新(00808).pdf...
  6. Java通过HttpClient4实现Https Get/Post请求
  7. linux php域名解析,linux下用dnspod实现动态域名解析(可用于Tomato等路由器)
  8. 对ReadFile堵塞进行异步处理
  9. 企业电子招标采购系统源码
  10. android判断不同手机厂商,打开允许后台运行APP弹窗