自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux平臺Snort入侵檢測系統(tǒng)實(shí)戰(zhàn)指南

安全 網(wǎng)站安全
我們都知道,企業(yè)的網(wǎng)絡(luò)目前威脅主要來自兩個位置:一個是內(nèi)部,一個是外部。來自外部的威脅都能被防火墻所阻止,但內(nèi)部的攻擊都不好防范。因?yàn)楣緝?nèi)部人員對系統(tǒng)了解很深且有合法訪問權(quán)限,所以內(nèi)部攻擊更容易成功。

我們都知道,企業(yè)的網(wǎng)絡(luò)目前威脅主要來自兩個位置:一個是內(nèi)部,一個是外部。來自外部的威脅都能被防火墻所阻止,但內(nèi)部的攻擊都不好防范。因?yàn)楣緝?nèi)部人員對系統(tǒng)了解很深且有合法訪問權(quán)限,所以內(nèi)部攻擊更容易成功。

IDS為信息提供保護(hù),已經(jīng)成為深度防御策略中的重要部分。IDS與現(xiàn)實(shí)世界里的防竊報警裝置類似,它們都對入侵進(jìn)行監(jiān)控,當(dāng)發(fā)現(xiàn)可疑行為時,就向特定的當(dāng)事人發(fā)出警報。IDS分為兩類:主機(jī)IDS(HIDS)和網(wǎng)絡(luò)IDS(NIDS)。HIDS安裝在受監(jiān)控主機(jī)上,擁有對敏感文件的訪問特權(quán)。HIDS利用這一訪問特權(quán)對異常行為進(jìn)行監(jiān)控。NIDS存在于網(wǎng)絡(luò)中,通過捕獲發(fā)往其他主機(jī)的流量來保護(hù)大量網(wǎng)絡(luò)設(shè)施。

HIDS和NIDS都有各自的優(yōu)點(diǎn)和缺點(diǎn),完整的安全解決方案應(yīng)包括這兩種IDS,對于這一點(diǎn)比較難做到。不了解這一領(lǐng)域的人常常認(rèn)為IDS就像一把萬能鑰匙,能解決所有安全問題。例如有的單位花了大筆的錢購置了商業(yè)IDS由于配置不當(dāng)反而搞得連連誤報,一下子就把數(shù)據(jù)庫塞滿了大量丟包進(jìn)而崩潰。這種態(tài)度使人們以為只要將IDS隨便安放在網(wǎng)絡(luò)中就萬事大吉了,不必?fù)?dān)心任何問題,實(shí)際上遠(yuǎn)非如此。沒有人會認(rèn)為Email服務(wù)器直接連在Internet上就能正確運(yùn)作。同樣,你也需要正確的計(jì)劃IDS策略,傳感器的放置。下文以開源軟件Snort的安裝與維護(hù)為例,介紹正確地安裝和維護(hù)IDS的思路和方法。

安裝Snort

1、安裝準(zhǔn)備工作

我們在安裝前我們要知道我們需要監(jiān)控的內(nèi)容,理想的狀況是對一切進(jìn)行監(jiān)控。所有網(wǎng)絡(luò)設(shè)備和任何從外部到企業(yè)的連接都處在Snort的監(jiān)視之下。盡管這一計(jì)劃對小公司只有幾十臺機(jī)器是很可能實(shí)現(xiàn)的,但是當(dāng)大型企業(yè)中連接上天臺網(wǎng)絡(luò)設(shè)備時,這成了難以施展的艱巨任務(wù)。

為了加強(qiáng)snort檢測的安全性,最好能為監(jiān)控網(wǎng)段提供獨(dú)立的智能交換機(jī),如果你需要配置分布式的配置,可以吧服務(wù)器和控制臺接在一個交換機(jī)上,二其他傳感器放置在不同的物理位置,但這樣的成本會有所增加。Snort IDS的維護(hù)問題是無法回避的。你遲早要對Snort特征更新并編寫定制的規(guī)則,所以你還需要一個懂得維護(hù)IDS的專業(yè)人士。#p#

2、深入Snort

Snort包含很多可配置的內(nèi)部組件,它們對誤報、漏報以及抓包和記錄日志等的性能都有很大影響。能深入了解Snort的內(nèi)幕有助于有效地利用Snort監(jiān)控人侵。還會幫助你根據(jù)自己的網(wǎng)絡(luò)定制Snort,并且避免它的一些常見缺陷。

2.1、用Libpcap輸送Snort包

Snort沒有自己的捕包工具,它需要一個外部的捕包程序庫:libpcap。Snort利用libpcap獨(dú)立地從物理鏈路上進(jìn)行捕包,它可以借助libpcap的平臺為一個真正的與平臺無關(guān)的應(yīng)用程序。直接從網(wǎng)卡捕包的任務(wù)由libpcap承擔(dān)。這一捕獲原始包的工具是由底層操作系統(tǒng)提供給其他應(yīng)用程序使用的。Snort需要數(shù)據(jù)保持原始狀態(tài),它利用的就是原始包所有的協(xié)議頭信息都保持完整,未被操作系統(tǒng)更改的特性來檢測某些形式的攻擊。由于利用libpcap獲取原始包,一次只能處理一個包,這不是最好的方法,這也制約了它對千兆網(wǎng)絡(luò)進(jìn)行監(jiān)控的瓶頸。

2.2、包解碼器

包一被收集到Snort必須對每一個具體的協(xié)議元素進(jìn)行解碼。在包通過各種協(xié)議的解碼器時,解碼后的包數(shù)據(jù)將堆滿一個數(shù)據(jù)結(jié)構(gòu)。包數(shù)據(jù)一被存人數(shù)據(jù)結(jié)構(gòu)中,就會迅速被送到預(yù)處理程序和檢測引擎進(jìn)行分析。

2.3、預(yù)處理程序

Snort的預(yù)處理分為兩類。它們可以用來針對可疑行為檢查包或者修改包以便檢測引擎能對其正確解釋。預(yù)處理的參數(shù)可以通過snort.Conf配置文件調(diào)整。

預(yù)處理器:

Frag2

Stream4

Stream4_reassemble

Http_decode

RPC_decode

BO

Telnet_decode

ARPspoof

ASNI_decode

Fnord

Conversation

Portscan2

SPADE

2.4、檢測引擎

檢測引擎將流量與規(guī)則按其載人內(nèi)存的順序依次進(jìn)行匹配。是Snort的一個主要部件。

2.5、輸出插件

Snort的輸出插件接收Snort傳來的入侵?jǐn)?shù)據(jù)。輸出插件的目的是將報警數(shù)據(jù)轉(zhuǎn)儲到另一種資源或文件中。#p#

2.6、Snort的性能問題

Snort有效工作的性能可能會受到以下幾種選擇的限制:硬件、操作系統(tǒng)和連網(wǎng)的組件。

對snort的性能影響最大的是snort的配置設(shè)定以及規(guī)則集設(shè)置。內(nèi)部瓶頸則主要出現(xiàn)在包解碼階段,要snort檢查包的容,那么它比一般的規(guī)則都要更加耗費(fèi)系統(tǒng)資源。啟用的檢查包內(nèi)容的規(guī)則越多,snort的運(yùn)行就需要越多的系統(tǒng)資源。如果要激活預(yù)處理程序中的某些設(shè)置選項(xiàng),就會需要消耗額外的系統(tǒng)資源。最明顯的例子就是啟用在frag2預(yù)處理程序和stream4預(yù)處理程序中的“最大存儲容量(memcap)”選項(xiàng)。如果您打算激活大量耗費(fèi)資源的預(yù)處理程序選項(xiàng),最好確定有足夠的硬件資源的支持。我曾經(jīng)遇到過一個用戶花了大筆的錢購買了最先進(jìn)的 IDS由于配置不當(dāng),連檢測100M網(wǎng)都出現(xiàn)了丟包現(xiàn)象。

1)、SPAN端口監(jiān)控

