Loading ips.rules: FATAL: ips.rules:3 undefined variable name: RULE_PATH. Fatal Error, Quitting..,Sn


能够解决要感谢一位拥有7年码龄的程序员,他目前从事IPS二次开发工作。

这个问题在百度上几乎找不到答案,解决方法见:https://www.reddit.com/r/snort/comments/jnu1s5/probles_while_running_snort_c/

可能因为某些原因(墙)链接无法打开,那么这里有这篇帖子的完整截图

为了更人性化,我将它翻译过来:

一位热心网友marcseid遇到了这个问题,在导入规则前、后分别检查配置文件,得出以下处理结果:

编辑snort.lua找到

{ when = { proto = 'tcp', ports = '2123 2152 3386' }, use = { type = 'gtp' } },

它在这里:

你可以在配置文件里搜索gtp方便查找它

然后将它修改为

 { when = { proto = 'tcp', ports = '2123 2152 3386' }, use = { type = 'gtp_inspect' } },

再找到

ips =

它在这里:

在 ips = { 的后面,rules = [[ 的前面;添加一行

variables = default_variables,

再修改snort_defaults.lua

---------------------------------------------------------------------------
-- default ftp server
---------------------------------------------------------------------------

前面添加:

---------------------------------------------------------------------------
-- default variables
---------------------------------------------------------------------------

default_variables = {
    nets = {
        HOME_NET = HOME_NET,
        EXTERNAL_NET = EXTERNAL_NET,
        DNS_SERVERS = DNS_SERVERS,
        FTP_SERVERS = FTP_SERVERS,
        HTTP_SERVERS = HTTP_SERVERS,
        SIP_SERVERS = SIP_SERVERS,
        SMTP_SERVERS = SMTP_SERVERS,
        SQL_SERVERS = SQL_SERVERS,
        SSH_SERVERS = SSH_SERVERS,
        TELNET_SERVERS = TELNET_SERVERS,
    },
    paths = {
        RULE_PATH = RULE_PATH,
        BUILTIN_RULE_PATH = BUILTIN_RULE_PATH,
        PLUGIN_RULE_PATH = PLUGIN_RULE_PATH,
        WHITE_LIST_PATH = WHITE_LIST_PATH,
        BLACK_LIST_PATH = BLACK_LIST_PATH,
    },
    ports = {
        FTP_PORTS = FTP_PORTS,
        HTTP_PORTS = HTTP_PORTS,
        MAIL_PORTS = MAIL_PORTS,
        ORACLE_PORTS = ORACLE_PORTS,
        SIP_PORTS = SIP_PORTS,
        SSH_PORTS = SSH_PORTS,
        FILE_DATA_PORTS = FILE_DATA_PORTS,
    }
}

完成。

先说说为什么原作者是在反复检查导入规则前、后的配置文件得出结论的吧,因为刚才添加和修改的这些,在导入前都是存在且正常的,导入之后才发生了改变,并产生异常。

(除了“variables = default_variables,因为配置文件语法的原因需要添加逗号)

我也这样检查过配置文件,但由于不仔细也看不太懂导致没及时发现这个问题;其次善用google、多阅读英文文章(毕竟翻译软件有些出入);某些技术文章国内很匮乏。