我没有使用过 SNORT,也没有对此做过太多研究,但这听起来是可能的。
如果我设置一台服务器并在其上运行 snort。那么是否可以像防火墙一样将所有流量通过它路由到我的网站?这是否允许我有一个中心点来过滤掉所有不良流量?
至于转发,我应该使用 GRE 隧道吗?还是有更好的方法?我想尝试并尽可能保留客户的 IP。
因此,我可以运行 HA Proxy/nGinx 来转发网站流量并将客户端 IP 保留在数据包中,而不是将每个客户端都作为代理服务器的 IP。
答案1
Snort 的一种安装方法称为内联模式。在这种配置中,您的 Snort 传感器将成为流量的瓶颈,就像传统的路由器或防火墙一样。所有数据包都将在外部接口上接收,通过 Snort 应用程序,然后转发到内部接口。如果操作正确,它将对流量透明,并且只不过是一座桥梁。它也不需要对您尝试保护的服务器进行任何修改。所有流量都将流经传感器,因为它无法流向其他任何地方。
从这里,您可以决定是否以 IDS 或 IDP 模式运行 snort。IDS 实施起来没那么可怕,因为会触发警报并记录不良流量,但数据包仍会通过。IDP 模式将分析数据包,如果配置如此,则会在触发警报时丢弃数据包。
无论如何,您必须小心配置规则,并确保传感器大小合适。例如,如果 snortd 进程过载并且无法处理数据包,它将无法通过另一端。snort 的 CPU 使用率或内存达到 100% 是相当容易的事情。
答案2
对于第一个问题 - 是的,这是可能的。您需要将 Web 服务器的 DNS 设置为运行 SNORT 的服务器,并让该服务器将流量转发到实际的 Web 服务器。这是设置防火墙/过滤服务器的标准方法之一。
对于第二个问题,这是一个需要长时间讨论的问题,有些东西与 ServerFault 网站不太相符。“更好”是一个非常主观且定义不明确的术语。我应该首先考虑您的优先事项,包括安全性、稳定性、升级/更新软件包的便利性、性能等。完成这些之后,您就可以开始比较这两个不同的 unix 在这些方面的比较,如果您有一些具体的问题,那么您更有可能得到一个很好的答案。
答案3
那么是否可以像防火墙一样将我的所有流量通过它路由到我的网站?
这不仅是可能的,而且如果您希望它真正丢弃不良流量,这正是您应该设置 IPS 的方式。
如果不是,那么它就变成了一个 IDS,并且只会旗帜交通不畅。
我唯一不同意你的问题的部分是你将 Snort 与防火墙进行比较。
我感觉你有点混淆了网络安全的三个方面。
入侵检测系统
根据深度数据包检测和签名丢弃流量
防火墙
根据源、目标和端口丢弃/允许流量。防火墙确实在不断发展,不再那么“愚蠢”,但这是防火墙的主要目标。
Web 应用程序防火墙 (WAF)
有点像 IPS,但旨在检查 HTTP 和 HTTPS 流量。如果提供正确的签名,WAF 可以像 IPS 一样阻止 SQL 注入尝试。
这是否可以让我有一个中心点来过滤掉所有不良流量?
你的陈述的关键部分是所有交通状况不佳对此,我的回答是“不”。
阻止所有不良流量的唯一方法就是阻止所有流量。
这是我见过的最安全的 Web 应用程序,它由三层(IPS、防火墙和 WAF)保护前端。然后,在三层之间用防火墙将应用程序和数据隔离。它还具有另一个 IPS,仅用于应用程序和数据之间的 SQL 注入检查。
猜猜看……这可能仍然无法消除所有不良流量。
最后,关于使用的平台。
但您的选择应基于您管理和配置起来的习惯。如果您习惯使用 Ubuntu 或 CentOS,那就选择它们。尝试使用您不熟悉的工具来保护您的应用程序是没有意义的。
因为如果你这样做,你很可能会降低网络安全级别而不是提高它。