在監(jiān)控時我們必然需要做SPAN,SPAN端口監(jiān)控是另外一種在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)中引入監(jiān)控網(wǎng)段的方法。Cisco交換機(jī)的中高端產(chǎn)品都有SPAN端口或鏡像端口。Span端口既可以是一個專用端口,也可以通過該端口實(shí)現(xiàn)交換機(jī)上所有的端口的配置選項(xiàng)設(shè)定。利用SPAN端口的特點(diǎn)實(shí)現(xiàn)監(jiān)控功能是一種實(shí)用的方法。使用SPAN端口監(jiān)控法并不會給所要監(jiān)控的網(wǎng)絡(luò)引入單點(diǎn)錯誤的問題。與網(wǎng)內(nèi)Hub監(jiān)控法相比,這是使用SPAN端口監(jiān)控最大的優(yōu)點(diǎn)。

注意:鏡像順序問題:當(dāng)所監(jiān)控的網(wǎng)絡(luò)要升級為高帶寬網(wǎng)絡(luò)時,可以先是只鏡像一個端口,對snort的性能觀察一段時間,并根據(jù)需要進(jìn)行調(diào)整。當(dāng)snort的這個端口調(diào)整好了之后,可以切合實(shí)際的、循序漸進(jìn)的增加別的端口,要注意的是,千萬不能一下子增加過多的端口。用SPAN端口監(jiān)控法將會降低本生交換設(shè)備的性能用SPAN端口會使交換設(shè)備的內(nèi)存負(fù)擔(dān)過重,從而使設(shè)備的性能下降。對流量的映是一個非常耗費(fèi)內(nèi)存的過程。#p#

2.7、安裝Snort

操作系統(tǒng):Red Hat Enterprise Linux 5.5

數(shù)據(jù)庫:MySQL:mysql-5.1

Web服務(wù)器:Apache:httpd-2.2

WEB語言:PHP:php-5.4

首先我們需要安裝MySQL 、Apache(必須安裝mod_ssl模塊) 、PHP、并進(jìn)行配置Apache,其詳細(xì)安裝過程可以參見《Linux企業(yè)應(yīng)用案例精解》一書不在這里講解。

1)、安裝主程序

#tar zxf snort-2.8.5.2.tar.gz

#cd snort-2.8.5.2

#./configure --with-mysql=/usr/local/mysql & make & make install

創(chuàng)建配置文件目錄mkdir /etc/snort

創(chuàng)建日志目錄mkdir /var/log/snort

2)安裝snort規(guī)則

tar zxf snortrules-snapshot-2860.tar.gz

tar zxf snortrules-snapshot-CURRENT.tar.gz

mv rules/ /etc/snort

cp * /etc/snort/

修改/etc/snort/snort.conf文件

監(jiān)聽的本地網(wǎng)段 var HOME_NET 192.168.150.0/24

有五行以output database: 開頭的行,將其“#”號去掉。

3) 創(chuàng)建snort數(shù)據(jù)庫

mysql> create database snort;

mysql> connect snort;

mysql> source /usr/local/src/snort-2.8.4.1/schemas/create_mysql;

mysql>grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to snort;

mysql>grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to snort@localhost;

另外有興趣的網(wǎng)友可以嘗試使用phpMyadmin這一工具,phpMyAdmin是一個基于web的MySQL數(shù)據(jù)庫管理工具。它能夠創(chuàng)建和刪除數(shù)據(jù)庫,創(chuàng)建/刪除/修改表格,刪除/編輯/新增字段,執(zhí)行SQL腳本等。#p#

2.8、啟動snort

正確安裝并配置完成以后,下一步我們需要啟動snort

#snort -c /etc/snort/snort.conf

Linux平臺Snort入侵檢測系統(tǒng)實(shí)戰(zhàn)指南

為了snort安全應(yīng)避免用root身份運(yùn)行snort,這時需要創(chuàng)建專用的用戶和組#useradd snort,如果是redhat在創(chuàng)建用戶的同時就創(chuàng)建了snort組:

#snort –u snort –g snort –U –d –D –c /etc/snort/snort.conf

