Snort是被設(shè)計(jì)用來填補(bǔ)昂貴的、探測繁重的網(wǎng)絡(luò)侵入情況的系統(tǒng)留下的空缺。Snort是一個免費(fèi)的、跨平臺的軟件包,用作監(jiān)視小型TCP/ip網(wǎng)的嗅探器、日志記錄、侵入探測器。它可以運(yùn)行在linux/UNIX和Win32系統(tǒng)上,你只需要幾分鐘就可以安裝好并可以開始使用它。
Snort的一些功能:
-實(shí)時通訊分析和信息包記錄
-包裝有效載荷檢查
-協(xié)議分析和內(nèi)容查詢匹配
-探測緩沖溢出、秘密端口掃描、CGI攻擊、SMB探測、操作系統(tǒng)侵入嘗試
-對系統(tǒng)日志、指定文件、Unixsocket或通過Samba的WinPopus進(jìn)行實(shí)時報(bào)警
Snort有三種主要模式:信息包嗅探器、信息包記錄器或成熟的侵入探測系統(tǒng)。遵循開發(fā)/自由軟件最重要的慣例,Snort支持各種形式的插件、擴(kuò)充和定制,包括數(shù)據(jù)庫或是xml記錄、小幀探測和統(tǒng)計(jì)的異常探測等。信息包有效載荷探測是Snort最有用的一個特點(diǎn),這就意味著很多額外種類的敵對行為可以被探測到。
Snort.org提供一些RPM和tarball。通常我推薦根據(jù)需求來建立,但是我在最新穩(wěn)定版本的tarball上碰到了問題。當(dāng)這個版本的最終使用期限漸漸逼近時,我沒有時間來描述究竟是我太笨了還是Snort的問題。RPM安裝就沒有任何問題。
為了使Snort工作,libpcap是必需安裝到你的系統(tǒng)中。用locate來檢查:
$locatelibpcap
這個將輸出以下一些內(nèi)容:
/usr/lib/libpcap.so.0
/usr/lib/libpcap.a
/usr/lib/libpcap.so
/usr/lib/libpcap.so.0.6.2
假如沒有這些,到tcpdump.org或者你的Linux安裝盤中去找。
安裝一個安全軟件而不驗(yàn)證簽名是不明智的。檢驗(yàn)?zāi)阆螺d的checksum:
#md5snort-1.8.6.tar.gz
或者
#md5snort-1.8.6-1snort.i386.rpm
解壓縮tarball:
$tar-xvzfsnort-1.8.6.tar.gz
以root身份安裝
#./configure
#make
#makeinstall
這是簡單形式的安裝過程。一些選項(xiàng)被選中以運(yùn)行Snort的預(yù)安裝自測;將二進(jìn)制和目標(biāo)文件從安裝目錄中清除,清除操作還有一個卸栽選項(xiàng)。
其他的安裝選項(xiàng)和需要使用的配置:
--with-snmp
答應(yīng)SNMP報(bào)警代碼
--with-MySQL=DIR
支持mysql
--with-postgresql=DIR
支持Postgresql數(shù)據(jù)庫
--with-openssl=DIR
支持openssl
還有更多的一些選項(xiàng),可以參見你的tarball文檔
安裝RPM自身非常簡單:
#rpm-ivhsnort-1.8.6-1snort.i386.rpm
你可以在下載Snort的網(wǎng)頁上看到,預(yù)編譯的二進(jìn)制文件已經(jīng)被封裝,用來維持與其他程序的兼容性,例如mySQL和PostgreSQL
#snort-?
打印出最常用的選項(xiàng)
Test-drive是用來保證正確的安裝。只監(jiān)視本地機(jī)器,-I=interface:
#snort-vdeieth0
用CTRL+C來停止測試。不要忘了將你的網(wǎng)卡設(shè)為混雜模式。Snort將以后臺程序形式運(yùn)行,并會以開啟停止形式出現(xiàn)。
PacketSniffer模式
這種模式下,只將TCP/IP報(bào)頭打印出來
#snort-v
查看應(yīng)用層數(shù)據(jù)
#snort-vd
數(shù)據(jù)聯(lián)接層報(bào)頭
#snort-vde
記錄
除非你對16進(jìn)制很熟悉,你還是將其寫入磁盤
#snort-vdel/var/log/snort
這里的“-l”表示“l(fā)og”,記錄。告訴Snort記錄當(dāng)?shù)鼐W(wǎng)絡(luò)的任何事情,-h表示本地:
#snort-vdel/var/log/snort-h192.168.1.0/24
這個為每個主機(jī)生成一個單獨(dú)的目錄。假如要將這些都放到一個二進(jìn)制文件中,使用-b來切換
#snort-l/var/log/snort-b
指定任何其他選項(xiàng)是沒有意義的,假如你需要Snort的安裝選項(xiàng)或者使用tcpdump,請解析出這個文件,-r表示讀并處理文件。
#snort-vder/var/log/snort/snort-0629@1600.log
對BerkeleyPacketFilter解析出特定的項(xiàng)目
#snort-vder/var/log/snort/snort-0629@1600.logudp
#snort-vr/var/log/snort/snort-0629@1600.logtcp
#snort-ver/var/log/snort/snort-0629@1600.logicmp
對BerkeleyPacketFilter用man查看snort和tcpdump的其他選項(xiàng)。
網(wǎng)絡(luò)侵入探測模式
現(xiàn)在我們進(jìn)入真正的Snort工具。看一下/etc/snort/snort.conf,全局配置文件。Snort的規(guī)則設(shè)置也以文本文件形式存放在/etc/snort。最后仔細(xì)看一下這一行:
varHOME_NET$eth0_ADDRESS
這個是按照本地網(wǎng)卡的網(wǎng)絡(luò)設(shè)置來初始化Snort。
為了保證速度,記錄每個單個的包并顯示在屏幕上是不可能的。包會被丟棄,而記錄文件會變得非常龐大。使用-v切換,這樣就不會顯示在屏幕上,我們可以不用-e,數(shù)據(jù)連接報(bào)頭:
#snort-dl/var/log/snort-h192.168.1.0/24-c/etc/snort/snort.conf
-h表示本地網(wǎng)絡(luò),-c表示使用規(guī)則設(shè)定。這是最基本的,用ASCII記錄安裝規(guī)則定義的包。使用-b切換記錄為二進(jìn)制文件。注重定義子網(wǎng)范圍用CIDR符號。
這些神秘的規(guī)則設(shè)定是從哪里來得呢?兩個來源:從Snort.org,包括在RPM或是下載的二進(jìn)制文件中;從MartinRoesch,Snort的制作者,他設(shè)計(jì)的Snort在所有方面都很迅速:安裝、運(yùn)行和對攻擊的反應(yīng)。假如你有能力分析一個攻擊和確認(rèn)一個獨(dú)特的信號,你可以自己寫一個規(guī)則來發(fā)現(xiàn)并記錄它。參見你下載的Snort用戶手冊(SnortUsersManual.pdf),這是一個非常好的寫定制規(guī)則指南。(這些文件都可以在線獲得)Snort.org天天更新規(guī)則設(shè)定,你可以下載讓你滿足的。你可以在Snort.org上的Snort/contrib目錄找到snortpp,可以用它來合并新的規(guī)則
在哪里配置Snort?
假如你有時間和資源,將Snort放到防火墻的兩側(cè)是最好的。比較一下哪些撞上你的防火墻,哪些順利通過你的防火墻,你會非常驚奇在Internet上有如此之多的惡意攻擊。Snort占用空間很少,使你可以在防火墻后運(yùn)行一個簡單的Snort來增加一個保護(hù)層,更加輕易治理,
來源:
a..Snort
b..MD5
c..libpcap
d..CIDRFAQ
新聞熱點(diǎn)
疑難解答
圖片精選