能夠解決要感謝一位擁有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、多閱讀英文文章(畢竟翻譯軟件有些出入);某些技術文章國內很匱乏。