Snort 구성: RULE_PATH가 정의되지 않은 이유는 무엇입니까?

Snort 구성: RULE_PATH가 정의되지 않은 이유는 무엇입니까?

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_PATHsnort.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.lua 파일의 시작 부분에서 snort_defaults.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 연산자 "..", 문자열 경로입니다.

참고: 기본 제공 규칙은 선택 사항이지만 만일의 경우에 대비해...

관련 정보