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