
我第一次在 CentOS 8 上安裝和設定 Snort 3,同時遵循CentOS8 上的 Snort 3.0.3Snort 官方文件中的手冊(我無法直接連結到它,因為它是動態生成的 PDF,可能會在一段時間後過期)。
/usr/local/snort/bin/snort -c /usr/local/snort/etc/snort/snort.lua -i enp37s0 -l /var/log/snort --plugin-path /usr/local/snort/extra -k none
在使用 PulledPork 將規則產生到 snort.rules 檔案後,我現在嘗試使用 sudo 命令在網路介面上啟動 Snort 。但是,此命令產生的輸出FATAL: ips.rules:2 undefined variable name: RULE_PATH
在讀取我的 snort.lua 檔案時提到了錯誤。
ips
我的文件內數組的內容snort.lua
如下:
ips =
{
mode = tap,
rules = [[
include $RULE_PATH/snort.rules
]]
}
該RULE_PATH
變數在文件中定義snort_defaults.lua
:
---------------------------------------------------------------------------
-- default paths
---------------------------------------------------------------------------
-- Path to your rules files (this can be a relative path)
RULE_PATH = '../../rules'
BUILTIN_RULE_PATH = '../../builtin_rules'
PLUGIN_RULE_PATH = '../../so_rules'
-- If you are using reputation preprocessor set these
PASS_LIST_PATH = '../../intel'
BLOCK_LIST_PATH = '../../intel'
我不明白為什麼它會是未定義的,因為 snort_defaults.lua 是在 snort.lua 檔案的開頭導入的:
---------------------------------------------------------------------------
-- 2. configure defaults
---------------------------------------------------------------------------
-- HOME_NET and EXTERNAL_NET must be set now
-- setup the network addresses you are protecting
HOME_NET = [[ 192.168.1.0/24 ]]
-- set up the external network addresses.
-- (leave as "any" in most situations)
EXTERNAL_NET = 'any'
-- dofile(conf_dir .. '/snort_defaults.lua')
-- dofile(conf_dir .. '/file_magic.lua')
include 'snort_defaults.lua'
include 'file_magic.lua'
是什麼讓 Snort 認為我的 RULE_PATH 變數未定義?
答案1
我在設定 Snort 3.1.25 時遇到了同樣的問題,在撰寫文章之後,語法似乎在開發期間已進行了更新。問題在於路徑的設定方式。您想使用:
ips =
{
mode = tap,
enable_builtin_rules = true,
variables = default_variables,
include = RULE_PATH .. "/snort.rules",
include = BUILTIN_RULE_PATH .. "/builtins.rules",
}
所需的語法是 GLOBAL_VARIABLE、Lua Concat 運算子“..”,然後是字串路徑。
注意:內建規則是可選的,但以防萬一...