日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Snort企业部署实战

發(fā)布時間:2023/12/18 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Snort企业部署实战 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Snort企業(yè)部署實戰(zhàn)

1背景 我們知道企業(yè)網(wǎng)絡(luò)目前威脅來自兩個位置:一個是內(nèi)部,一個是外部。來自外部的威脅都能被防火墻所阻止,但內(nèi)部攻擊都不好防范。因為公司內(nèi)部人員對系統(tǒng)了解很深且有合法訪問權(quán)限,所以內(nèi)部攻擊更容易成功。IDS為信息提供保護,已經(jīng)成為深度防御策略中的重要部分。IDS與現(xiàn)實世界里的防竊報警裝置類似。他們都對入侵進行監(jiān)控,當發(fā)現(xiàn)可疑行為時,就向特定的當事人發(fā)出警報。IDS分為兩類:主機IDS(HIDS)和網(wǎng)絡(luò)IDS(NIDS)。HIDS安裝在受監(jiān)控主機上,擁有對敏感文件的訪問特權(quán)。HIDS利用這一訪問特權(quán)對異常行為進行監(jiān)控。NIDS存在于網(wǎng)絡(luò)中,通過捕獲發(fā)往其他主機的流量來保護大量網(wǎng)絡(luò)設(shè)施。HIDS和NIDS都有各自的優(yōu)點和缺點,完整的安全解決方案應(yīng)包括這兩種IDS,對于這一點比較難做到。不了解這一領(lǐng)域的人常常認為IDS就像一把,能解決所有安全問題。例如有的單位花了大筆的錢購置了商業(yè)IDS由于配置不當反而搞得練練誤報一下子就把數(shù)據(jù)庫塞滿了,大量丟包,進而崩潰。這種態(tài)度使人們以為只要將IDS隨便安放在網(wǎng)絡(luò)中就萬事大吉了,不必擔心任何問題,實際上遠非如此。沒有人會認為Email服務(wù)器直接連在Internet上就能正確運作。同樣,你也需要正確的計劃IDS策略,傳感器的放置。下文以開源軟件Snort的安裝與維護為例,介紹正確地安裝和維護IDS的思路和方法。 2安裝Snort 2.1安裝準備工作 我們在安裝前我們要知道我們需要監(jiān)控的內(nèi)容,理想的狀況是對一切進行監(jiān)控。所有網(wǎng)絡(luò)設(shè)備和任何從外部到企業(yè)的連接都處在Snort的監(jiān)視之下。盡管這一計劃對小公司只有幾十臺機器是很可能實現(xiàn)的,但是當大型企業(yè)中連接上天臺網(wǎng)絡(luò)設(shè)備時,這成了難以施展的艱巨任務(wù)。為了加強snort檢測的安全性,最好能為監(jiān)控網(wǎng)段提供獨立的智能交換機,如果你需要配置分布式的配置,可以吧服務(wù)器和控制臺接在一個交換機上,二其他傳感器放置在不同的物理位置,但這樣的成本會有所增加。SnortIDS的維護問題是無法回避的。你遲早要對Snort特征更新并編寫定制的規(guī)則,所以你還需要一個懂得維護IDS的專業(yè)人士。 2.2深入Snort Snort包含很多可配置的內(nèi)部組件,它們對誤報、漏報以及抓包和記錄日志等的性能都有很大影響。能深入了解Snort的內(nèi)幕有助于有效地利用Snort監(jiān)控人侵。還會幫助你根據(jù)自己的網(wǎng)絡(luò)定制Snort,并且避免它的一些常見缺陷。 2.2.1用Libpcap輸送Snort包 Snort沒有自己的捕包工具,它需要一個外部的捕包程序庫:libpcap。Snort利用libpcap獨立地從物理鏈路上進行捕包,它可以借助libpcap的平臺為一個真正的與平臺無關(guān)的應(yīng)用程序。直接從網(wǎng)卡捕包的任務(wù)由libpcap承擔。這一捕獲原始包的工具是由底層操作系統(tǒng)提供給其他應(yīng)用程序使用的。Snort需要數(shù)據(jù)保持原始狀態(tài),它利用的就是原始包所有的協(xié)議頭信息都保持完整,未被操作系統(tǒng)更改的特性來檢測某些形式的攻擊。由于利用libpcap獲取原始包,一次只能處理一個包,這不是最好的方法,這也制約了它對千兆網(wǎng)絡(luò)進行監(jiān)控的瓶頸。 2.2.2包解碼器 包一被收集到Snort必須對每一個具體的協(xié)議元素進行解碼。在包通過各種協(xié)議的解碼器時,解碼后的包數(shù)據(jù)將堆滿一個數(shù)據(jù)結(jié)構(gòu)。包數(shù)據(jù)一被存人數(shù)據(jù)結(jié)構(gòu)中,就會迅速被送到預(yù)處理程序和檢測引擎進行分析。 2.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.2.4檢測引擎 檢測引擎將流量與規(guī)則按其載人內(nèi)存的順序依次進行匹配。是Snort的一個主要部件。 2.2.5輸出插件 Snort的輸出插件接收Snort傳來的入侵數(shù)據(jù)。輸出插件的目的是將報警數(shù)據(jù)轉(zhuǎn)儲到另一種資源或文件中。 2.2.6Snort的性能問題 Snort有效工作的性能可能會受到以下幾種選擇的限制:硬件、操作系統(tǒng)和連網(wǎng)的組件。 對snort的性能影響最大的是snort的配置設(shè)定以及規(guī)則集設(shè)置。內(nèi)部瓶頸則主要出現(xiàn)在包解碼階段,要snort檢查包的容,那么它比一般的規(guī)則都要更加耗費系統(tǒng)資源。啟用的檢查包內(nèi)容的規(guī)則越多,snort的運行就需要越多的系統(tǒng)資源。如果要激活預(yù)處理程序中的某些設(shè)置選項,就會需要消耗額外的系統(tǒng)資源。最明顯的例子就是啟用在frag2預(yù)處理程序和stream4預(yù)處理程序中的“最大存儲容量(memcap)”選項。如果您打算激活大量耗費資源的預(yù)處理程序選項,最好確定有足夠的硬件資源的支持。我曾經(jīng)遇到過一個用戶花了大筆的錢購買了最先進的IDS由于配置不當,連檢測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交換機的中高端產(chǎn)品都有SPAN端口或鏡像端口。Span端口既可以是一個專用端口,也可以通過該端口實現(xiàn)交換機上所有的端口的配置選項設(shè)定。利用SPAN端口的特點實現(xiàn)監(jiān)控功能是一種實用的方法。使用SPAN端口監(jiān)控法并不會給所要監(jiān)控的網(wǎng)絡(luò)引入單點錯誤的問題。與網(wǎng)內(nèi)Hub監(jiān)控法相比,這是使用SPAN端口監(jiān)控最大的優(yōu)點。 注意:鏡像順序問題:當所監(jiān)控的網(wǎng)絡(luò)要升級為高帶寬網(wǎng)絡(luò)時,可以先是只鏡像一個端口,對snort的性能觀察一段時間,并根據(jù)需要進行調(diào)整。當snort的這個端口調(diào)整好了之后,可以切合實際的、循序漸進的增加別的端口,要注意的是,千萬不能一下子增加過多的端口。用SPAN端口監(jiān)控法將會降低本生交換設(shè)備的性能用SPAN端口會使交換設(shè)備的內(nèi)存負擔過重,從而使設(shè)備的性能下降。對流量的映是一個非常耗費內(nèi)存的過程, 2.2.7.安裝Snort 操作系統(tǒng):RedHatEnterpriseLinux5.5 數(shù)據(jù)庫:MySQL:mysql-5.1 Web服務(wù)器:Apache:httpd-2.2 WEB語言:PHP:php-5.4 首先我們需要安裝MySQL、Apache(必須安裝mod_ssl模塊)、PHP、并進行配置Apache,其詳細安裝過程可以參見《Linux企業(yè)應(yīng)用案例精解》 1)安裝主程序 #tarzxfsnort-2.8.5.2.tar.gz #cdsnort-2.8.5.2 #./configure--with-mysql=/usr/local/mysql&make&makeinstall 創(chuàng)建配置文件目錄mkdir/etc/snort 創(chuàng)建日志目錄mkdir/var/log/snort 2)安裝snort規(guī)則 tarzxfsnortrules-snapshot-2860.tar.gz tarzxfsnortrules-snapshot-CURRENT.tar.gz mvrules//etc/snort cp*/etc/snort/ 修改/etc/snort/snort.conf文件 監(jiān)聽的本地網(wǎng)段varHOME_NET192.168.150.0/24 有五行以outputdatabase:開頭的行,將其“#”號去掉。 3)創(chuàng)建snort數(shù)據(jù)庫 mysql>createdatabasesnort; mysql>connectsnort; mysql>source/usr/local/src/snort-2.8.5.2/schemas/create_mysql; mysql>grantCREATE,INSERT,SELECT,DELETE,UPDATEonsnort.*tosnort; mysql>grantCREATE,INSERT,SELECT,DELETE,UPDATEonsnort.*tosnort@localhost; 另外有興趣的讀者可以嘗試使用phpMyadmin這一工具,phpMyAdmin是一個基于web的MySQL數(shù)據(jù)庫管理工具。它能夠創(chuàng)建和刪除數(shù)據(jù)庫,創(chuàng)建/刪除/修改表格,刪除/編輯/新增字段,執(zhí)行SQL腳本等。 2.2.8啟動snort 正確安裝并配置完成以后,下一步我們需要啟動snort #snort-c/etc/snort/snort.conf 為了snort安全應(yīng)避免用root身份運行snort,這時需要創(chuàng)建專用的用戶和組 #useraddsnort,如果是redhat在創(chuàng)建用戶的同時就創(chuàng)建了snort組 #snort–usnort–gsnort–U–d–D–c/etc/snort/snort.conf 接下來就需要安裝Acid+Adodb+Jpgraph,ACID(AnalysisConsoleforIncidentDatabases)是snort使用的標準分析員控制臺軟件。ACID是一個基于PHP的分析引擎,它能夠搜索、處理snort產(chǎn)生的數(shù)據(jù)庫。下面是安裝及配置過程。這一過程也非常簡單將adodb和jpgraph的tar包復制到Apache根目錄下,解開acid包后,修改acid_conf.php配置即可。注意Acid配置參數(shù)都在acid_config.php文件里,所有的值都必須放在雙引號內(nèi)(“),而且后面要加上分號(;)必須現(xiàn)已SSL模式啟動Apache,定位到ACID的主頁https://IP地址/acid/,如圖1所示。

