snort.conf分析
此文件包含一個snort配置樣例。
共分五步驟:
1 設置你的網絡變量
2 配置動態加載庫
3 配置預處理器
4 配置輸出插件
5 增長任意的運行時配置嚮導
6 自定義規則集
step1:設置你的網絡變量1 其中針對本地網絡給出3種方式:
a) 清晰指定你的本地網絡
var HOME_NET 192.168.1.0/24
(若是但願構建的Snort支持IPV6支持,則這裏定義網段的類型就
應該改成pvar)
b) 使用全局變量
var HOME_NET $eth0_ADDRESS
c) 也可必定義一個地址列表,中間用逗號隔開:
var HOME_NET [10.1.1.0/24,192.168.1.0/24] (列表中不能有空格)
d) 定義任意的IP地址
var HOME_NET any
2 針對外部網絡
a) 所有
var EXTERNAL_NET any
b) 除了HOME_NET以外的
var EXTERNAL_NET !$HOME_NET
3 配置你的服務器列表
(若是你都沒有運行一個web server,幹嗎還要檢測HTTP 攻擊呢?這樣能夠基於IP地址進行快速的過濾,這些配置必須保持和$HOME_NET相同的配置框架)
DNS服務:
var DNS_SERVERS $HOME_NET
SMTP服務:
var SMTP_SERVERS $HOME_NET
Web 服務:
var HTTP_SERVERS $HOME_NET
SQL服務:
var SQL_SERVERZ $HOME_NET
Telnet服務:
var TELNET_SERVERS $HOME_NET
FTP服務:
var FTP_SERVERS $HOME_NET
SNMP服務:
var SNMP_SERVERS $HOME_NET
4 配置你的服務端口
這使得snort去跟蹤針對特色端口應用的攻擊,如你的web server在端口8180上,則你應這樣配置:
portvar HTTP_PORTS 8180
不過這個值一般爲80,所以定義爲:
portvar HTTP_PORTS 80
若是你但願定義多HTTP端口,語法是這樣的:
portvar HTTP_PROTS [80,8080] 或者
portvar HTTP_PROTS[80,8000:8080]
可是在rule中只能定義$HTTP_PORTS一次,以前曾有方法對此變量進行重定義,包含了兩次定義,這種作法已經再也不使用。
eg:
定義你但願發現SHELLCODE的端口:
portvar SHELLCODE_PORTS !80
可能發想對ORACLE的攻擊:
portvar ORACLE_PORTS 1521
針對FTP服務的端口:
portvar FTP_PORTS 21
AIM 服務(聊天服務):
AOL公司有增長新的AIM 服務的習慣,咱們將他們都增長到服務列表中,而不是修改它們的簽名(這一句話,我還理解的不夠透徹,原文是: AOL has a habit of adding new AIM servers, so instead of modifying signatures when they do, we add them to this list of servers.)
var AIM_SERVERS [64.12.24.0/23, ....]
5 配置你的rules文件路徑
這個能夠是一個相對路徑(不過對於windows用戶,最好給絕對路徑)
var RULE_PATH /etc/snort/rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules6 配置你的解碼器
說明:snort的解碼器會由於不少事情而產生警報,如報文頭截斷、不正常的長度和不常用的tcp 選項。
關閉通常解碼事件:
config disable_decode_alerts
關閉針對實驗TCP選項的警告
config disable_tcpopt_experimental_alerts
關閉針對失效TCP選型的警告
config disable_tcpopt_obsolete_alerts
關閉針對T/TCP警告的相應
config disable_tcpopt_ttcp_alerts
關閉針對全部TCP選項類型事件的相應
config disable_tcpopt_alerts
關閉針對非法ip選型的警告
config disable_ipopt_alerts
開啓警告:若是(IP,TCP,UDP)的長度域中的值要比真實捕獲數據包的長度值要大,則發出警告:
config enable_decode_oversized_alerts
同上面場景可是,但若是在inline模式中,將直接drop此包,但需保證上面的config: enable_decode_oversized_alerts已經開啓:
config enable_decode_oversized_drops
7 配置你的檢測引擎
若是你的電腦只有很是限定的資源,則需使用不一樣模式匹配:
config detection: search-method lowmem
8 配置inline重置(resets)
若是你在snort的inlineMode()模式中運行iptables防火牆,咱們如今能夠經過物理設備執行重置操做。咱們從iptables中獲取indev,而後使用此做爲發送resets的接口。這個配置將使用源mac地址來做爲你想重置包的參數。這種方式bridge將會繼續保持stealthy. 若是源mac地址選項沒有設置,咱們默認將經過raw socket發送resets,但須要ip地址。
config layer2resets: 00:06:76:DD:5F:E3
**********************************************
Step2: 配置動態加載庫
若是snort配置了使用動態加載庫,則庫將會在這裏加載。
下面的配置選型均可以經過command行執行。
1 從安裝路徑加載全部動態預處理器
(=在命令行選型:--dynamic-preprocessor-lib-dir)
dynamicpreprocessor directory /usr/lib/snort_dynamicpreprocessor/
2 從安裝路徑加載指定的動態預處理器
(=命令行選型: --dynamic-preprocessor-lib)
dynamicpreprocessor file /usr/lib/snort_dynamicpreprocessor/libdynamicexample.so
3 從安裝路徑加載動態引擎
(=命令行選項:--dynamic-engine-lib)
dynamicengine /user/lib/snort_dynamicengine/libsf_engine.so
4 從安裝路徑加載全部動態規則庫
(--dynamic-detection-lib-dir)
dynamicdetection directory /usr/lib/snort_dynamicrule/
5 加載指定動態規則庫
(--dynamic-detection-lib)
dynamicdetection file /usr/lib/snort_dynamicrule/libdynamicexamplerule.so
************************************************
Step3: 配置預處理器
通常針對預處理的配置形式以下:
preprocessor <name_of_processor>: <configuration_options>
1. frag3: 基於目標的IP分片重組
Frag3是一個新的IP分片重組處理器,能夠執行基於目標的IP分段處理。經過doc目錄下的README.frag3,你能夠獲得更多相關背景和配置消息。
Frag3配置分爲兩步,首先是全局的初始化階段,以後是定義分段引擎設置。
全局配置定義了snort能夠同時跟蹤的分片包數目,而且給你考慮子系統內存的一些選型,你能夠選擇將全部內存預分配給frag3系統。
a) frag3_global 選項:
max_frag3: 同時最大分片跟蹤數,默認是8192
mem_cap: frag3能夠在任意指定時間訪問的最大內存,默認爲4MB
prealloc_frages: 一次可以處理的最大分片數目。它取代memcap系統,而是經過靜態分配來提升性能。沒有默認值,每個典型的預分配分段佔有1550bytes左右,然而,精確數量是由snaplen(解釋:SnapLen, Snap Length, or snapshot length is the amount of data for each frame that is actually captured by the network capturing tool and stored into the CaptureFile. This is sometimes called PacketSlicing.)決定的,要留意這個能夠高達64k。
b) frag_engine 選項:
timeout: 一個分片的包在消亡前可能激活須要的總時間,默認是60sec。
ttl_limit: 在分片中可容許的包的TTL值。這要基於初始接受的片斷的TTL。
min_ttl: 分片中可接受的最小TTL值,分片的TTLs要是低於此值將會被丟棄,默認值0.
detect_anomalies: 激活frag3的異常檢測機制
policy: 分配到此引擎的基於目標的策略,默認爲BSD,linux系統爲LINUX
bind_to: 綁定到此引擎的IP地址集,默認是全部主機。
c) Frag3 配置例子:
preprocessor frag3_global: max_frag3 65536, prealloc_frag3 65536
preprocessor frag3_engine: policy linux/
bind_to [10.1.1.12/32,10.1.1.13/32] /
detect_anomalies
preprocessor frag3_engine: policy first /
bind_to 10.2.1.0/24 /
detect_anomalies
preprocessor frag3_engine: policy last/
bind_to 10.3.1.0/24
preprocessor frag3_engine: policy bsd
在snort.conf默認開啓的配置是:
preprocessor frag3_global: max_frags 65536
preprocessor frag3_engine: policy first detect_anomalies overlap_limit 10
2. Stream5
stream5是snort中的一個基於目標的流引擎。它可以處理TCP和UDP跟蹤鏈接,以及TCP組裝。
在README.stream5能夠看到更詳細的配置選項。
eg:
preprocessor stream5_global: max_tcp 8192, track_tcp yes, track_dup no.
preprocessor stream_tcp: policy first
在產品系統中不推薦的:
preprocessor stream5_tcp: policy first, use_static_footprint_sizes
preprocessor stream5_udp: ignore_any_rules
3 性能策略:
這一部分在Snort Manual中有介紹,你能夠閱讀。
preprocessor perfmonitor: time 300 file /var/snort/snort.stats pktcnt 10000
4 http檢查:標準化和檢測Http流量和協議異常
這裏提供了不少選項,能夠查看/doc/README.http_inspect.
unicode.map應該在你snort.conf所在的地方,你應該給一個snort能夠找到的全路徑。
preprocessor http_inspect: global /
iis_unicode_map unicode.map 1252
preprocessor http_inspect_server: server default /
profile all ports {80 8080 8180} oversize_dir_length 500
5 單一應用服務器的配置:
proprocessor http_inspect_server: server 1.1.1.1 /
ports { 80 3128 8080 }
server_flow_depth 0 /
ascii no /
double_decode yes /
non_rfc_char { 0x00 } /
chunk_length 500000/
non_strict /
oversize_dir_length 300 /
no_alters
6 rpc_decode: 標準化RPC 流量
除了默認的一般的4-byte編碼,RPC被看成候補編碼。這個插件須要RFC的服務端口做爲參數(假定給出的端口都是運行此類型服務的,若是不是,將改變端口或者關閉)
RPC解碼預處理器使用產生器ID 106
參數:須要使用空格分開
alert_fragments: 警報,在全部RPC分段TCP數據
no_alert_multiple_requests: 當1個包中的rpc查詢大於1時,發生警報
no_alert_large_fragments: 當分片大小超過當前包大小時不報警
no_alert_incomplete: 當一個單片斷大小超過當前包大小時不報警
(我對fragment和segment的區別還不是清楚)
eg:
preprocessor rpc_decode: 111 32771
7 bo: Back Orifice 後門檢測器
用來檢測網絡上的 後門流量
參數:
語法:
preprocessor bo: noalert {client | server | general | snort_attack } /
drop {client | server | general | snort_attack}
案例:
preprocessor bo: noalert {general server} drop { snort_attack}
後門檢測器Bo使用發生器ID:105,並使用如下SIDS:
SID 事件描述
1 後門流量檢測
2 後門客戶端流量檢測
3 後門服務端流量檢測
4 後門Snort緩衝區攻擊
proprocessor bo
8 ftp_telnet: FTP & Telent 標準化,協議強制和緩衝區溢出
這個預處理器會標準化telnet 協商字符串從telnet和ftp流量中。它查找打破協議數據流標準化的流量,使用標準化的表示取而代之。這樣的內容模式匹配關鍵詞能夠在不進行修改狀況下的工做。
它一樣能夠執行協議正確性檢測對於FTP命令頻道,並鑑定開放的FTP數據轉移。
FTPTelnet有不少可選型,能夠讀README.ftptelnet來尋求配置選項,對於全局telnet、ftp server, 協議的ftp clinet 分段。
在Step2中,能夠這樣設置來加載ftptelnet預處理器:
dynamicpreprocessor file <full path to libsf_ftptelnet_preproc.so>
或者使用命令行:
--dynamic-preprocessor-lib <full path to libsf_ftptelent_preproc.so>
eg:
preprocessor ftp_telnet global /
encrypted_traffic yes/
inspection_type stateful
preprocessor ftp_telnet_protocol: telnet /
normalize /
ayt_attack_thresh 200
下面的是符合2004-09-18發佈的規則:
cwd能夠包含長度爲200的參數;
MODE 有一個額外z模式(壓縮);
檢查字符串格式,經過USER & PASS 命令;
檢查nDTM命令(設置文件的修改時間).
preprocessor ftp_telnet_protocol: ftp server default /
def_max_param_len 100/
alt_max_param_len 200 {CWD} /
cmd_validity MODE <char ASBCZ> /
cmd_validity MDTM <[data nnnnnnnnnnnnnn[.n[n[n]]] string >/
chk_str_fmt { USER PASS RNAR RNTO SITE MKD } /
telent_cmds yes/
data_chan
preprocessor ftp_telnet_protocol: ftp client default /
max_resp_len 256 /
bounce yes /
telenet_cmds yes
9 SMTP
smtp標準化,協議強制和緩衝區溢出
這個預處理器經過取出多餘的空間來標準化SMTP命令,它會查找過長的命令行,響應行以及數據頭行。它會在非法的命令或者指定的合法命令行發出警報。能夠有選擇的忽略郵件數據,而且能夠忽略TLS加密數據。
SMTP有不少選項提供,能夠查看README.SMTP。
在Step2中,能夠經過如下設置來加載smtp預處理器。
dynamicpreprocessor file <full path to libsf_smtp_prepro.so>
or use commandline option
--dynamic-preprocessor-lib <full path to libsf_smtp_prepro.so>
配置Smtp預處理器:
preprocessor smtp: /
ports {25 587 691} /
inspection_type stateful /
normalize cmds /
normalize_cmds { EXPN VRFY RCPT } /
alt_max_command_line_len 260 { MAIL }
alt_max_command_line_len 300 { RCPT }
alt_max_command_line_len 500 { HELP HELP ETRN} /
alt_max_command_line_lne 255 { EXPN VRFY }
10 sfPortscan預處理器
端口掃描檢測模塊。檢測各類不一樣類型的端口掃描。經過README.sfportscan能夠得多更多關於檢測原理、警告類型以及端口掃描細節。
配置選項:
proto { tcp udp icmp ip all }
這個關於原型選擇的參數要列出你但願檢測的協議類型。參數之間用空格分開而且不能有逗號。
scan_type { portscan portsweep decoy_portscan distributed_portscan all }
這個參數描述你但願尋則檢測的掃描類型,參數應用空格區分而且不能有逗號。
sense level { low|medium|high}
這個選項只須要一個參數,用來肯定檢測端口掃描的敏感度水平。‘low’級別使用通用方法來查找響應錯誤,如TCP RSTs和ICMP沒法到達,這個級別須要最少的優化。medium級別會檢測端口掃描和過濾端口掃描(那些沒有收到響應的端口掃描),這個級別一般須要優化從NATed IPs以及DNS
cache servers來的掃描事件。high級別有最小的端口檢測限制,比medium有更長的時間窗,須要more tuning and may be noisy on very active networks(這一句話我還理解不了),而後這個界別捕獲更多的掃描。
memcap { positive integer)
分配給端口掃描的最大字節數。數字越高,越多節點能夠被跟蹤。
logfile { filename }
指定端口掃描和詳細端口掃描值的寫入日誌文件位置。若是沒有以/開頭,snort會寫入配置的log目錄。經過README.sfportscan查看更詳細的關於項log文件寫日誌的方法。
watchip { Snort IP List }
ignore_scanners { snort IP list }
ignore_scanned { Snort IP List }
這些選項採用snort IP list做爲參數,其中watch_ip選項制定須要觀察的IP(s). ignore_scanners指定做爲端口掃描者要忽略的IP(s),須要注意的是這些主機會做爲被掃描主機依然被觀察,ignore_scanners用來優化針對動態主機,如Nat,nessus主機等的警告。ignore_scanned選項指定要做爲被掃描主機要忽略的IPs,做爲掃描者的主機他們依然被觀察。這個選型被用來優化從syslog servers過來的活動主機的警報。
detect_ack_scans
這個選型will include sessions pickup up in midstream by the stream module,這隊檢測ACK 掃描是頗有必要的。然而,這也可能會致使錯誤警報,特別是under heavy load with dropped packets,這也是這個原型默認是off的緣由。
eg:
preprocessor sfportscan: proto { all } /
memcap { 10000000 } /
sense_level { low }
11 arpspoof 預處理器 arp欺騙
使用從Jeff Nathan過來的實驗性質的ARP檢測代碼,用來檢測ARP攻擊和單播ARP攻擊,而且指定ARP映射監控。要想使用此預處理器,你必須制定IP和MAC地址 on the same layer 2 segment as you. 指定一個主機IP MAC在同一行。同時採用-unicast選型來開啓單播arp請求檢測。Arpspoof使用產生器GID:112,針對此GID使用一下SIDS:
SID 事件描述
1 單播Arp請求
2 以太結構ARP錯配(src)
3 以太結構ARP錯配(dst)
4 ARP cache重寫攻擊
eg:
preprocessor arpspoof
preprocessor arpspoof_detect_host: 192.168.40.1 f0:0f:00:of:0f:00
12 SSH 預處理器
SSH預處理器檢測如下exploit:challenge-Response Authentication overflow, CRC 32 overflow, Secure CRT version string overflow, protocol version mismatches.
CRAuth 和 CRC 32攻擊都發生在key交換以後,所以都是加密的。二者的攻擊包含在認證交換以後當即發送一個大於20Kb+的payload到服務端。爲了檢測這種攻擊,SSH 預處理計算傳送到服務端的字節數目。若是超過預約義限制(經過max_client_bytes設置),就會發生警報。因爲CRAuth隻影響SSHv2,而CRC 32隻影響SSHv,所以SSH版本字符串能夠用來區分攻擊類型。
Secure CRT和協議錯配exploits在key交換以前是能夠看到的。
此預處理器有不少選型提供,能夠查看:README.ssh。
對於Step2,經過一下設置能夠加載ssh預處理器:
dynamicpreprocessor file <full path to libsf_ssh_prepro.so>或者使用命令行選項:
--dynamic-preprocessor-lib <full path to libsf_ssh_prepro.so>
eg:
preprocessor ssh: server_ports { 22 } /
max_client_bytes 19600 /
max_encrypted_packets 20 /
enable_respoverflow enable_ssh1crc32 /
enalbe_respoverflow enable_protomismatch
13 DCE/RPC 預處理器
DCR/RPC預處理其檢測和解碼SMB和DCE/RPC流量,首先關注DCE/PRC流量,而且只有在DCE/RPC數據被SMB層傳遞時纔會解碼SMB。
當前,預處理器能夠處理分片重組在SMB和DCE/RPC層。Snort規則能夠經過使用二者分片方式躲避。經過此預處理器,使規則獲得一個緩衝區,經過重組的SMB和DCE/RPC包去檢測。
在SMB層,只有分片使用WriteAndX能夠在當前版本重組,其它方法預計會在之後的處理器版本中重組。
經過在SMB數據開始查找"xFFSMB"來檢測SMB,也能夠經過檢測NetBIOS頭來檢測"set session"類型。
自動檢測DCE/RPC是不可靠的。當前,在數據報中有兩個字節被檢測。假定數據是DCE/RPC頭,一個字節是用來檢測DCE/RPC版本5,另一個用來檢測類型「DCE/RPC 請求」。若是二者都匹配,在這種假設下,救人爲預處理其找到了DCE/PRC數據。若是接下來的檢測是沒有意義的,就中止處理。
能夠經過README.dcerpc來獲取更多配置選項。
對於Step2,能夠這樣來加載DCERPC預處理器:
dynamicpreprocessor file <full path of libsf_dcerpc_preproc.so>
or命令行:
--dynamic-preprocessor-lib <full path of libsf_dcerpc_preproc.so>
eg:
preprocessor dcerpc: /
autodetect /
max_flag_size 3000 /
memcap 100000
14 DCE/RPC 2 預處理器
去doc/README.dcerpc2 查看解釋和配置,eg:
preprocessor dceproc2
preprocessor dceproc2_server: default
15 DNS 預處理器
DNS 預處理其可以隊DNS響應流量進行解碼,而且檢測一些脆弱點。
從README.dns查找詳細配置。
load:
dynamicpreprocessor file <full path to libsf_dns_preproc.so>
in command mode:
--dynamic-preprocessor-lib <full path to libsf_dns_preproc.so>
eg:
preprocessor dns: /
ports { 53 }
enable_rdate_overflow
16 SSL 預處理器
考慮到性能和減小誤報率,加密流量應該被snort忽略。SSL動態預處理器會探測SSL流量,並提供是否和合適中止探測的選項。
典型的,SSL被HTTPS在端口443上使用。經過SSLPP來監視端口443,只有每個鏈接的SSL握手或乘能夠被探測,一旦數據流量被加密,就沒有進一步的檢測。
若是你不徹底相信SSL capable servers的能力,你能夠從你的配置中剔除「trustservers"這個選項。
重要提示: Stream5應該明確地被告知重組流量,當你試圖檢測SSL加密流量。對於Stream5,要增長對端口443的重組,須要增長配置:port both 443.
eg:
preprocessor ssl: noinpsect_encrypted, trustservers
*************************************************************
Step4: 配置輸出插件
對你但願使用輸入方式取消註釋。輸出插件的使用form爲:
output <name_of_plugin>: <configuration_options>
alert_syslog: log alerts to syslog
使用一個或多個syslog設施做爲參數。win32也能夠有選擇地制定一個特殊的主機名/端口,在win32下,默認的主機名127.0.0.1,默認端口514(我要死?? ^-^)
Unix風味應該使用一下方式:
output alert_syslog: LOG_AUTH LOG_ALERT
win32可使用一下任意模式:
output alert_syslog: LOG_AUTH LOG_ALERT
output alert_syslog: host=hostname, LOG_AUTH LOG_ALERT
output alert_syslog: host=hostname:port, LOG_AUTH LOG_ALERT
1 log_tcpdump: 以二進制tcpdump格式log包
惟一的參數就是輸出文件名:
output log_tcpdump: tcpdump.log
2 database:log到多種類型的數據庫中
查看README.database獲得更多配置信息。
output database: log,mysql,user=root password=test dbname=db host=localhost
ouput database: alert, postgresql, user=snort dbname=snort
ouput database: log, odbc, user=snort, dbname=snort
ouput database: log, mysql, dbname=snort user=snort password=snort-db host=localhost
ouput database: log, oracle, dbname=snort user=snort password=test
<debian>
(#DESTART#)
(#DBEND#)
保持遠離此區域(#DESTART#以及#DBEND#),不然你就破會配置進程(只針對snort-pqsql 和 snort-mysql),你防置在二者之間的任何東西都會從配置中移除。
</debian>
3 unified:snort統一化二進制警告和log格式
提供二者格式用來log和產生警告,"unified"格式是一種直接的二進制格式用來log和alert,快速而且有效。經過使用barnyard(一種新的alrt/log處理器),大部分的慢速存儲機制,如數據庫和網絡形式都會被avoid。
查看spo_unified.h來獲取數據格式:
兩個參數:
filename: 基本寫入文件(當前time_t會被附加)
limit: 最大緩衝文件大小(單位MB,默認爲128MB)
eg:
output alert_unified: filename snort.alert, limit 128
output alert_unified: filename snort.log, limit 128
4 prelude: log to Prelude Hybrid IDS 系統
prelude profile默認名:snort
classification.config給出的默認映射:
info=4
low=3
medium=2
high=anything below medium
eg:
output alert_prelude
output alert_prelude: profile=snort-profile-name
5 你能夠有選擇地定義新的規則類型而且使用一個或多個輸出方式
輸出特定類型:
下面這個例子將會建立一個類型,並僅log到tcpdump
ruletype suspicous
{
type log
output log_tcpdump: suspicious .log
}
使用案例:
suspicious tcp $HOME_NET any -> $HOME_NET 6667 (msg:" Internal IRC Server";)
下面的例子將會建立寫入到syslog和mysql數據庫:
ruletype redalert
{
type alert
output alert_syslog: LOG_AUTH LOG_ALERAT
ouput database: log, mysql, user=snort dbname=snort host=localhost
}
使用案例:
redalert tcp $HOME_NET any -> $EXTERNAL_NET 31337 /
(msg: "some one is bing LEET"; flags:A+ )
6 包含分類和優先設置
對於winodws用戶:哥們,最好有絕對路徑。
include classification.config
7 包含引用系統
include reference.config
*************************************************
Step5: 經過配置聲明來配置Snort
經過Snort manual來獲取full配置引用。
config flowbits_size: 64
新的全局忽略配置選型(from andy Mullican)
config ignore_ports: <tcp|udp> <list of ports 用空格區分)
config ignore_ports: tcp 21 6667:6671 1356
config ignore_ports: udp 1:17 53
************************************************
Step6:自定義你的規則集
實時的snort規則提供:http://www.snort.org
snort web站點會告訴你如何寫新的自定義snort 規則。
包含全部相關規則集
下列規則集默認禁用:
web-attacks, backdoor, shellcode, policy, porn, info, icmp-info, virus, chat, multimedia, and p2p
這些規則要麼須要專門網站策略制定或者爲了在多數環境中不產生誤報警告而進行優化。
請讀README.alert_order: 規則順序是如何影響警報觸發的。
下面附上默認的Snort.conf開啓的規則集和關閉的(關閉的以#開頭):
include $RULE_PATH/local.rules
include $RULE_PATH/bad-traffic.rules
include $RULE_PATH/exploit.rules
include $RULE_PATH/community-exploit.rules
include $RULE_PATH/scan.rules
include $RULE_PATH/finger.rules
include $RULE_PATH/ftp.rules
include $RULE_PATH/telent.rules
include $RULE_PATH/rpc.rules
include $RULE_PATH/reservices.rules
include $RULE_PATH/dos.rules
include $RULE_PATH/community-dos.rules
include $RULE_PATH/ddos.rules
include $RULE_PATH/dns.rules
include $RULE_PATH/tftp.rules
特定的web服務規則集:
include $RULE_PATH/web-cgi.rules
include $RULE_PATH/web-coldfusion.rules
include $RULE_PATH/web-iis.rules
include $RULE_PATH/web-frontpage.rules
include $RULE_PATH/web-misc.rules
include $RULE_PATH/web-client.rules
include $RULE_PATH/web-php.rules
include $RULE_PATH/community-sql-injection.rules
include $RULE_PATH/community-web-client.rules
include $RULE_PATH/community-web-dos.rules
include $RULE_PATH/community-web-iis.rules
include $RULE_PATH/community-web-misc.rules
include $RULE_PATH/community-web-php.rules
針對其它服務的規則:
include $RULE_PATH/sql.rules
include $RULE_PATH/xll.rules
include $RULE_PATH/icmp.rules
include $RULE_PATH/netbios.rules
include $RULE_PATH/misc.rules
include $RULE_PATH/attack-responses.rules
include $RULE_PATH/oracle.rules
include $RULE_PATH/community-oracle.rules
include $RULE_PATH/mysql.rules
include $RULE_PATH/snmp.rules
include $RULE_PATH/community-smtp.rules
include $RULE_PATH/smtp.rules
include $RULE_PATH/imap.rules
include $RULE_PATH/community-imap.rules
include $RULE_PATH/pop2.rules
include $RULE_PATH/pop3.rules
include $RULE_PATH/nntp.rules
include $RULE_PATH/community-nntp.rules
include $RULE_PATH/community-sip.rules
include $RULE_PATH/other-ids.rules
Attack-in-progress rules: 攻擊進行時規則
include $RULE_PATH/web-attacks.rules
include $RULE_PATH/backdoor.rules
include $RULE_PATH/community-bot.rules
include $RULE_PATH/community-virus.rules
這個幾乎沒用:
#include $RULE_PATH/virus.rules
注意:這條規則很是chatty,當心使用
#include $RULE_PATH/shellcode.rules
Policy相關規則:
#include $RULE_PATH/policy.rules
#include $RULE_PATH/community-policy.rules
#include $RULE_PATH/porn.rules
#include $RULE_PATH/community-inappropriate.rules
#include $RULE_PATH/chat.rules
#include $RULE_PATH/multimedia.rules
#include $RULE_PATH/p2p.rules
#include $RULE_PATH/comunity-game.rules
#include $RULE_PATH/community-misc.rules
很是Chatty的規則:
#include $RULE_PATH/info.rules
#include $RULE_PATH/icmp-info.rules
#include $RULE_PATH/community-icmp.rules
實驗性規則:(空的)
#include $RULE_PATH/experimental
#include $PREPROC_RULE_PATH/preprocessor.rules
#include $PREPROC_RULE_PATH/decoder.rules
包含任意thresholding或者抑制命令,查看:threshold.conf (在<snort src> /etc目錄中。命令不須要包含到此conf文件中,分割開使管理更爲容易。
對於windows用戶,提醒使用絕對路徑,如:
c:/snort/etc/threshold.conf
若是須要,請取消註釋:
#include threshold.conf.php