对面向互联网的服务器(例如 Web 服务器)设置防火墙是否有意义?假设我不想限制任何人访问 Web 服务器以提供网页,那么我会阻止计算机上的其他服务。
如果机器被充分锁定,这有必要吗?
我能想到的一个风险是,如果网络服务器上的漏洞被利用,攻击者试图打开反向命令 shell……使用防火墙阻止由网络服务器发起的传出连接就可以阻止这种情况。
但是,在这种情况下,防火墙的开销是否值得保护?我可能遗漏了其他攻击场景吗?
在面向互联网的服务器前设置防火墙是否也会增加服务器因 DoS 攻击而无法访问的可能性(据我所知,在防火墙上更容易做到这一点)。
那么IDS怎么样....同样的论点?
答案1
除非你严重错误地配置了防火墙,否则它只能起到帮助作用。除非你有一个非常复杂的规则集,否则防火墙的开销通常可以忽略不计。请记住,它所做的只是根据一组规则检查传入的数据包。还要记住,即使是在拥有面向公众的服务器的最小企业环境中,防火墙设置也是既定的。即使是小型家用路由器或台式机,也只能从防火墙中受益。想想你的登录密码。有人闯入你家并使用你的电脑的可能性很小,但密码保护你的帐户的“开销”是如此微不足道,你不妨这样做。除了你正在运行具有公共 IP 的 Web 服务器之外,你没有提供有关设置的任何信息。我无法根据你的设置定制我的答案。
您可能在该机器上打开了其他几个端口(即 SSH 或一些 NetBIOS 或 RPC 端口,如果是 Windows 系统)。防火墙允许您将端口 80 保持打开以用于一般业务,同时防止有意或无意地利用您在机器上运行的其他服务。
此外,一些防火墙软件包(如 PF 和 Iptables)可用于阻止对您的合法公开服务器的扫描和滥用。例如,如果您的服务被机器人暴力破解,您可以使用防火墙阻止该 IP,同时允许其他 IP 继续访问您的 Web 服务器。大多数防火墙都有内置或插件来自动执行此过程(即 fail2ban 和 sshguard)。
正确配置的防火墙不会让您更容易受到 DoS 攻击。它有助于防止 SYN 洪水,因为您可以阻止违规 IP。当然,可以将源 IP 伪造为随机值以避免这种情况。但是,PF 使用“synproxy”可以缓解这种情况。防火墙也可以防止 Teardrop 攻击(即“scrub”锚点)。
总而言之,防火墙可以阻止许多其他攻击方法。防火墙的作用远不止阻止和允许端口。
我不能谈论太多有关 IDS 的事情。
来源:我有在 IPv4 和 IPv6 环境中在 FreeBSD 上设置防火墙/网关的经验。
答案2
当然,防火墙至关重要。但正确配置防火墙需要:
将特定内容列入白名单传出防火墙允许执行的流量。(即,Web 服务器可能考虑的唯一流量是操作系统更新)。阻止此操作可以最大限度地降低反向 shell 被用于在您的 Web 服务器上安装恶意软件的可能性。同样,阻止 DNS 解析也可以限制初始缓冲区溢出造成损害的可能性。
阻止所有未知使用的端口
最后,防火墙虽然重要,但日志记录(和监控日志)也至关重要。
答案3
简而言之,没有理由不在面向互联网的服务器前安装防火墙。 DDoS 攻击可能会导致防火墙失效,也可能会导致服务器失效。 这称为故障关闭,即在发生故障时停止接受请求。
IDS 则有所不同,主要是因为它提供完全不同的功能。IDS 完全用于检测,传统上位于防火墙后面,但在面向互联网的服务器前面。如果您的 IDS 具有 IPS 功能并且超载,我会说您希望它打开故障,继续接受请求。
本质上,纵深防御才是王道,包括防火墙、安全监控和强化服务器。
我也同意 Cocoabean 的观点,防火墙可以大大降低遭受多种类型的 DoS 攻击的可能性。