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

Snort IPS无法丢包:Ubuntu下Netplan网络配置需求

解决Ubuntu Netplan下Snort Inline模式丢包失效问题

核心问题在于默认网桥会直接转发数据包,完全绕开了Snort的处理流程。要实现丢包,必须让所有流量强制流经Snort,而非通过系统网桥直接转发。以下是将传统接口配置转换为Netplan配置的实操步骤:

1. 修改Netplan网络配置

首先移除原有的网桥配置,将连接Host1和Host2的物理接口设置为无IP的透明模式,确保数据包不会被系统直接转发。

编辑Netplan配置文件(通常路径为/etc/netplan/00-installer-config.yaml,文件名可能不同):

network:
  version: 2
  ethernets:
    enp0s3:  # 替换为你连接Host1的物理接口名
      dhcp4: false
      addresses: []
    enp0s8:  # 替换为你连接Host2的物理接口名
      dhcp4: false
      addresses: []
# 注释或删除原有的网桥配置块(如bridges: br0: ...)

应用配置:

sudo netplan generate && sudo netplan apply

验证接口状态:执行ip link show,确认两个物理接口已脱离网桥,且无IP地址配置。

2. 调整系统转发设置

关闭系统IP转发,强制流量只能通过Snort处理:

sudo sysctl -w net.ipv4.ip_forward=0

持久化设置,编辑/etc/sysctl.conf,确保以下行生效:

net.ipv4.ip_forward=0

3. 启动Snort Inline模式

使用afpacket DAQ绑定两个物理接口,启动Snort的inline模式:

sudo snort -Q -i enp0s3:enp0s8 -c /etc/snort/snort.conf -A console

参数说明:

  • -Q:启用inline模式
  • -i enp0s3:enp0s8:指定入站接口(Host1侧)和出站接口(Host2侧)
  • -c:指定Snort配置文件路径
  • -A console:控制台输出告警信息

4. 验证丢包功能

在Snort规则中添加一条明确的drop规则(例如在/etc/snort/rules/local.rules中):

drop icmp any any -> any any (msg:"Drop all ICMP packets"; sid:1000001; rev:1;)

重启Snort后,在Host1执行ping Host2,同时在Host2用tcpdump icmp抓包。若触发规则时ping请求无响应,且Snort控制台输出告警,说明丢包功能生效。

排查要点

若仍无法丢包,检查以下项:

  • 确认Snort规则中的动作为drop而非alert
  • 检查物理接口名是否正确,执行ip link show核对
  • 清空系统iptables规则,避免干扰:sudo iptables -F && sudo iptables -X
  • 确认Snort以root权限启动(必须加sudo)
  • 检查afpacket DAQ是否加载:snort --daq-list,确保输出包含afpacket

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:56:15