圖1ACID界面 2.2.9提高性能 如果是監(jiān)控10/100M的網(wǎng)絡(luò)還行,如果流量過大就需要提高snort的監(jiān)控性能,目前最經(jīng)濟的方法是,在雙網(wǎng)卡上運行Snort程序,可以配置Snort來偵聽多個網(wǎng)卡,問題是Snort每個命令行選項(-i)只接受一個網(wǎng)卡。有種在多種網(wǎng)卡上運行Snort的方法: 為每個網(wǎng)卡運行一個獨立的Snort進程; 通過綁定Linux內(nèi)核的特征將所有的網(wǎng)卡綁定在一起。 用Snort監(jiān)控多個網(wǎng)卡時選擇哪種方法取決于你的環(huán)境和優(yōu)先級等多種因素。運行多個Snort進程會增大工作量,并浪費大量的無法接受的處理器時間周期。如果你有可用的資源來運行兩個或多個Snort進程,那么你應(yīng)該考慮一下數(shù)據(jù)管理問題。假設(shè)所有的Snort實例以同樣的方式配置,那么同樣的攻擊會被報告多次。這會令人侵檢測系統(tǒng)管理員頭疼,尤其是啟用時報警的時候。當你面對不同的網(wǎng)卡有不同的入侵檢測需求時,為每個網(wǎng)卡分配單個Snort程是最理想的。如果你為每個網(wǎng)卡都分配了一個獨立的Snort進程,那么你就為每個網(wǎng)卡創(chuàng)建一個類似虛擬的傳感器。在一個機器上架設(shè)幾個“傳感器”,你就可以為每個獨立的Snort進程載入不同的配置、規(guī)則和輸出插件。這最適合于獨立的Snort進程。另一方面,如果你不能這樣、或者不想為每個網(wǎng)卡啟用額外的Snort進程,你可以將兩個網(wǎng)卡綁定在一起。這樣當你啟用Snort時,就能用-i命令選項指定個已被綁定的網(wǎng)卡(如bond0)。 為了實現(xiàn)這個目的,請編輯/etc/modules.conf,加入如下行: aliasbond0bonding 現(xiàn)在,每次重啟機器,你都需要在將IP地址信息分配給網(wǎng)卡之后輸入下而的侖今桌漸活綁定的網(wǎng)卡: ifconfigbondup ifenslavebond0eth0 ifenflavebond0eth1 注意,你可將這些命令放在一個腳本里,在系統(tǒng)啟動時運行該腳本。當運行Snort時,可以按如下方式使用的bond0網(wǎng)卡: snort<options>-ibond0 3維護Snort 當你安裝好系統(tǒng)后就必然會對系統(tǒng)進行維護,或是對Snort做一些重要的改動以保持它的相關(guān)性,比如升級規(guī)則集,修改配置選項,最后升級Snort應(yīng)用程序本身。如果你運行的是多個傳感器構(gòu)成的分布式系統(tǒng),雖然這些手工方法也是可取的,但手工修改多個傳感器就會變得相當困難,還容易出錯。 這是我們需要管理助手SnortCenter,它是一款基于Web方式升級和維護Snort配置的管理應(yīng)用軟件。是一款用于遠程管理Snort傳感器的應(yīng)用軟件。它用的是PHP/MySQLWeb界面,安裝完成啟動界面如圖2所示。