接下來就需要安裝Acid+Adodb+Jpgraph, ACID(Analysis Console for Incident Databases)是snort使用的標(biāo)準(zhǔn)分析員控制臺軟件。ACID是一個基于PHP的分析引擎,它能夠搜索、處理snort產(chǎn)生的數(shù)據(jù)庫。下面是安裝及配置過程。這一過程也非常簡單將adodb和jpgraph的tar包復(fù)制到Apache根目錄下,解開acid包后,修改acid_conf.php配置即可。注意Acid配置參數(shù)都在acid_config.php文件里,所有的值都必須放在雙引號內(nèi)(“),而且后面要加上分號(;)必須現(xiàn)已SSL模式啟動Apache,定位到ACID的主頁https://IP地址/acid/,如圖1所示。

Linux平臺Snort入侵檢測系統(tǒng)實(shí)戰(zhàn)指南

▲圖1 ACID界面

2.9、提高性能

如果是監(jiān)控10/100M的網(wǎng)絡(luò)還行,如果流量過大就需要提高snort的監(jiān)控性能,目前最經(jīng)濟(jì)的方法是,在雙網(wǎng)卡上運(yùn)行Snort程序,可以配置Snort來偵聽多個網(wǎng)卡,問題是Snort每個命令行選項(xiàng)(-i)只接受一個網(wǎng)卡。有種在多種網(wǎng)卡上運(yùn)行Snort的方法:

1、為每個網(wǎng)卡運(yùn)行一個獨(dú)立的Snort進(jìn)程;

2、通過綁定Linux內(nèi)核的特征將所有的網(wǎng)卡綁定在一起。

用Snort監(jiān)控多個網(wǎng)卡時選擇哪種方法取決于你的環(huán)境和優(yōu)先級等多種因素。運(yùn)行多個Snort進(jìn)程會增大工作量,并浪費(fèi)大量的無法接受的處理器時間周期。如果你有可用的資源來運(yùn)行兩個或多個Snort進(jìn)程,那么你應(yīng)該考慮一下數(shù)據(jù)管理問題。假設(shè)所有的Snort實(shí)例以同樣的方式配置,那么同樣的攻擊會被報告多次。這會令人侵檢測系統(tǒng)管理員頭疼,尤其是啟用時報警的時候。當(dāng)你面對不同的網(wǎng)卡有不同的入侵檢測需求時,為每個網(wǎng)卡分配單個Snort程是最理想的。如果你為每個網(wǎng)卡都分配了一個獨(dú)立的Snort進(jìn)程,那么你就為每個網(wǎng)卡創(chuàng)建一個類似虛擬的傳感器。在一個機(jī)器上架設(shè)幾個“傳感器”,你就可以為每個獨(dú)立的Snort進(jìn)程載入不同的配置、規(guī)則和輸出插件。這最適合于獨(dú)立的Snort進(jìn)程。另一方面,如果你不能這樣、或者不想為每個網(wǎng)卡啟用額外的Snort進(jìn)程,你可以將兩個網(wǎng)卡綁定在一起。這樣當(dāng)你啟用Snort時,就能用 -i命令選項(xiàng)指定個已被綁定的網(wǎng)卡(如bond0)。

為了實(shí)現(xiàn)這個目的,請編輯/etc/modules.conf,加入如下行:

alias bond0 bonding

現(xiàn)在,每次重啟機(jī)器,你都需要在將IP地址信息分配給網(wǎng)卡之后輸入下而的侖今桌漸活綁定的網(wǎng)卡:

ifconfig bondup

ifenslave bond0 eth0

ifenflave bond0 eth1

注意,你可將這些命令放在一個腳本里,在系統(tǒng)啟動時運(yùn)行該腳本。當(dāng)運(yùn)行Snort時,可以按如下方式使用的bond0網(wǎng)卡:

snort < options> -i bond0

#p#

維護(hù)Snort

當(dāng)你安裝好系統(tǒng)后就必然會對系統(tǒng)進(jìn)行維護(hù),或是對Snort做一些重要的改動以保持它的相關(guān)性,比如升級規(guī)則集,修改配置選項(xiàng),最后升級Snort應(yīng)用程序本身。如果你運(yùn)行的是多個傳感器構(gòu)成的分布式系統(tǒng),雖然這些手工方法也是可取的,但手工修改多個傳感器就會變得相當(dāng)困難,還容易出錯。

