You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snort 2.x无法生成FTP连接及RETR命令告警问题排查

Snort 2.x FTP告警规则失效问题排查与修复

问题原因分析

1. FTP连接检测规则缺陷

  • 原规则未限定协议为TCP(FTP基于TCP传输),使用any协议会导致Snort无法精准匹配目标流量。
  • 未指定TCP连接建立的核心标志位SYN,规则会匹配所有到21端口的TCP流量,而非仅连接发起阶段的握手包,进而因匹配范围过大或优先级问题未触发告警。

2. RETR命令检测规则缺陷

  • 直接匹配content:"RETR"无法覆盖真实FTP命令格式:FTP命令以RETR (带空格)开头并跟随文件名,原规则的内容匹配无法命中完整命令字符串。
  • 未利用已启用的ftp_telnet预处理器提供的ftp_cmd专用关键字,直接匹配原始流量易受协议解析干扰,导致匹配失效。

修改后的有效规则

1. FTP连接建立检测规则

精准匹配TCP SYN包(连接发起请求),同时指定服务器IP缩小匹配范围:

alert tcp any any -> 192.168.211.130 21 (
    msg:"FTP CONNECTION ESTABLISHED";
    flags:S;
    sid:1000001;
    rev:2;
)
  • flags:S:仅触发TCP连接发起阶段的告警,避免无效流量干扰。
  • 指定服务器IP:过滤无关的21端口流量,提升规则精准度。

2. FTP RETR下载命令检测规则

借助ftp_telnet预处理器的ftp_cmd关键字直接匹配解析后的FTP命令:

alert tcp any any -> 192.168.211.130 21 (
    msg:"FTP FILE DOWNLOAD (RETR) DETECTED";
    ftp_cmd:RETR;
    nocase;
    sid:2000001;
    rev:2;
)
  • ftp_cmd:RETR:直接调用预处理器解析出的FTP命令,无需手动匹配原始字符串,准确率更高。
  • nocase:兼容大小写不敏感的命令输入(如retr)。

额外验证步骤

  1. 确认自定义规则文件已被snort.conf包含,添加类似配置:include $RULE_PATH/custom_ftp_rules.rules(替换为你的规则文件路径)。
  2. 启动Snort时添加-v参数查看实时流量:sudo snort -i eth0 -c /etc/snort/snort.conf -A console -v,确认FTP流量被正常捕获。
  3. 检查Snort默认日志目录/var/log/snort/,查看是否有告警日志生成,避免控制台输出遗漏。

内容的提问来源于stack exchange,提问作者Het Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 20:12:09