Snort:一款廣受歡迎的開源IDS(入侵檢測系統(tǒng))工具
snort有三種工作模式:嗅探器、數(shù)據(jù)包記錄器、網(wǎng)絡(luò)入侵檢測系統(tǒng)。嗅探器模式僅僅是從網(wǎng)絡(luò)上讀取數(shù)據(jù)包并作為連續(xù)不斷的流顯示在終端上。數(shù)據(jù)包記錄器模式把數(shù)據(jù)包記錄到硬盤上。網(wǎng)路入侵檢測模式是最復(fù)雜的,而且是可配置的。我們可以讓snort分析網(wǎng)絡(luò)數(shù)據(jù)流以匹配用戶定義的一些規(guī)則,并根據(jù)檢測結(jié)果采取一定的動作。
下載鏈接:http://down.51cto.com/data/146159
>>去網(wǎng)絡(luò)安全工具百寶箱看看其它安全工具
嗅探器
所謂的嗅探器模式就是snort從網(wǎng)絡(luò)上讀出數(shù)據(jù)包然后顯示在你的控制臺上。首先,我們從最基本的用法入手。如果你只要把TCP/IP包頭信息打印在屏幕上,只需要輸入下面的命令:
./snort -v
使用這個命令將使snort只輸出IP和TCP/UDP/ICMP的包頭信息。如果你要看到應(yīng)用層的數(shù)據(jù),可以使用:
./snort -vd
這條命令使snort在輸出包頭信息的同時顯示包的數(shù)據(jù)信息。如果你還要顯示數(shù)據(jù)鏈路層的信息,就使用下面的命令:
./snort -vde
注意這些選項開關(guān)還可以分開寫或者任意結(jié)合在一塊。例如:下面的命令就和上面最后的一條命令等價:
./snort -d -v –e
數(shù)據(jù)包記錄器
如果要把所有的包記錄到硬盤上,你需要指定一個日志目錄,snort就會自動記錄數(shù)據(jù)包:
./snort -dev -l ./log
當(dāng)然,./log目錄必須存在,否則snort就會報告錯誤信息并退出。當(dāng)snort在這種模式下運(yùn)行,它會記錄所有看到的包將其放到一個目錄中,這個目錄以數(shù)據(jù)包目的主機(jī)的IP地址命名,例如:192.168.10.1
如果你只指定了-l命令開關(guān),而沒有設(shè)置目錄名,snort有時會使用遠(yuǎn)程主機(jī)的IP地址作為目錄,有時會使用本地主機(jī)IP地址作為目錄名。為了只對本地網(wǎng)絡(luò)進(jìn)行日志,你需要給出本地網(wǎng)絡(luò):
./snort -dev -l ./log -h 192.168.1.0/24
這個命令告訴snort把進(jìn)入C類網(wǎng)絡(luò)192.168.1的所有包的數(shù)據(jù)鏈路、TCP/IP以及應(yīng)用層的數(shù)據(jù)記錄到目錄./log中。
如果你的網(wǎng)絡(luò)速度很快,或者你想使日志更加緊湊以便以后的分析,那么應(yīng)該使用二進(jìn)制的日志文件格式。所謂的二進(jìn)制日志文件格式就是tcpdump程序使用的格式。使用下面的命令可以把所有的包記錄到一個單一的二進(jìn)制文件中:
./snort -l ./log -b
注意此處的命令行和上面的有很大的不同。我們勿需指定本地網(wǎng)絡(luò),因為所有的東西都被記錄到一個單一的文件。你也不必冗余模式或者使用-d、-e功能選項,因為數(shù)據(jù)包中的所有內(nèi)容都會被記錄到日志文件中。
你可以使用任何支持tcpdump二進(jìn)制格式的嗅探器程序從這個文件中讀出數(shù)據(jù)包,例如: tcpdump或者Ethereal。使用-r功能開關(guān),也能使snort讀出包的數(shù)據(jù)。snort在所有運(yùn)行模式下都能夠處理tcpdump格式的文件。例如:如果你想在嗅探器模式下把一個tcpdump格式的二進(jìn)制文件中的包打印到屏幕上,可以輸入下面的命令:
./snort -dv -r packet.log
在日志包和入侵檢測模式下,通過BPF(BSD Packet Filter)接口,你可以使用許多方式維護(hù)日志文件中的數(shù)據(jù)。例如,你只想從日志文件中提取ICMP包,只需要輸入下面的命令行:
./snort -dvr packet.log icmp
網(wǎng)絡(luò)入侵檢測系統(tǒng)
snort最重要的用途還是作為網(wǎng)絡(luò)入侵檢測系統(tǒng)(NIDS),使用下面命令行可以啟動這種模式:
./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf
snort.conf是規(guī)則集文件。snort會對每個包和規(guī)則集進(jìn)行匹配,發(fā)現(xiàn)這樣的包就采取相應(yīng)的行動。如果你不指定輸出目錄,snort就輸出到/var/log/snort目錄。
注意:如果你想長期使用snort作為自己的入侵檢測系統(tǒng),最好不要使用-v選項。因為使用這個選項,使snort向屏幕上輸出一些信息,會大大降低snort的處理速度,從而在向顯示器輸出的過程中丟棄一些包。
此外,在絕大多數(shù)情況下,也沒有必要記錄數(shù)據(jù)鏈路層的包頭,所以-e選項也可以不用:
./snort -d -h 192.168.1.0/24 -l ./log -c snort.conf
這是使用snort作為網(wǎng)絡(luò)入侵檢測系統(tǒng)最基本的形式,日志符合規(guī)則的包,以ASCII形式保存在有層次的目錄結(jié)構(gòu)中。
網(wǎng)絡(luò)入侵檢測模式下的輸出選項
在NIDS模式下,有很多的方式來配置snort的輸出。在默認(rèn)情況下,snort以ASCII格式記錄日志,使用full報警機(jī)制。如果使用full報警機(jī)制,snort會在包頭之后打印報警消息。如果你不需
要日志包,可以使用-N選項。
snort有6種報警機(jī)制:full、fast、socket、syslog、smb(winpopup)和none。其中有4個可以在命令行狀態(tài)下使用-A選項設(shè)置。這4個是:
-A fast:報警信息包括:一個時間戳(timestamp)、報警消息、源/目的IP地址和端口。
-A full:是默認(rèn)的報警模式。
-A unsock:把報警發(fā)送到一個UNIX套接字,需要有一個程序進(jìn)行監(jiān)聽,這樣可以實現(xiàn)實時報警。
-A none:關(guān)閉報警機(jī)制。
使用-s選項可以使snort把報警消息發(fā)送到syslog,默認(rèn)的設(shè)備是LOG_AUTHPRIV和LOG_ALERT。可以修改snort.conf文件修改其配置。
snort還可以使用SMB報警機(jī)制,通過SAMBA把報警消息發(fā)送到Windows主機(jī)。為了使用這個報警機(jī)制,在運(yùn)行./configure腳本時,必須使用--enable-smbalerts選項。
下面是一些輸出配置的例子:
使用默認(rèn)的日志方式(以解碼的ASCII格式)并且把報警發(fā)給syslog:
./snort -c snort.conf -l ./log -s -h 192.168.1.0/24
使用二進(jìn)制日志格式和SMB報警機(jī)制:
./snort -c snort.conf -b -M WORKSTATIONS
【編輯推薦】