由于libnids似乎已有两年的历史,并且目前没有更新,有人知道libnids或更好的库的替代解决方案,因为它似乎以超过1G的速度丢弃数据包每秒
更重要的是它不支持64位IP地址。
答案 0 :(得分:2)
libnids
的替代方案是Bro。它配备了强大的TCP重组器,经过多年的网络安全监控社区的全面测试和使用。它附带了许多用于常见协议的协议分析器,例如HTTP,DNS,FTP,SMTP和SSL。
Bro是“网络处理的Python:”它有自己的特定于域的脚本语言,具有IP地址(v4和v6),子网,端口的一流类型和功能。编程风格具有基于事件的异步风格:用户为反映网络活动的事件编写回调函数。分析以连接粒度运行。这是一个例子:
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安装。典型部署如下所示:
由于高可扩展性,通常不再需要处理低级细节和微调C实现。或者换句话说,您可以将时间用于分析而不是实施。