Chapter 1
Snort Overview ##
This manual is based on Writing Snort Rules by Martin Roesch and further work from Chris Green [email protected].It was then maintained by Brian Caswell
1.1 Getting Started ##
- Sniffer mode, 嗅探模式, 將嗅探的數據輸出到控制檯(屏幕)
- Packet Logger mode, 日誌模式, 將嗅探的數據輸出到文件
- Network Intrusion Detection System (NIDS) mode, 網絡入侵檢測(NIDS) 模式, 檢測和分析網絡流量, 最爲複雜配置最多
1.2 Sniffer Mode ##
輸出 TCP/IP packet headers :
./snort -v
這個選項只會輸出 IP TCP/UDP/ICMP headers ,
顯示 application data :
./snort -vd
1.3 Packet Logger Mode ##
如果想把捕獲的數據存入磁盤, 可用這個模式, 例如:
./snort -dev -l ./log
使用這個選項時, log 文件夾必須存在, 否則會報錯
指定home network:
./snort -dev -l ./log -h 192.168.1.0/24
在高速網絡環境下, 可以保存爲二進制模式(Binary mode), 這樣會將 tcpdump 格式儲存爲一個二進制文件:
./snort -l ./log -b
保存的二進制文件可以用 -r 選項載入查看:
./snort -dv -r packet.log
Snort 支持 BPF 過濾規則, 例如想查看 log 中關於的內容 ICMP :
./snort -dvr packet.log icmp
For more info on how to use the BPF interface, read the Snort and tcpdump man pages.
1.4 Network Intrusion Detection System Mode ##
啓用NIDS模式, 可以簡單的用以下命令 :
./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf
snort.conf 是 snort 的配置文件, -c 是啓用配置文件, 後面跟的是配置文件存放的路徑+文件名. 關於配置文件 snort.conf .
如果沒有聲明 ./log, 日誌會默認存放在 /var/log/snort
如果要長期開着IDS模式, -v 和 -e 選項應該去掉, -v 輸出到屏幕太慢 可能會丟包, -e 是記錄數據鏈接的headers :
./snort -d -h 192.168.1.0/24 -l ./log -c snort.conf
1.4.1 NIDS Mode Output Options ###
使用命令行可以快速調試, 比使用配置文件的優先級要高
輸出警報信息到 syslog 可以使用 -s 選項, 默認的警報機制是 LOG AUTHPRIV 和 LOG ALER. 詳細的 syslog output configuration 之後會講.
例如, 用一下命令行可以記錄默認的(ASCII解碼)系統並且將警報信息輸出到syslog :
./snort -c snort.conf -l ./log -h 192.168.1.0/24 -s
另一組命令會記錄在 /var/log/snort 默認系統, 併發送警報信息到快速警報文件(fast alert file) :
./snort -c snort.conf -A fast -h 192.168.1.0/24
1.4.2 Understanding Standard Alert Output ###
Snort生成的警報信息格式一般是這樣的:
[**] [116:56:1] (snort_decoder): T/TCP Detected [**]
第一個數字是 Generator ID (GID), 表示通過Snort什麼組件生成的這個警報. GID的清單可以在 Snort 文件目錄的 etc/generators 查看.
第二個數字是 Snort ID (SID), 也可以叫Signature ID. SID 的清單可以在 Snort 文件目 etc/gen-msg.map 查看. Rule-based SID 通過 sid 選項 直接寫入規則(rules)文件.
第三個數字是 revision ID. 這個數字主要用來當簽名使, 通過 rev 選項, 每次執行觸發規則(rendition of the rule)的時候都會增加.
1.4.3 High Performance Configuration ###
如果你想讓 Snort 執行的更快 (比如在1000Mbps的環境下), 你需要用 undified2 logging 和 undified2 log reader , 比如 barnyard2 . 這會允許Snort通過二進制形式記錄, 性能比寫入數據庫快的多.
如果你想方便複製粘帖用文本文件記錄的話, 用 ‘fast’ 輸出機制. 這樣會通過 tcpdump 格式記錄數據包, 產生最少的警報, 例如 :
./snort -b -A fast -c snort.conf
1.4.4 Changing Alert Order
默認的規則適用順序並不一定滿足所有要求. 規則的優先級如下
Pass rules > Drop rules > Log rules
有的時候 pass rule 會忽略一些警報, 爲了獲取更多信息可以通過 –alert-before-pass 選項 將 Alert rules 提前.
一些可以用來改變順序的命令行:
- –alert-before-pass 強制將 alert rules 提前
- –treat-drop-as-alert 將 drop 和 reject rusles 一起其他相關警報作爲 alert 記錄.
- –process-all-events 處理所有事件.
Pass rules 是特殊情況, 如果遇到 pass rule, 事件也會不遵守 –process-all-events 被終止.