這是我們需要管理助手SnortCenter,它是一款基于Web方式升級和維護(hù)Snort配置的管理應(yīng)用軟件。是一款用于遠(yuǎn)程管理Snort傳感器的應(yīng)用軟件。它用的是PHP/MySQL Web界面,安裝完成啟動界面如圖2所示。

Linux平臺Snort入侵檢測系統(tǒng)實(shí)戰(zhàn)指南

▲圖2 SnortCenter 界面

特征:

◆ snort后臺進(jìn)程狀態(tài)監(jiān)視器;

◆ 遠(yuǎn)程snort停止/啟動/重啟;

◆ snortcenter用戶的訪問控制;

◆ 傳感器組;

◆ ACID集成;

SnortCenter包括基于PHP的管理應(yīng)用軟件和SnortCenter代理。SnortCenter管理控制臺安裝在Snort服務(wù)器上,而SnortCenter傳感器代理被安裝在所管理的傳感器中。SnortCenter增強(qiáng)了可能安裝在分布式系統(tǒng)上的Snort,服務(wù)器端需要如下的軟件包:

◆ MySQL;

◆ Apache;

◆ PHP;

◆ ADODB;

◆ OpenSSL;

◆ cURL

這里,除了cURL軟件包,其他的軟件包應(yīng)該都是大家比較熟悉的,因?yàn)榻^大多數(shù)的操作系統(tǒng)都包括這些軟件包,SnortCenter管理控制臺可運(yùn)行在Windows、Linux和BSD系統(tǒng)上。SnortCenter傳感器代理需要安裝在基于UNIX操作系統(tǒng)的Perl上。該代理在一些附加的預(yù)編譯程序幫助下可以運(yùn)行在基于Windows的傳感器上。

1、SnortCenter的安裝

前提是要安裝并配置好Acid,因此你應(yīng)該預(yù)先在作為Snort服務(wù)器的機(jī)器上安裝MySQL,Apache,PHP,ADODB和OpenSSL。你可以將SnortCenter安裝在Linux系統(tǒng)上了。

1.1、SnortCenter管理控制臺

在安裝SnortCenter之前惟一還需要安裝的軟件包是cURL,這是一個不需要用戶干涉通過URL傳輸文件的命令行工具,它用于管理和控制Snort傳感器。你可以通過如下命令行檢查在Red Hat上是否安裝了該軟件包:

Rpm -qa | grep curl

該命令行將會查詢包含了curl字符串的軟件包,如果你沒有安裝cURL,可以去網(wǎng)上下載。

下一步在WEB根目錄下建立snortcenter目錄,將下載文件包解壓到這個目錄里,然后就通過配置config.php文件來配置SnortCenter 。

對于這個配置文件需要說明的有以下幾點(diǎn):

◆ DBlib_path設(shè)定Adodb庫的位置。

◆ url_path該變量應(yīng)設(shè)為cURL可執(zhí)行文件的位置。

◆ DBtype這里設(shè)置你所安裝的數(shù)據(jù)庫的類型

◆ DB_dbname這是你在下一步中要創(chuàng)建的SnortCenter數(shù)據(jù)庫名

◆ DB_host DB_host是Snort服務(wù)器的主機(jī)名。如果SnortCenter管理控制臺和數(shù)據(jù)庫安裝在同一臺計(jì)算機(jī)上,應(yīng)將該參數(shù)設(shè)為localhost;

◆ DB_user SnortCenter登錄數(shù)據(jù)庫所用的帳號。

◆ DB_ password數(shù)據(jù)庫—用戶的密碼;

◆ DB_ port DB_ port是數(shù)據(jù)庫運(yùn)行的端口號。

保存修改并關(guān)閉config.php,下一個任務(wù)是建立DB_dbname變量指定的數(shù)據(jù)庫,首先需要登錄MysqL數(shù)據(jù)庫,然后創(chuàng)建SnortCenter數(shù)據(jù)庫,命令如下:

>create database snortcenter;

創(chuàng)建好數(shù)據(jù)庫之后,在Web瀏覽器中就可以看到SnortCenter管理控制臺(地址為https: //localhost/snortcenter)了。這里建立了SnortCenter需要的所有表。你也可以用位于tarball的snortcenter db.Mysql腳本創(chuàng)建它們。這就完成了SnortCenter管理控制臺部分的安裝。第一次登錄時,你需修改用戶名admin和口令。

1.2、安裝SnortCenter傳感器代理

要完成SnortCenter的安裝,還需在你想用SnortCenter管理的傳感器上安裝SnortCenter傳感器代理。安裝基于UNIX的代理需要Perl、OpenSSL和Perl模塊Net::SSLeay。前面我們已經(jīng)在傳感器上安裝了OpenSSL和Perl,現(xiàn)在只需要進(jìn)行Net::SSLeay模塊的安裝。你可以在網(wǎng)址http://search.cpan.org下載該模塊。

下載并安裝Net::SSLeay,首先在源目錄下執(zhí)行下列命令:

Perl Makefile.pl

Make install

安裝好Net::SSLeay模塊后,需創(chuàng)建SnortCenter傳感器代理所用的目錄,即創(chuàng)建下列目錄:

◆ 程序目錄:/usr/local/snortcenter

◆ 配置目錄:/usr/local/snortcenter/conf

◆ 日志目錄:/usrAocal/snortcenter/log

◆ 策略目錄:/usr/local/snortcenter/rules

接著,你還需為SnortCenter創(chuàng)建一個SSL證書。用下面的命令行創(chuàng)建它:

#openssl req -new -x509 -days 365 -nodes -out snortcenter.pem -keyout snortcenter. pem

將snortcenter.pem文件復(fù)制到/usr/local/snortcenter/conf目錄下?,F(xiàn)在你就可以準(zhǔn)備安裝SnortCenter傳感器代理了,在http://users.pandora.be/larc/download/下載合適的版本。

將文件解壓并移動到/usr/local/snortcenter/目錄下。運(yùn)行安裝的shell腳本:

#./setup.sh

安裝腳本會向你提出許多問題。你已經(jīng)為Snort和SnortCenter創(chuàng)建所需的文件夾,當(dāng)詢問時依次輸入這些目錄。代理可以運(yùn)行在任何端口上的,可以任意指定,但要記住你選擇的是哪一個端口。指定SnortCeneter管理和偵聽的網(wǎng)卡IP地址。當(dāng)出現(xiàn)啟用SSL選項(xiàng)時,選擇Yes。你也應(yīng)該注意記住代理的登錄名和口令,在管理器控制臺中輸入認(rèn)證信息。最后的選項(xiàng)是設(shè)置Snort服務(wù)器的IP地址。這樣就完成了SnortCenter傳感器代理的安裝。重復(fù)這個安裝過程,為你的Snort環(huán)境中的每個傳感器安裝代理。

注意配置snortcenter要想升級傳感器的多種配置,必須首先在snortcenter管理控制臺中添加他們。

責(zé)任編輯:藍(lán)雨淚 來源: it168
相關(guān)推薦

2010-08-25 14:58:37

2010-09-08 14:23:14

測試Snort

2010-09-08 13:49:36

2010-08-25 14:37:38

snort入侵檢測

2010-08-25 14:21:22

2012-08-09 09:52:50

LIDSLinux入侵檢測

2009-09-04 10:21:00

2010-12-01 11:14:46

snort嗅探器數(shù)據(jù)包記錄器

2017-03-07 16:08:36

2011-10-28 16:03:06

2011-11-21 09:57:47

2012-10-10 11:36:02

2015-09-10 09:18:33

2010-08-26 09:12:01

2009-02-24 10:45:48

2009-11-11 10:35:04

2012-11-26 13:32:14

2010-05-26 16:13:54

入侵檢測系統(tǒng)部署IDS

2009-04-21 13:54:20

2010-08-26 10:36:44

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號