linux - Suricata IPS 手动阻塞/解锁 vs. snort 和 guardian

标签 linux debian iptables snort

有没有人有使用 Suricata 作为 IPS 的经验?我在 Debian 上,我希望能够手动阻止和取消阻止特定的 ip 地址 (iptables)。我没有使用过 Suricata,因为我目前将 Snort 作为 IDS 运行,将 guardian 作为我的 IPS。我对 Suricata 做了一些研究,据我所知,可以手动将规则添加到 Suricata 的规则文件中,这将阻止给定的 IP 地址。当 Suricata 作为守护进程运行时,当您重新启动守护进程时, block 规则是否会像守护进程一样被清除? 预先感谢您提供任何提示。

最佳答案

如果您在 netfilter 队列模式下运行 Suricata,您仍然可以使用 iptables 进行阻塞。例如。您的 iptables 设置可能如下所示:

iptables -N BLOCKLIST
iptables -A FORWARD -j BLOCKLIST
iptables -A FORWARD -j NFQUEUE

然后用-q启动suricata:

suricata -q 0

要将 ip 添加到黑名单中,请执行以下操作

iptables -A BLOCKLIST -s 1.2.3.4 -j DROP

移除

iptables -D BLOCKLIST -s 1.2.3.4 -j DROP

因为 -j NFQUEUE 规则是在 -j BLOCKLIST 规则之后评估的,所以在将流量发送到 Suricata 之前应用黑名单。

也可以在 Suricata 本身中进行阻塞。添加如下规则:

drop ip 1.2.3.4 any -> any any (msg:"1.2.3.4 dropped"; sid:1;)

然后重启 Suricata。或者,您可以在 YAML 中启用“规则重新加载”(如果您使用的是 3.0,它始终处于启用状态)并发送 USR2 信号。

在 Suricata 2.x 上取消注释 suricata.yaml 中的“rule-reload”:

detect-engine:
  - rule-reload: true

关于linux - Suricata IPS 手动阻塞/解锁 vs. snort 和 guardian,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34909411/

相关文章:

linux - Nginx 仍然尝试打开默认错误日志文件,即使我在重新加载时设置了 nginx 配置文件

mysql - Mysqldump 命令的问题

sockets - Netcat:使用 nc -l port_number 而不是 nc -l -p port_number

kubernetes - k8s : forwarding from public VIP to clusterIP with iptables

linux - libnetfilter_queue recv() 函数

docker - 无法在 docker 容器中通过 ssh 获取任何内容

c - 如何在 Linux 应用程序中触发虚假唤醒?

windows - windows 下的tipc协议(protocol)

linux - 我如何远程获取 .bashrc

c++ - 自动输入我无法修改的二进制文件