我正在尝试将 snort 设置为 ID,在一台同时充当路由器的 Debian 机器上。理想情况下,我希望以这种方式设置 snort,这样我就不必购买额外的网络适配器,只需让它监听 Debian 机器已经在处理的相同流量即可。话虽如此,从接口镜像流量,然后将镜像流量发送到 snort 的最佳方法是什么?或者你会建议我走不同的路线?我在想桥接可能有用,但我不确定这是否是正确的解决方案,任何帮助都将不胜感激,谢谢!
答案1
根据您的情况,我认为我们可以制定出两种可能可行的设计方案。
- 直接在路由器上运行 snort。
- 在专门用于此目的的单独盒子上运行 snort。
在路由器上运行
由于您已为路由器制作了自己的 Debian 实例,因此只需安装或编译适合您的版本/架构的软件包即可。然后,您可以配置 snort 以连接到内部或外部接口(具体取决于您要监视哪个接口),然后让它运行。
这可能很简单,不需要添加任何硬件,可以轻松重新配置以在 IDP 模式下运行,并且不需要任何可能奇怪的网络配置即可工作。最大的缺点是性能。Snort 会消耗大量资源。它可能会轻易耗尽系统中的所有 RAM 和 CPU,从而使您的路由器无法路由。
Snort 有大量的配置选项。不仅仅是打开或关闭规则,还包括为某些主机设置白名单规则、调整用于数据包碎片整理的内存字节数、在内存中存储用于 TCP 流重组的数据包数量等。我通常建议花费大量时间来调整这些参数,即使您按照自己想要的方式设置了它们,也要定期检查,看看是否需要调整。
运行专用传感器
这通常是推荐的解决方案。它解决了资源竞争导致的网络中断问题。它允许您使用专门制作的硬件,以便您可以让传感器完全按照您的意愿工作。这还将使您能够自由地添加额外的硬盘来运行守护进程日志程序,或者投入更多 RAM,而无需处理安排完全网络中断的问题。它也更具可扩展性。当然,我可以在家里运行 pfSense 的 Pentium 4 白盒上运行 snort,但我无法让它在工作中的 Juniper EX-8216 上运行。专用传感器在两种环境中都能很好地运行。
缺点是,您又要添加另一个系统来管理,另一个消耗电力的盒子,需要排出更多的 BTU,等等。根据您的网络基础设施,将数据放入其中可能很容易,也可能不容易。主要的网络供应商都有一些可以做到这一点的东西。思科称之为 SPAN 会话,瞻博网络称之为分析器,Enterasys 称之为镜像。可以使用 iptables 执行相同的功能球座目标,但我不知道其他主机防火墙是否可以做到这一点或如何做到这一点。如果失败,您可以使用网络分接头,这是一种以电子方式复制数据流的物理设备。
无论如何,您需要做的是将网络基础设施中的流量复制到传感器。实现此目的的最佳方法(也是推荐的方法)是在您的传感器中安装两个 NIC:1 个用于管理,1 个用于监控。接口的价格可能相差很大,但除非您谈论的是链接大于 1Gbps 的情况,或者持续吞吐量接近 1Gbps,否则卡非常便宜。我一直推荐即使是简单的 Intel Pro/1000 GT,这些东西只要 30 美元,而且可以满足您的所有需求!
可以在一个接口上运行,但我不推荐这样做。您最有可能遇到奇怪的监控不一致,或者由于在通常预期(假设?)仅接收的链路上传输问题而导致的潜在网络问题。
答案2
当我运行 snort 时,我会在路由器上运行它。这不需要额外的接口来发送流量。风险在于,如果 snort 错误处理数据并执行它,它将比以前更容易访问网络。