2.6 Snort 輸出模塊
從1.6版開始,輸出模塊是新的.它們使Snort可以更加靈活地格式化和呈現給用戶.在預處理器和檢測引擎之后,當調用Snort的警報或日志記錄子系統時,將運行輸出模塊.配置文件中指令的格式與預處理器的格式非常相似.
可以在Snort配置文件中指定多個輸出插件.如果指定了多個相同類型的插件(日志,警報),則它們會堆疊并在事件發生時依次調用.與標準的日志記錄和警報系統一樣,默認情況下,輸出插件會將其數據發送到/ var / log / snort或用戶定向的目錄(使用-l命令行開關).
通過在配置文件中指定輸出關鍵字,可以在運行時加載輸出模塊:
output <name>: <options>
output alert_syslog: log_auth log_alert
2.6.1 alert_syslog
此模塊將警報發送到syslog工具(非常類似于-s命令行開關).該模塊還允許用戶在Snort配置文件中指定日志記錄功能和優先級,從而使用戶在記錄警報方面具有更大的靈活性.
2.6.1.1 可用關鍵字
2.6.1.1.1 設施
log_authlog_authprivlog_daemonlog_local0log_local1log_local2log_local3log_local4log_local5log_local6log_local7log_user
2.6.1.1.2 優先事項
log_emerglog_alertlog_critlog_errlog_warninglog_noticelog_infolog_debug
2.6.1.1.3 選項
log_conslog_ndelaylog_perrorlog_pid
2.6.1.2 格式
alert_syslog:
<facility> <priority> <options>
注意: 由于WIN32默認情況下不在本地運行syslog服務器,因此可以將主機名和端口作為選項傳遞.默認主機為127.0.0.1.默認端口是514.
output alert_syslog: [host=<hostname[:<port>],] <facility> <priority> <options>
2.6.1.3 例子
output alert_syslog: host=10.1.1.1:514, <facility> <priority> <options>
2.6.2 alert_fast
這會將Snort警報以快速的單行格式打印到指定的輸出文件.與完全警報相比,它是一種更快的警報方法,因為它不需要將所有數據包頭都打印到輸出文件,并且只記錄到一個文件.
2.6.2.1 格式
output alert_fast: [<filename> ["packet"] [<limit>]]
<limit> ::= <number>[('G'|'M'|K')]
filename:日志文件的名稱.缺省名稱是< logdir>/ alert.您可以為終端輸出指定“ stdout”.該名稱可以包括絕對或相對路徑.packet:此選項將導致記錄具有完整包頭的多行條目.默認情況下,僅記錄簡短的單行條目.limit:文件大小的可選限制,默認為128 MB.最小為1 KB.
2.6.2.2 例子
output alert_full: alert.full
2.6.3 alert_full
這將打印帶有完整數據包標題的Snort警報消息.警報將寫入默認的日志目錄(/ var / log / snort)或命令行指定的日志目錄中.
在日志目錄中,將為每個IP創建一個目錄.這些文件將被解碼為觸發警報的數據包的數據包轉儲.這些文件的創建大大降低了Snort的速度.除了最輕的交通狀況外,不建議使用此輸出方法.
2.6.3.1 格式
output alert_full: [<filename> [<limit>]]
<limit> ::= <number>[('G'|'M'|K')]
filename:日志文件的名稱.缺省名稱是< logdir>/ alert.您可以為終端輸出指定“ stdout”.該名稱可以包括絕對或相對路徑.limit:文件大小的可選限制,默認為128 MB.最小為1 KB.
2.6.3.2例子
output alert_full: alert.full
2.6.4 alert_unixsock
設置UNIX域套接字并向其發送警報報告.外部程序/進程可以在此套接字上偵聽并實時接收Snort警報和數據包數據.
2.6.4.1 格式
alert_unixsock
2.6.4.2例子
output alert_unixsock
注意: 在FreeBSD上, 對于
alert_unixsock數據報,net.local.dgram.recvspace的默認sysctl值太低,您可能不會收到任何數據.您可以在啟動后通過運行以下命令來更改此值:$ sudo sysctl net.local.dgram.recvspace = 100000 要在每次引導時自動設置此值,請將以下內容添加到/etc/sysctl.conf中:net.local.dgram.recvspace = 100000 請注意,該值100000可能有點大,但該值至少應為65864.
2.6.5 log_tcpdump
log_tcpdump模塊將數據包記錄到tcpdump格式的文件中.這對于使用大量可用于檢查tcpdump格式文件的工具對收集的流量執行后處理分析很有用.
2.6.5.1 格式
output log_tcpdump: [<filename> [<limit>]]
<limit> ::= <number>[('G'|'M'|K')]
filename:日志文件的名稱.缺省名稱是< logdir>/snort.log.該名稱可以包括絕對或相對路徑.UNIX時間戳附加到文件名.limit:文件大小的可選限制,默認為128 MB.當要記錄一系列數據包時,將使用聚合大小來測試過渡條件.
2.6.5.2 例子
output log_tcpdump: snort.log
2.6.6個 csv
csv輸出插件允許以易于導入數據庫的格式編寫警報數據.輸出字段及其順序可以自定義.
2.6.6.1 格式
output alert_csv: [<filename> [<format> [<limit>]]]
<format> ::= "default"|<list>
<list> ::= <field>(,<field>)*
<field> ::= "dst"|"src"|"ttl" ...
<limit> ::= <number>[('G'|'M'|K')]
filename:日志文件的名稱.缺省名稱是< logdir>/alert.csv.您可以為終端輸出指定“ stdout”.該名稱可以包括絕對或相對路徑.format:格式選項列表如下.如果格式化選項為“默認”,則輸出按列出的格式化選項的順序進行.timestampsig_generatorsig_idsig_revmsgprotosrc支持dstdstportethsrcethdstethlentcpflagstcpseqtcpacktcplentcpwindowttltosIDdgmleniplenicmptypeicmpcodeicmpidicmpseq
limit:文件大小的可選限制,默認為128 MB.最小為1 KB.
2.6.6.2 例子
output alert_csv: /var/log/alert.csv default
output alert_csv: /var/log/alert.csv timestamp, msg
2.6.7 unified 2
Unified 2可以以以下三種模式之一工作:數據包日志記錄,警報日志記錄或真正的統一日志記錄.數據包日志記錄包括整個數據包的捕獲,并由log_unified2指定.同樣,警報日志記錄將僅記錄事件,并由alert_unified2指定.要將兩種日志記錄樣式都包含在一個統一文件中,只需指定Unified2即可.
啟用MPLS支持后,可以將MPLS標簽包含在Unified2事件中.使用選項mpls_event_types啟用此功能.如果不使用選項 mpls_event_types,則MPLS標簽將不包含在Unified2事件中.
*注意: *默認情況下,統一2個文件在創建時會在每個文件后附加文件創建時間(以Unix Epoch格式).
2.6.7.1 格式
output alert_unified2: \
filename <base filename> [, <limit <size in MB>] [, nostamp] [, mpls_event_types] \
[, vlan_event_types]
output log_unified2: \
filename <base filename> [, <limit <size in MB>] [, nostamp]
output unified2: \
filename <base file name> [, <limit <size in MB>] [, nostamp] [, mpls_event_types] \
[, vlan_event_types]
2.6.7.2 例子
output alert_unified2: filename snort.alert, limit 128, nostamp
output log_unified2: filename snort.log, limit 128, nostamp
output unified2: filename merged.log, limit 128, nostamp
output unified2: filename merged.log, limit 128, nostamp, mpls_event_types
output unified2: filename merged.log, limit 128, nostamp, vlan_event_types
2.6.7.3 額外的數據配置
Unified2還具有對各種額外數據的日志記錄支持.以下配置項將啟用這些額外的數據記錄功能.
config log_ipv6_extra_data
通過此選項,Snort可以將IPv6源地址和目標地址記錄為Unified2額外數據事件.
enable_xff
此選項使HTTP Inspect可以解析和記錄X-Forwarded-For,True-Client-IP或自定義HTTP請求標頭中存在的原始客戶端IP以及生成的事件.
log_uri
此選項使HTTP Inspect可以解析和記錄來自HTTP請求的URI數據,并將其與該會話的所有生成的事件一起記錄.
log_hostname
此選項使HTTP Inspect可以解析和記錄來自HTTP請求的主機標頭數據,并將其與該會話的所有生成的事件一起記錄.
log_hostname
此選項使HTTP Inspect可以解析和記錄來自HTTP請求的主機標頭數據,并將其與該會話的所有生成的事件一起記錄.
log_mailfrom
此選項使SMTP預處理程序可以解析和記錄從“ MAIL FROM”命令中提取的發件人電子郵件地址,以及該會話的所有已生成事件.
log_rcptto
此選項使SMTP預處理程序可以解析和記錄從“ RCPT TO”命令中提取的收件人電子郵件地址,以及該會話的所有生成的事件.
log_filename
此選項使SMTP預處理程序可以解析和記錄從MIME主體中的Content-Disposition標頭提取的MIME附件文件名,以及該會話的所有生成的事件.
log_email_hdrs
此選項使SMTP預處理程序可以解析和記錄從SMTP數據中提取的SMTP電子郵件標頭以及該會話的所有生成的事件.
2.6.7.4 讀取Unified2文件
2.6.7.5 U2SpewFoo
U2SpewFoo是一個輕量級的工具,用于將Unified2文件的內容轉儲到stdout.
例子用法:
u2spewfoo snort.log
例子輸出:
(Event)
sensor id: 0 event id: 4 event second: 1299698138 event microsecond: 146591
sig id: 1 gen id: 1 revision: 0 classification: 0
priority: 0 ip source: 10.1.2.3 ip destination: 10.9.8.7
src port: 60710 dest port: 80 protocol: 6 impact_flag: 0 blocked: 0
Packet
sensor id: 0 event id: 4 event second: 1299698138
packet second: 1299698138 packet microsecond: 146591
linktype: 1 packet_length: 54
[ 0] 02 09 08 07 06 05 02 01 02 03 04 05 08 00 45 00 ..............E.
[ 16] 00 28 00 06 00 00 40 06 5C B7 0A 01 02 03 0A 09 .(....@.\.......
[ 32] 08 07 ED 26 00 50 00 00 00 62 00 00 00 2D 50 10 ...&.P...b...-P.
[ 48] 01 00 A2 BB 00 00 ......
(ExtraDataHdr)
event type: 4 event length: 33
(ExtraData)
sensor id: 0 event id: 2 event second: 1299698138
type: 9 datatype: 1 bloblength: 9 HTTP URI: /
(ExtraDataHdr)
event type: 4 event length: 78
(ExtraData)
sensor id: 0 event id: 2 event second: 1299698138
type: 10 datatype: 1 bloblength: 12 HTTP Hostname: example.com
2.6.7.6 U2Boat
U2boat是用于將Unified2文件轉換為不同格式的工具.
當前支持的轉換格式為:pcap
用法:
u2boat -t pcap <infile> <outfile>
2.6.8 log null
有時,能夠創建規則以警告某些類型的流量但不會引起數據包日志條目很有用.在Snort 1.8.2中,引入了log_null插件.這等效于使用-n命令行選項,但可以在規則類型中使用.
2.6.8.1 格式
output log_null
2.6.8.2 例子
output log_null # like using snort -n
ruletype info {
type alert
output alert_fast: info.alert
output log_null
}
2.6.9 日志限制
本部分與alert_fast, alert_full,alert_csv和log_tcpdump生成的日志有關. Unified2也可能會受到限制.這些限制在相應的部分中進行了說明.
達到配置的限制時,將關閉當前日志,并使用在配置的日志名稱后附加UNIX時間戳的方式打開新日志.
限制配置如下:
<limit> ::= <number>[(<gb>|<mb>|<kb>)]
<gb> ::= 'G'|'g'
<mb> ::= 'M'|'m'
<kb> ::= 'K'|'k'
翻轉最多每秒發生一次,因此如果限制對于日志記錄速率而言太小,將超出限制.如果snort停止/重新啟動,翻轉將正常工作.
Snort安裝使用中文手冊
推薦文章: