科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道构建网络安全长城之安全的管理(中)

构建网络安全长城之安全的管理(中)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

构建安全的网络长城,除了坚实的“城墙”、机警的“烽火台”,还要有“内明军纪,赏罚分明”的“检测官”才能管理好部下的工作。作为一个优秀的网管,不仅要对来自内外的入侵活动随时监控,而且要对自己内部的网络设备的使用情况保持关注。

来源:论坛整理 2008年7月20日

关键字: 攻击防范 安全防范 网络安全

  • 评论
  • 分享微博
  • 分享邮件

好了,休息一下,去忙忙别的,等你回来的时候,是不是发现漂亮的走线图(图三)已经形成了?



图 三

如上图所示,笔者这里的的star(实达)交换机的资料、流量、持续工作时间、最大流量等等都以中文的方式显示出来,可以方便地查询与分析了。

这里笔者只以一台获取交换机为例,简单介绍了mrtg的使用方法,其实mrtg更可以监视router、打印机、服务器、甚至ups电源等设备。当您使用mrtg来查看网络中大量设备的流量和负载情况的时候,您才会真正体会到它的方便之处。

5、本机信息的监管

或许您跟笔者一样,您的这台NMS同时也担任着内网中其他的服务,您也想将该机的CPU、内存和网卡流量都记录下来,方便监视,利用mrtg和snmp服务,我们自己再配合写两个小的shell脚本,就能完成上面的功能了。

A.获取本机网卡流量

在前面,我们已经安装snmp包,现在让我们来配置/etc/snmp/snmpd.conf文件,使其能配合mrtg很好地工作了。

首先,编辑/etc/snmp/snmpd.conf文件:

[root@ netserver bin]#vi /etc/snmp/snmpd.conf
把下面一行前面的#号去掉:
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

把以下语句的语句:
access notConfigGroup "" any noauth exact systemview none none
改成:
access notConfigGroup "" any noauth exact mib2 none none

接下来我们启动snmpd服务

[root@ netserver bin]#snmpd

如果想要每次开机的时候就自动执行snmpd,请

[root@ netserver bin]#setup

然后将System services下面的snmpd服务打开

接下来,我们用与刚才设置交换机相似的步骤来进行。

新建立一个目录来存放net相关信息:

[root@ netserver bin]#mkdir –p /var/www/html/mrtg/local/net
[root@ netserver bin]# ./cfgmaker public@你本机的ip > /var/www/html/mrtg/local/net /mrtg.cfg

修改自动生成的mrtg.cfg文件(因为和上面的交换机的设置类似,就不解释了)
[root@ netserver bin]#vi /var/www/html/mrtg/local/net/mrtg.cfg

修改以下几行为(没有的请添加)

WorkDir: /var/www/html/mrtg/local/net
Options[_]:growright,bits
Language:Chinese
Refresh: 300
WriteExpires: Yes

运行mrtg:

执行以下命令3次(前两次会提示一些警告信息,不用理会)

[root@ netserver bin]#./mrtg /var/www/html/mrtg/local/net/mrtg.cfg

这里我们就不生成index.html页面了,等一下自己手工编写一个,将cpu和内存的放在一起,方便查看一些。
B.获取本机CPU使用情况

新建立一个目录来存放net相关信息:

[root@ netserver bin]#mkdir –p /var/www/html/mrtg/local/cpu

手工编辑一个mrtg.cfg文件:

[root@ netserver bin]#vi /var/www/html/mrtg/local/cpu/mrtg.cfg

输入以下内容:

#/var/www/html/mrtg/local/cpu/mrtg.cfg
WorkDir: /var/www/html/mrtg/local/cpu
Language:chinese
EnableIPv6: no
Refresh: 300
WriteExpires: Yes

Target[CPU]: `/var/www/html/mrtg/local/cpu/cpu.sh` #调用的外部脚本命令的地址,等一下我会给出cpu.sh的代码
MaxBytes[CPU]: 100 #限制绘图的最大值,CPU Loading 的最高值就是100%
Title[CPU]: CPU Watch #生成的HTML 网页的窗口标题
PageTop[CPU]: <H1> CPU Watch</H1> #生成的HTML 网页的主标题
Options[CPU]: gauge,nopercent,growright
Ylegend[CPU]: CPU Loading (%) #图表的Y轴的名称
YSize[CPU]: 100 #Y轴的最大值
ShortLegend[CPU]: % #定义的标准單位(此处为%)
LegendI[CPU]: CPU USER # CPU USER表示用户负载,CPU SYSTEM表示系统负载
LegendO[CPU]: CPU SYSTEM #注意,Legend后面是字母I和O,不是数字,mrtg中它们本来是表示Input 和 Output的,这里被我借用了过来的

