
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.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 연산자 "..", 문자열 경로입니다.
참고: 기본 제공 규칙은 선택 사항이지만 만일의 경우에 대비해...