2.9 如何重新加載Snort 配置
Snort現在支持重新加載配置,而不是重新啟動Snort,以便在配置更改期間提供無縫的流量檢查。一個單獨的線程將解析并創建一個可交換的配置對象,而主要的Snort數據包處理線程將繼續檢查當前配置下的流量。當可交換配置對象準備好使用時,主Snort數據包處理線程將交換新配置以供使用,并將在新配置下繼續進行處理。請注意,對于某些預處理器,現有會話數據將繼續使用其創建時所使用的配置,以繼續對該會話的正確狀態。但是,所有新創建的會話將使用新配置。
2.9.1 啟用支持
要啟用對重新加載配置的支持,請添加-enable-reload以在編譯時進行配置。
還有一個輔助選項,用于確定如果更改了任何不可重新加載的選項,Snort應該如何表現。默認情況下,此選項是啟用的,并且如果添加/修改/刪除了任何不可重新加載的選項,則Snort的行為將重新啟動。要禁用此行為并使Snort退出而不是重新啟動,除了-enable-reload以外,還添加 -disable-reload-error-restart以便在編譯時進行配置。
注意:Windows當前不支持此功能。注意:在OpenBSD系統的主網絡接口上運行Snort時,重新加載和failopen操作可能無法正常運行。
2.9.2 重新加載配置
首先修改您的snort.conf(在命令行上傳遞到-c選項的文件)。
然后,要啟動重新加載,請向Snort發送一個SIGHUP信號,例如
$ kill -SIGHUP <snort pid>
注意:如果未啟用重新加載支持,Snort將在收到SIGHUP后重新啟動(始終如此)。
注意:無效的配置仍然會導致致命錯誤,因此您應該在發出重新加載之前測試新配置,例如
$ snort -c snort.conf -T
2.9.3 不可重裝配置選項
當前有許多無法更改的選項更改,因為它們需要更改輸出,啟動內存分配等。修改這些選項中的任何一個都將導致Snort重新啟動(如SIGHUP先前所做的那樣)或退出(如果-disable- reload-error-restart用于配置Snort)。
注意的可重載配置選項:
- 添加/修改/刪除文本規則和變量是可重新加載的。
- 添加/修改/刪除預處理器配置是可重新加載的(如下所述)。
注意不可重載的配置選項:
- 通過動態檢測,動態引擎和動態預處理器添加/修改/刪除共享對象是不可重新加載的,即任何新的/修改/刪除的共享對象都將需要重新啟動。
- 輸出的任何更改都將需要重新啟動。
對以下選項所做的更改無法重新加載:
attribute_table
config alertfile
config asn1
config chroot
config daemon
config detection_filter
config flowbits_size
config interface
config logdir
config max_attribute_hosts
config max_attribute_services_per_host
config nolog
config no_promisc
config pkt_count
config rate_filter
config response
config set_gid
config set_uid
config snaplen
config threshold
dynamicdetection
dynamicengine
dynamicpreprocessor
output
在某些情況下,只有一些config選項或預處理器配置的參數無法重新加載。這些參數在相關的config選項或預處理器下面列出。
config ppm: max-rule-time <int>
rule-log
config profile_rules
filename
print
sort
config profile_preprocs
filename
print
sort
preprocessor dcerpc2
memcap
preprocessor frag3_global
max_frags
memcap
prealloc_frags
prealloc_memcap
disabled
preprocessor perfmonitor
file
snortfile
preprocessor sfportscan
memcap
logfile
disabled
preprocessor stream5_global
memcap
max_tcp
max_udp
max_icmp
track_tcp
track_udp
track_icmp
Snort安裝使用中文手冊