pcap - 是否有 libnids 的维护替代品?

标签 pcap libpcap libnet

作为libnids似乎已有两年历史并且没有当前更新,有人知道 libnids 的任何替代解决方案或比它更好的库吗,因为它似乎以超过每秒 1G 的速度丢弃数据包

此外,它不支持 64 位 IP 地址。

最佳答案

libnids 的替代方案是 Bro .它带有一个强大的 TCP 重组器,多年来已经被网络安全监控社区彻底测试和使用。它附带了一组用于常见协议(protocol)的协议(protocol)分析器,例如 HTTP、DNS、FTP、SMTP 和 SSL。

Bro 是“网络处理的 Python”:它有自己的领域特定脚本语言,具有针对 IP 地址(v4 和 v6)、子网和端口的一流类型和函数。编程风格具有基于事件的异步风格:用户为反射(reflect)网络事件的事件编写回调函数。分析以连接粒度运行。这是一个例子:

event connection_established(c: connection)
{
    if ( c$id$orig_h == 1.2.3.4 && c$id$resp_p == 31337/udp )
        // IP 1.2.3.4 successfully connected to remote host at port 31337.
}

此外,Bro 支持 cluster mode允许对 10 Gbps 链路进行线速监控。因为大多数分析不需要共享互连状态,所以 Bro 可以很好地跨内核(使用 PF_RING)以及多个节点进行扩展。存在 >= 140 个节点的 Bro 安装。典型的部署如下所示:

NIDS cluster
(来源:bro.org)

由于具有高可扩展性,通常不再需要处理低级细节和微调 C 实现。或者换句话说,使用 Bro,您可以将时间花在分析上,而不是实现上。

关于pcap - 是否有 libnids 的维护替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12640913/

相关文章:

ubuntu - 在 Ubuntu-9.10 上安装 libnet-0.10.11 时遇到问题

c++ - 用pcap抓图跟不上?

c - 理解一个函数。 pcap 和 BPF

c++ - 从未收到发送到本地主机端口的数据包

linux - libpcap setfilter() 函数和丢包

C 创建原始 UDP 数据包

c - tcp raw 程序中的 PCAP 函数。

c - 对 libnet-1.0.2a 函数的 undefined reference ,Linux C

c - 将 shell 命令传递给 "ACK"数据包内的 RSH 守护进程