好,接下来让我们写一个获取我们所需要值的脚本文件cpu.sh

[root@ netserver bin]#vi /var/www/html/mrtg/local/cpu/cpu.sh

脚本内容如下:

#!/bin/bash
tmp=`sar -u 1 5 | tail -n 1`

#上面一句的sar –u 1 5 表示以1秒为单位,连续取5次cpu的负载,这样得到的平均值更加准确一些:

cpuuser=`echo $tmp | awk ' {print $3}' `
cpusystem=`echo $tmp | awk ' {print $5}' `
echo $cpuuser
echo $cpusystem
echo 0
echo 0#因为我没有取当前时间和系统已运行的时间,所以这里取两个0,读者朋友可以试一下取消他们输出的html会变成怎样

然后改变cpu.sh的权限为755:

[root@ netserver bin]#chmod 755 /var/www/html/mrtg/local/cpu/cpu.sh

运行mrtg,执行以下命令3次(前两次会提示一些警告信息,不用理会)

[root@ netserver bin]#./mrtg /var/www/html/mrtg/local/cpu/mrtg.cfg

C.获取本机内存/Swap使用情况

与上面一个例子很类似,我给出操作,只解释不同的地方:

[root@ netserver bin]#mkdir –p /var/www/html/mrtg/local/memory

手工编辑一个mrtg.cfg文件:

[root@ netserver bin]#vi /var/www/html/mrtg/local/memorty/mrtg.cfg

输入以下内容:

WorkDir: /var/www/html/mrtg/local/memory
Language:chinese
EnableIPv6: no
Refresh: 300
WriteExpires: Yes

Target[MEMORY]: `/var/www/html/mrtg/local/memory/memory.sh`
MaxBytes[MEMORY]: 100
Title[MEMORY]: Memory & Swap Watch
PageTop[MEMORY]: <H1> Memory & Swap Watch</H1>
Options[MEMORY]: gauge,growright
Ylegend[MEMORY]: Used (%)
YSize[MEMORY]: 100
ShortLegend[MEMORY]: %
LegendI[MEMORY]: Used Memory
LegendO[MEMORY]: Used Swap

接下来是一个小脚本程序memory.sh:

[root@ netserver bin]#vi /var/www/html/mrtg/local/memory/memory.sh

脚本内容如下:

#!/bin/bash
tmp=`sar -r 1 5 | tail -n 1`
#上面一句的sar –r 1 5 表示以1秒为单位,连续取5次内存和Swap的负载,这样得到的平均值更加准确一些
memory=`echo $tmp | awk ' {print $4}' `
swap=`echo $tmp | awk ' {print $10}' `
echo $memory
echo $swap
echo 0
echo 0

然后改变memory.sh的权限为755:

[root@ netserver bin]#chmod 755 /var/www/html/mrtg/local/memory/memory.sh

运行mrtg,执行以下命令3次(前两次会提示一些警告信息,不用理会)

[root@ netserver bin]#./mrtg /var/www/html/mrtg/local/memory/memory.cfg

D.获取本机CPU和I/O电压情况

由于我们的NMS很可能同时也是一台服务器,例如笔者用HP Netserver LH6000作为NMS,一旦CPU/主板烧毁,维护价格不低,因此随时获得该机器的电压/风扇/温度等情况以方便我监视管理是非常必要的。

首先,让我们将lm_sensors使用起来。

[root@ netserver bin]# sensors-detect

之后会询问一些问题,各位可以自行决定,当然如果觉得麻烦,可以一路回车就行了。最后出现类似如下信息:

WARNING! If you have some things built into your kernel, the
below list will contain too many modules. Skip the appropriate ones!
To load everything that is needed, add this to some /etc/rc* file:

#----cut here----
# I2C adapter drivers
modprobe i2c-isa
# I2C chip drivers
modprobe via686a
#----cut here----

To make the sensors modules behave correctly, add these lines to either
/etc/modules.conf or /etc/conf.modules:

#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----
(根据各位机器不同,所以也会有差异)
[root@ netserver bin]#vi /etc/rc.local

将下面部分(这是上面的第一段cut中的部分,具体内容请根据您测试出的结果为准)加入,以方便开机就能引导:

# I2C adapter drivers
modprobe i2c-isa
# I2C chip drivers
modprobe via686a
[root@ netserver bin]#vi /etc/modules.conf

将下面部分(这是上面的第二段cut中的部分,具体内容请根据您测试出的结果为准)加入,以方便开机加载:

alias char-major-89 i2c-dev

之后,请重新启动计算机:

[root@ netserver bin]#reboot

重新启动后,输入sensors命令查看主版信息

[root@ netserver root]# sensors

如果出现了类似:

CPU core: +1.59 V (min = +0.00 V, max = +2.18 V)
+2.5V: +2.40 V (min = +2.24 V, max = +2.74 V)
I/O:  +3.25 V (min = +2.95 V, max = +3.62 V)
+5V:  +4.92 V (min = +4.47 V, max = +5.49 V)
+12V: +11.27 V (min = +10.79 V, max = +13.18 V)
CPU Fan:  6428 RPM (min = 3000 RPM, div = 2)
P/S Fan:  0 RPM (min = 3000 RPM, div = 2)

这样的消息,表示我们已经成功了。

下来,让我们将它和mrtg配合起来工作:

[root@ netserver root]#cd /usr/local/mrtg/bin

与上面的思路类似,我给出操作,只解释不同的地方:

[root@ netserver bin]#mkdir –p /var/www/html/mrtg/local/vol

手工编辑一个mrtg.cfg文件

[root@ netserver bin]#vi /var/www/html/mrtg/local/vol/mrtg.cfg
输入以下内容:

WorkDir: /var/www/html/mrtg/local/vol
Language:chinese
Refresh: 300
WriteExpires: Yes

Target[VOL]: `/var/www/html/mrtg/local/vol/vol.sh`
MaxBytes[VOL]: 4000
Title[VOL]: CPU & I/O Voltage Watch
PageTop[VOL]: <H1> CPU & I/O Voltage Watch </H1>
Options[VOL]: gauge,growright
Ylegend[VOL]: Voltage (mV) #请注意这里的单位是毫伏哦
YSize[VOL]: 100
ShortLegend[VOL]: mV
LegendI[VOL]: CPU Voltage
LegendO[VOL]: I/O Voltage

接下来是一个小脚本程序vol.sh

[root@ netserver bin]#vi /var/www/html/mrtg/local/vol/vol.sh

脚本内容如下:

#!/bin/bash
sensors > vol.temp
tmp1=`grep 'CPU core' vol.temp | awk ' {print $3}'`
cpu_core_vol=`expr substr $tmp1 2 4`
echo $cpu_core_vol*1000 | bc #为精确表示电压,我采用毫V作为电压单位
tmp2=`grep 'I/O' vol.temp | awk ' {print $2}'`
io_vol=`expr substr $tmp2 2 4`
echo $io_vol*1000 | bc
echo 0
echo 0

然后改变vol.sh的权限为755:

[root@ netserver bin]#chmod 755 /var/www/html/mrtg/local/vol/vol.sh

运行mrtg,执行以下命令3次(前两次会提示一些警告信息,不用理会)

[root@ netserver bin]#./mrtg /var/www/html/mrtg/local/vol/mrtg.cfg

E.获取本机风扇CPU和显卡风扇转速情况 (基本和上面相似,只有mrtg.cfg和sh脚本文件不同,所以不解释)

[root@ netserver bin]#mkdir –p /var/www/html/mrtg/local/fan
[root@ netserver bin]#vi /var/www/html/mrtg/local/fan/mrtg.cfg

输入以下内容:

WorkDir: /var/www/html/mrtg/local/fan
Language:chinese
Refresh: 300
WriteExpires: Yes

Target[FAN]: `/var/www/html/mrtg/local/fan/fan.sh`
MaxBytes[FAN]: 8000
Title[FAN]: CPU & P/S Fan Watch
PageTop[FAN]: <H1> CPU & P/S Fan Watch </H1>
Options[FAN]: gauge,growright
Ylegend[FAN]: FAN (RPM)
YSize[FAN]: 100
ShortLegend[FAN]: RPM
LegendI[FAN]: CPU Fan
LegendO[FAN]: P/S Fan

接下来是一个小脚本程序fan.sh:

[root@ netserver bin]#vi /var/www/html/mrtg/local/temp/temp.sh

脚本内容如下:

#!/bin/bash
sensors > fan.temp
grep 'CPU Fan' fan.temp | awk ' {print $3}'
grep 'P/S Fan' fan.temp | awk ' {print $3}'
echo 0
echo 0

然后改变fan.sh的权限为755:

[root@ netserver bin]#chmod 755 /var/www/html/mrtg/local/fan/fan.sh

运行mrtg,执行以下命令3次(前两次会提示一些警告信息,不用理会)

[root@ netserver bin]#./mrtg /var/www/html/mrtg/local/fan/mrtg.cfg

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章