圖2SnortCenter界面 特征: lsnort后臺進程狀態(tài)監(jiān)視器; l遠程snort停止/啟動/重啟; lsnortcenter用戶的訪問控制; l傳感器組。 lACID集成; SnortCenter包括基于PHP的管理應(yīng)用軟件和SnortCenter代理。SnortCenter管理控制臺安裝在Snort服務(wù)器上,而SnortCenter傳感器代理被安裝在所管理的傳感器中。SnortCenter增強了可能安裝在分布式系統(tǒng)上的Snort,服務(wù)器端需要如下的軟件包: lMySQL; lApache; lPHP; lADODB; lOpenSSL; lcURL 這里,除了cURL軟件包,其他的軟件包應(yīng)該都是大家比較熟悉的,因為絕大多數(shù)的操作系統(tǒng)都包括這些軟件包,SnortCenter管理控制臺可運行在Windows、Linux和BSD系統(tǒng)上。SnortCenter傳感器代理需要安裝在基于UNIX操作系統(tǒng)的Perl上。該代理在一些附加的預(yù)編譯程序幫助下可以運行在基于Windows的傳感器上。 3.1SnortCenter的安裝 前提是要安裝并配置好Acid,因此你應(yīng)該預(yù)先在作為Snort服務(wù)器的機器上安裝MySQL,Apache,PHP,ADODB和OpenSSL。你可以將SnortCenter安裝在Linux系統(tǒng)上了。 3.1.1SnortCenter管理控制臺 在安裝SnortCenter之前惟一還需要安裝的軟件包是cURL,這是一個不需要用戶干涉通過URL傳輸文件的命令行工具,它用于管理和控制Snort傳感器。你可以通過如下命令行檢查在RedHat上是否安裝了該軟件包: Rpm-qa|grepcurl 該命令行將會查詢包含了curl字符串的軟件包,如果你沒有安裝cURL,可以去網(wǎng)上下載。 下一步在WEB根目錄下建立snortcenter目錄,將下載文件包解壓到這個目錄里,然后就通過配置config.php文件來配置SnortCenter。 對于這個配置文件需要說明的有以下幾點: lDBlib_path設(shè)定Adodb庫的位置。 lurl_path該變量應(yīng)設(shè)為cURL可執(zhí)行文件的位置。 lDBtype這里設(shè)置你所安裝的數(shù)據(jù)庫的類型 lDB_dbname這是你在下一步中要創(chuàng)建的SnortCenter數(shù)據(jù)庫名 lDB_hostDB_host是Snort服務(wù)器的主機名。如果SnortCenter管理控制臺和數(shù)據(jù)庫安裝在同一臺計算機上,應(yīng)將該參數(shù)設(shè)為localhost; lDB_userSnortCenter登錄數(shù)據(jù)庫所用的帳號。 lDB_password數(shù)據(jù)庫—用戶的密碼; lDB_portDB_port是數(shù)據(jù)庫運行的端口號。 保存修改并關(guān)閉config.php,下一個任務(wù)是建立DB_dbname變量指定的數(shù)據(jù)庫,首先需要登錄MysqL數(shù)據(jù)庫,然后創(chuàng)建SnortCenter數(shù)據(jù)庫,命令如下: >createdatabasesnortcenter; 創(chuàng)建好數(shù)據(jù)庫之后,在Web瀏覽器中就可以看到SnortCenter管理控制臺(地址為https://localhost/snortcenter)了。這里建立了SnortCenter需要的所有表。你也可以用位于tarball的snortcenterdb.Mysql腳本創(chuàng)建它們。這就完成了SnortCenter管理控制臺部分的安裝。第一次登錄時,你需修改用戶名admin和口令。 3.1.2安裝SnortCenter傳感器代理 要完成SnortCenter的安裝,還需在你想用SnortCenter管理的傳感器上安裝SnortCenter傳感器代理。安裝基于UNIX的代理需要Perl、OpenSSL和Perl模塊Net::SSLeay。前面我們已經(jīng)在傳感器上安裝了OpenSSL和Perl,現(xiàn)在只需要進行Net::SSLeay模塊的安裝。你可以在網(wǎng)址http://search.cpan.org下載該模塊。 下載并安裝Net::SSLeay,首先在源目錄下執(zhí)行下列命令: PerlMakefile.pl Makeinstall 安裝好Net::SSLeay模塊后,需創(chuàng)建SnortCenter傳感器代理所用的目錄,即創(chuàng)建下列目錄: l程序目錄:/usr/local/snortcenter l配置目錄:/usr/local/snortcenter/conf l日志目錄:/usrAocal/snortcenter/log l策略目錄:/usr/local/snortcenter/rules 接著,你還需為SnortCenter創(chuàng)建一個SSL證書。用下面的命令行創(chuàng)建它: #opensslreq-new-x509-days365-nodes-outsnortcenter.pem-keyoutsnortcenter.pem 將snortcenter.pem文件復制到/usr/local/snortcenter/conf目錄下。現(xiàn)在你就可以準備安裝SnortCenter傳感器代理了,在http://users.pandora.be/larc/download/下載合適的版本。 將文件解壓并移動到/usr/local/snortcenter/目錄下。運行安裝的shell腳本: #./setup.sh 安裝腳本會向你提出許多問題。你已經(jīng)為Snort和SnortCenter創(chuàng)建所需的文件夾,當詢問時依次輸入這些目錄。代理可以運行在任何端口上的,可以任意指定,但要記住你選擇的是哪一個端口。指定SnortCeneter管理和偵聽的網(wǎng)卡IP地址。當出現(xiàn)啟用SSL選項時,選擇Yes。你也應(yīng)該注意記住代理的登錄名和口令,在管理器控制臺中輸入認證信息。最后的選項是設(shè)置Snort服務(wù)器的IP地址。這樣就完成了SnortCenter傳感器代理的安裝。重復這個安裝過程,為你的Snort環(huán)境中的每個傳感器安裝代理。 注意:配置snortcenter,要想升級傳感器的多種配置,必須首先在snortcenter管理控制臺中添加他們。

本文出自 “李晨光原創(chuàng)技術(shù)博客” 博客,請務(wù)必保留此出處http://chenguang.blog.51cto.com/350944/969641

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的Snort企业部署实战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。