應(yīng)用開(kāi)源工具監(jiān)控企業(yè)局域網(wǎng)安全:原理及準(zhǔn)備工作
企業(yè)除了需要具備系統(tǒng)和設(shè)備的監(jiān)控功能外,還需要對(duì)其網(wǎng)絡(luò)使用狀況進(jìn)行周密的監(jiān)控、處理和優(yōu)化,才能切實(shí)地保證企業(yè)信息安全。在企業(yè)級(jí)Linux操作系統(tǒng)中,提供了許多優(yōu)秀的開(kāi)源網(wǎng)絡(luò)監(jiān)控工具輔助網(wǎng)絡(luò)管理人員和信息安全工作人員來(lái)進(jìn)行網(wǎng)絡(luò)監(jiān)控和管理。因此,本文將挑選一個(gè)企業(yè)應(yīng)用最為廣泛和穩(wěn)定的Cacti工具來(lái)進(jìn)行介紹。
Cacti主要功能簡(jiǎn)介
Cacti是一個(gè)隨著時(shí)間推移(時(shí)間序列數(shù)據(jù))用圖表顯示系統(tǒng)和網(wǎng)絡(luò)信息的網(wǎng)絡(luò)監(jiān)測(cè)工具,并提供一個(gè)全功能的Web界面,可以瀏覽和檢查網(wǎng)絡(luò)設(shè)備的實(shí)時(shí)性能。例如,可以配置Cacti來(lái)監(jiān)控經(jīng)過(guò)本地服務(wù)器上的網(wǎng)絡(luò)端口、本地網(wǎng)絡(luò)上的交換機(jī)和路由器端口的網(wǎng)絡(luò)流量。Cacti圖形提供網(wǎng)絡(luò)各個(gè)部分的流量級(jí)別信息。例如,當(dāng)網(wǎng)絡(luò)速度很慢時(shí),可以參考?xì)v史圖表,查看是否發(fā)生了任何超出普通網(wǎng)絡(luò)流量的事情,Cacti可以收集CPU利用率、磁盤(pán)空間使用率、Web服務(wù)器上的頁(yè)面瀏覽量和本地網(wǎng)絡(luò)上的幾乎所有其它數(shù)據(jù)。
Cacti收集隨著時(shí)間推移的基線(典型值)數(shù)據(jù)??梢允褂眠@些信息來(lái)增加對(duì)系統(tǒng)和網(wǎng)絡(luò)實(shí)時(shí)行為的洞察力,并幫助解決問(wèn)題。這些信息甚至可以預(yù)測(cè)未來(lái)可能發(fā)生的事情(例如,當(dāng)磁盤(pán)很可能被占滿時(shí))。當(dāng)安裝并配置Cacti時(shí),它會(huì)定期輪詢網(wǎng)絡(luò)設(shè)備以獲取所需數(shù)據(jù),并把數(shù)據(jù)存儲(chǔ)在RRD文件,用于RRDtool(輪循數(shù)據(jù)庫(kù)工具)。Cacti Web界面允許瀏覽設(shè)備和圖形列表,并可看到隨著時(shí)間推移的設(shè)備的可視化表示。
Cacti是下一代監(jiān)測(cè)工具的一部分。它是在從以往工具吸取教訓(xùn)的基礎(chǔ)上構(gòu)建的,如MRTG和Cricket工具。這些工具都具有以下功能:
定期輪詢跟蹤設(shè)備數(shù)據(jù)。收集這些數(shù)據(jù)最常用的工具是SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議; www.net- snmp.org)。
把數(shù)據(jù)存儲(chǔ)在一個(gè)RRD文件。
具有Web界面,可以檢查從存儲(chǔ)數(shù)據(jù)生成的圖表。這些圖表通常顯示每天、每周、每月和每年的信息。
Cacti的配置是通過(guò)其Web界面來(lái)實(shí)現(xiàn)的,而MRTG和Cricket的配置是通過(guò)編輯文本文件來(lái)實(shí)現(xiàn)。RRD文件和RRDtool是Cacti許多功能的關(guān)鍵。Cacti網(wǎng)站將Cacti描述為“完整的基于RRDtool的圖形解決方案。”RRD文件存儲(chǔ)有效的時(shí)間序列數(shù)據(jù),通過(guò)使用聚合功能,更容易保存最近時(shí)間段的大量細(xì)節(jié)信息,但逐漸減少Cacti文件中時(shí)間較長(zhǎng)的細(xì)節(jié)數(shù)據(jù)。RRDtool可以很容易地從RRD文件產(chǎn)生既簡(jiǎn)單又復(fù)雜的圖形。
使用前準(zhǔn)備
1. 配置SNMP
如果想監(jiān)控本地系統(tǒng)上的數(shù)據(jù)源,首先在本地系統(tǒng)上安裝和運(yùn)行SNMP守護(hù)進(jìn)程。
2. 設(shè)置LAMP
Cacti是一個(gè)LAMP(Linux、Apache、MySQL和PHP)應(yīng)用程序,在配置Cacti之前必須安裝和配置這些應(yīng)用程序。本節(jié)說(shuō)明如何在運(yùn)行Cacti的系統(tǒng)上設(shè)置該軟件。默認(rèn)情況下,Cacti設(shè)置本地系統(tǒng)來(lái)運(yùn)行Cacti,并作為數(shù)據(jù)源。
設(shè)置LAMP時(shí)使用名為mysql和cacti的MySQL數(shù)據(jù)庫(kù)。安裝MySQL時(shí)Fedora/RHEL設(shè)置mysql數(shù)據(jù)庫(kù)。需要設(shè)置以下數(shù)據(jù)庫(kù)用戶。每個(gè)帳戶都應(yīng)該有密碼:
為mysql數(shù)據(jù)庫(kù)設(shè)置root用戶。此用戶必須被命名為root。MySQL安裝腳本設(shè)置這個(gè)用戶。
為mysql數(shù)據(jù)庫(kù)設(shè)置cactiuser用戶??梢愿拇擞脩裘獵acti安裝時(shí),設(shè)置Cacti使用cactiuser。
為cacti數(shù)據(jù)庫(kù)設(shè)置Cacti管理用戶。正如安裝Cacti時(shí)的設(shè)置,此用戶具有admin用戶名和admin密碼??梢栽O(shè)置另外的Cacti用戶帳戶。
1)事先安裝軟件包
安裝以下軟件包:
cacti(僅Fedora; 從fedoraproject.org/wiki/EPEL下載RHEL的Cacti) mysql mysql-server php(和cacti一起安裝) httpd(Apache與cacti一起安裝) rrdtool(與cacti一起安裝) net-snmp(可選;只需要監(jiān)視本地系統(tǒng)) net-snmp-utils(可選)
2)防火墻設(shè)置
snmpd守護(hù)程序運(yùn)行在由Cacti監(jiān)控的系統(tǒng)上,使用UDP端口161。如果監(jiān)控系統(tǒng)運(yùn)行著防火墻或在防火墻后面,則必須打開(kāi)此端口。使用system-config-firewall,選擇“其它端口”選項(xiàng)卡,勾選User Defined復(fù)選框,并添加UDP端口161。如果想從沒(méi)有運(yùn)行Cacti的系統(tǒng)上的瀏覽器中使用Cacti,則需要在運(yùn)行Cacti的系統(tǒng)上打開(kāi)TCP端口80。
3)SELinux設(shè)置
當(dāng)設(shè)置SELinux使用目標(biāo)策略時(shí),httpd(系統(tǒng)上運(yùn)行Cacti)和snmpd(在被監(jiān)測(cè)的系統(tǒng)上)都由SELinux保護(hù)。如果有必要,可以禁用此保護(hù)。
4)配置MySQL
安裝MySQL,運(yùn)行chkconfig,并啟動(dòng)mysqld守護(hù)進(jìn)程。一定要通過(guò)使用mysql_secure_installation或mysqladmin為MySQL的root用戶指定密碼。
5)創(chuàng)建cacti數(shù)據(jù)庫(kù)
下一步使用以下命令來(lái)創(chuàng)建cacti數(shù)據(jù)庫(kù),創(chuàng)建mysql數(shù)據(jù)庫(kù)的cactiuser用戶,授予該用戶必要的權(quán)限,并給該用戶分配密碼。用你選擇的密碼替換以下例子中的cactipassword。盡管FLUSH PRIVILEGES語(yǔ)句不是必需的,但最好包含它。
# mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.5.10 MySQL Community Server (GPL) ... mysql> CREATE DATABASE cacti; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL ON cacti.* -> TO cactiuser@localhost -> IDENTIFIED BY 'cactipassword'; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye
6)設(shè)置和移植cacti數(shù)據(jù)庫(kù)
使用下面的命令來(lái)設(shè)置和移植cacti數(shù)據(jù)庫(kù)。當(dāng)MySQL提示輸入密碼,提供MySQL的root用戶密碼(不是MySQL的cactiuser用戶)。
# mysql -p cacti < /usr/share/doc/cacti*/cacti.sql Enter password:
如果有SQL語(yǔ)法錯(cuò)誤,上述命令會(huì)失敗。要解決這個(gè)錯(cuò)誤,編輯cacti.sql并刪除出現(xiàn)的所有字符串TYPE=MyISAM(即用空字符串替代每個(gè)TYPE=MyISAM字符串:s/TYPE=MyISAM//)。
在安裝時(shí),/etc/cacti/db.php文件中的大多數(shù)信息都是正確的。編輯這個(gè)文件來(lái)更改賦予$database_password的值,從cactiuser更改為創(chuàng)建cacti數(shù)據(jù)庫(kù)時(shí)(MySQL 的cactiuser用戶的密碼)為cactipassword使用的相同值。不要更改賦予$database_username的值。
$database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cactiuser"; $database_port = "3306";
7)配置 Apache
安裝Apache并運(yùn)行chkconfig并使用service來(lái)啟動(dòng)httpd守護(hù)進(jìn)程。Cacti提供該內(nèi)容。/etc/httpd/conf.d/cacti.conf文件控制Apache服務(wù)器上Cacti的位置和可訪問(wèn)性。默認(rèn)情況下,Cacti提供127.0.0.1/cacti(基于別名聲明),只有127.0.0.1上的用戶(非localhost;基于Allow from語(yǔ)句)可以訪問(wèn)Cacti。默認(rèn)的cacti.conf文件如下:
$ cat /etc/httpd/conf.d/cacti.conf # # Cacti: An rrd based graphing tool # Alias /cacti /usr/share/cacti < Directory /usr/share/cacti/> Order Deny,Allow Deny from all Allow from 127.0.0.1 < /Directory>
要遵循本節(jié)中的例子,立即在Allow from 127.0.0.1下面添加Allow from localhost行??梢蕴砑宇~外的行以允許從其它系統(tǒng)訪問(wèn)。以下的容器允許從127.0.0.1、localhost以及位于172.16.192.150的遠(yuǎn)程系統(tǒng)來(lái)訪問(wèn):
Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from localhost Allow from 172.16.192.150 < /Directory>