四、安全使用NTOP
Ntop可以监测的数据包括:网络流量、使用协议、系统负载、端口情况、数据包发送时间等。透过它﹐基本上所有进出数据都无所遁形,不管拿来做例行的网络监测工作﹐还是拿来做报告﹐都是非常优秀的工具,让您的网络流量透明化。它工作的时候就像一部被动声纳,默默的接收看来自网络的各种信息,通过对这些数据的分析,网络管理员可以深入了解网络当前的运行状况。不过﹐由于ntop本质上是嗅探器,它是一把双刃剑﹐如何保护这些信息只能给授权的人士获得﹐将变得额外重要。
1.经常查看ntop的进程和日志
经典的信息保密性安全模型Bell-LaPadula模型指出,进程是整个计算机系统的一个主体,它需要通过一定的安全等级来对客体发生作用。进程在一定条件下可以对诸如文件、数据库等客体进行操作。如果进程用作其他不法用途,将给系统带来重大危害。在现实生活当中,许多网络黑客都是通过种植“木马”的办法来达到破坏计算机系统和入侵的目的,而这些“木马”程序无一例外的是需要通过进程这一方式在机器上运行才能发挥作用的。要切实保证计算机系统的安全,我们必须对其进程进行监控和保护。 Linux系统提供了who、w、ps和top等察看进程信息的系统调用,通过结合使用这些系统调用,我们可以清晰地了解进程的运行状态以及存活情况,从而采取相应的措施,来确保Linux系统的安全。它们是目前在Linux下最常见的进程状况查看工具,它们是随 Linux套件发行的,安装好系统之后,用户就可以使用。Linux 日志都以明文形式存储,所以您不需要特殊的工具就可以搜索和阅读它们。您还可以编写脚本,来扫描这些日志,并基于它们的内容去自动执行某些功能。Linux 日志存储在 /var/log 目录中。这里有几个由系统维护的日志文件,但其他服务和程序也可能会把它们的日志放在这里。大多数日志只有 root 才可以读,ntop的日志文件查看非常方便使用,用鼠标点击“Utile”-“view log”按钮即可。如图11。
 
安全实现Linux网络监控(4)_职场
图11 ntop日志界面
2. 进行web访问认证
缺省情况下,编译Apache时自动加入mod_auth模块,利用此模块可以实现“用户名+密码”以文本文件为存储方式的认证功能。

1.修改Apache的配置文件/usr/local/apache/conf/httpd.conf,对认证资源所在的目录设定配置命令。下例是对/usr/local/apache/htdocs/ntop目录的配置:

 
 <Directory /usr/local/apache/htdocs/ntop>

Options Indexes FollowSymLinks

allowoverride authconfig  #表示允许对/usr/local/apache/htdocs/ntop目录下的文件进行用户认证#

order allow,deny

allow from all

/Directory>


2.在限制访问的目录/usr/local/apache/htdocs/ntop下建立一个文件.htaccess,其内容如下:

 
 AuthName ""

 AuthType basic

 AuthUserFile/usr/local/apache/ntop.txt

 require ntop #ntop用户可以访问#


3.利用Apache附带的程序htpasswd,生成包含用户名和密码的文本文件:/usr/local/apache/ntop.txt,每行内容格式为“用户名:密码”。

 
 #cd /usr/local/apache/bin

 #htpasswd -bc ../ntop.txt user1 234xyx14
欲了解htpasswd程序的帮助,请执行htpasswd –h
4.重新启动Apache服务器
然后在浏览器中输入localhost访问新建好的站点。这时就会要求输入用户名和密码。
3. 加密连接Ntop
    SSL使用公共密钥加密技术,服务器在连接结束时给客户端发送公用密钥用来加密信息,而加密的信息只有服务器用它自己持有的专用密钥才能解开。客户端用公用密钥加密数据,并且发送给服务端自己的密钥,以惟一确定自己,防止在系统两端之间有人冒充服务端或客户端进行欺骗。加密的HTTP连接用443端口号代替80端口号,以区别于普通的不加密的HTTP。客户端使用加密HTTP连接时会自动使用443端口而不是80端口,这使得服务端更容易作出相应的响应。SSL 验证和加密的具体过程如下:
1. 用户使用浏览器,访问Web 服务器站点,发出SSL 握手信号;
2. Web 服务器发出回应,并出示服务器证书(公钥),显示系统Web 服务器站点身份;
3. 浏览器验证服务器证书,并生成一个随机的会话密钥,密钥长度达到128 位;
4. 浏览器用Web 服务器的公钥加密该会话密钥;
5. 浏览器将会话密钥的加密结果发送Web 给服务器;
6. Web 服务器用自己的私钥解密得出真正的会话密钥;
7. 现在浏览器和Web 服务器都拥有同样的会话密钥,双方可以放心使用这个会话密钥来加密通讯内容。
8. 安全通讯通道建立成功。
NTOP支持SSL加密连接,为了防止非授权用户查看NTOP提供的网络信息,您可以使用SSL加密连接NTOP服务器与浏览器的数据。首先修改配置文件/etc/ntop.conf,使用以下选项:
--user ntop
### Sets the directory that ntop runs from.
--db-file-path /var/ntop
### Interface(s) that ntop will capture on (default: eth0)
#--interface eth0
### Configures ntop not to trust MAC addrs.  This is used when port mirroring or SPAN
#--no-mac
### Logging messages to syslog (instead of the console):
###  NOTE: To log to a specific facility, use --use-syslog=local3
###  NOTE: The = is REQUIRED and no spaces are permitted.
--use-syslog
### Tells ntop to track only local hosts as specified by the --local-subnets option
#--track-local-hosts
### Sets the port that the HTTP webserver listens on
###  NOTE: --http-server 3000 is the default
#--http-server 3000
###表示使用https连接#

--https-server 3001
### Sets the networks that ntop should consider as local.
###  NOTE: Uses dotted decimal and CIDR notation. Example: 192.168.0.0/24
###        The addresses of the interfaces are always local and don't need to be specified.
#--local-subnets xx.xx.xx.xx/yy
 
### Sets the domain.  ntop should be able to determine this automatically.
#--domain mydomain.com
### Sets program to run as a daemon
###  NOTE: For more than casual use, you probably want this.
#--daemon
然后使用命令启动https连接和ntop服务器。
apachectl stop
apachectl startssl
ntop start
注意此时使用的3001端口。
https:// IP地址或者域名:3001/    此时屏幕提示见图12。
安全实现Linux网络监控(4)_安全_02
12 https 安全性提示的界面
点击接受按钮,即可进入SSL加密页面,注意浏览器位置栏和右下角的安全标志。见图13。
安全实现Linux网络监控(4)_安全_03
16-14 加密连接界面
SSL加密技术可以使NTOP提供的信息更加安全。只有授权用户可以查看。说明:在IE浏览器只有右下角的安全标志。
2.ntop功能总结
ntop能够显示基于IP地址的带宽占用情况,帮助网络管理员迅速定位恶意抢占网络带宽的用户和应用,还能基于协议的类型进行统计并生成直观的图表,帮助网络管理员了解业务流量的组成和比例,进而以此为依据来优化网络。
网络服务器的资料总流量(网卡的资料传送总数),以及CPU使用率和特殊服务等的封包传送率(或者说是流量),都是网络管理人员所必须要注意的事项,当流量发生异常变化的时候,就需要注意可能有黑客在尝试窃取我们的信息。另外在网络管理方面,有必要了解我们Linux服务器的网络流量状态,并视流量来加以限制或者是加大带宽。 本文介绍的NTOP是开源软件,但我觉得它比起其它的商业管理软件来说真的是毫不逊色。
总结: 如果作为一名普通网络用户,在浩瀚的互联网畅游之时,没有人会注意到平静的海面下其实暗流汹涌。一般来说,网络管理者所需要了解的是各个网段的使用情形,频宽的使用率,网络问题的瓶颈发生于何处。当网络问题发生时,必须能够很快地区隔出问题的发生原因,迅速定位到线路问题、网络设备问题、或者是路由和放火墙的设定问题。在一个稍微较小的网络中,一个有经验的管理者要回答这些问题并不难,但是如果其所管理的网络范围过于庞大,那么就可能需要一个有效率的网管系统了。在业务繁忙的工作网络中,网络突然缓慢,在重要数据往来的工作时间段,留给系统管理员的响应时间只有宝贵的十几分钟、甚至几分钟。如果你不能回答网络为什么缓慢?必须在经过科学合理的计算和统计,并且在预先建立的流量分析系统中才能找到答案