Конфигурация Snort: почему RULE_PATH не определен?

Конфигурация Snort: почему RULE_PATH не определен?

Я впервые устанавливаю и настраиваю Snort 3 на CentOS 8, следуяSnort 3.0.3 на CentOS8руководство из официальной документации Snort (я не могу дать на него прямую ссылку, так как это динамически генерируемый PDF-файл, срок действия которого может истечь через некоторое время).

Теперь я пытаюсь запустить Snort на моем сетевом интерфейсе с помощью команды /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с sudo после генерации моих правил с PulledPork в файл snort.rules. Однако вывод, который генерирует эта команда, упоминает ошибку 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 "..", а затем путь к строке.

Примечание: встроенные правила необязательны, но на всякий случай...

Связанный контент