我为我工作的公司管理一些基于云的(VPS)服务器。
服务器是运行 LAMP 堆栈/入站数据收集 (rsync) 的极简 ubuntu 安装。数据量很大,但不是个人数据、财务数据或诸如此类的数据(即不那么有趣)
显然,人们总是在这里询问配置防火墙诸如此类的。
我使用多种方法来保护服务器,例如(但不限于)
- 非标准端口上的 ssh;无需输入密码,仅需使用已知 IP 的已知 ssh 密钥进行登录等
- https 和受限 shell (rssh) 通常仅来自已知密钥/ips
- 服务器最小化,更新并定期打补丁
- 使用 rkhunter、cfengine、lynisdenyhosts 等进行监控
我有丰富的 unix 系统管理员经验。我确信自己知道自己在设置中要做什么。我配置 /etc 文件。我从未感到迫切需要安装防火墙之类的东西:iptables 等。
暂时把 VPS 的物理安全问题放在一边。
问?我无法确定我是否太天真,或者 fw 可能提供的增量保护是否值得我花精力去学习/安装,以及增加服务器的复杂性(软件包、配置文件、可能的支持等)。
到目前为止(敲木头)我从未遇到过任何安全问题,但我对此也不自满。
答案1
我注意到,您已经出色地绑定了多个不同的守护进程,从您所说的内容来看,我认为您不太可能通过已保护的服务让自己陷入麻烦。这仍然使您处于“除了我禁止的之外,一切都被允许”的状态,并且您无法通过逐个追踪守护进程并逐个保护它们来摆脱这种状态。
配置防火墙以否认任何默认情况下,您会进入“除允许之外,一切皆禁”的操作模式,多年来我发现这种模式更好。
现在,假设一个合法用户在您的系统上拥有合法的 shell,她可能会决定运行一些本地的非特权守护进程来代理互联网的 Web 请求,或者在端口 4662 上启动文件共享,或者意外地使用 -g 和 ssh 端口隧道打开侦听器,而不了解它的作用;或者 sendmail 安装可能会导致您在端口 587 上运行 MUA,尽管您已为保护端口 25 上的 MTA sendail 做了所有工作,但该端口配置不正确;或者可能发生一百零一件事,绕过您精心周到的安全措施,仅仅是因为当您仔细考虑要禁止什么时它们并不在场。
你明白我的意思了吗?目前,你已经付出了很多努力来确保你所知道的一切,听起来它们不会伤害你。可能伤害你的是你不知道的,或者现在根本不存在的东西。
防火墙默认为否认任何系统管理员是这么认为的如果出现新情况并在此服务器上打开网络侦听器,则在我明确允许之前,任何人都无法与其对话。
答案2
最小特权原则。防火墙可以帮助您实现这一目标。纵深防御原则。防火墙也可以帮助您实现这一目标。任何设计良好的配置都明确地以某种方式依赖于这两者。
另一件事是,您的服务器很可能是商品硬件,或专门用于处理在标准服务器操作系统(Unix、NT、Linux)上运行的服务器软件的硬件。也就是说,它们没有专门的硬件来有效地处理和过滤传入流量。您是否希望您的服务器处理每个可能的多播、ICMP 数据包或端口扫描?
您最有可能希望的是让您的服务器物理处理仅对某些端口(80、443、您的 SSL 端口、您的典型 Oracle 1521 端口、您的 rsync 端口等)的请求。是的,您当然会在服务器上设置软件防火墙以仅监听这些端口。但您的 NIC 仍将承受不必要的流量(无论是组织中的恶性流量还是正常流量)的冲击。如果您的 NIC 受到重击,则通过您的服务器的网络路径也会受到重击(并且可能包括您的服务器和内部客户端之间的网络路径以及与其他内部服务器和服务的连接)。
不仅您的网卡会受到重创,您的软件防火墙也会受到影响,因为它必须检查收到的每一个数据包或数据报。
另一方面,防火墙,特别是位于子网边缘的防火墙(或将子网与外界分隔开的防火墙)往往是专门为处理此类卷而构建的专用硬件。
您可以用 M 个防火墙(N >> M)包围 N 个服务器。然后设置防火墙硬件以转储未指向特定端口的所有内容。端口扫描、ICMP 和其他垃圾都被排除在外。然后,您可以根据服务器的特定功能对软件防火墙进行微调。
现在,您只是降低了(但并未消除)全面停电的可能性,将其降低到网络分区或最坏情况下的部分故障。因此,您提高了系统抵御攻击或配置错误的能力。
由于服务器有防火墙而没有防火墙,这就好比在雾天能见度为零的情况下,以 120 英里/小时的速度开车时系好安全带却感觉很安全。事实并非如此。
答案3
如果您没有执行某种数据包级别检查的防火墙,您可能会遭受多种攻击:
例如圣诞树包
http://en.wikipedia.org/wiki/Christmas_tree_packet
DDOS 攻击可能会针对您的系统进行,防火墙(可能是外部的,在您的任何服务器之前)会在流量损坏您的服务器之前阻止/减慢/杀死它。
只是因为服务器上没有财务或个人数据并不意味着您不会受到“伤害”。我确信您会为带宽或 CPU 使用付费,或者您有计量费率。想象一下,在一夜之间(当您睡觉时),有人占用了您的计量表(我曾见过这种情况发生在 VOIP 交换机提供商身上,他们在夜间承受了数百万分钟的流量,他们必须为此买单)。
所以要聪明一点,如果有保护就使用,你并不完美,软件也不完美。它只是在发现下一个漏洞之前是安全的。;)
答案4
如果您可以在不使用防火墙的情况下强制执行最小权限原则,那么您可能不需要它。从我的角度来看,在不使用防火墙的情况下构建安全系统需要更多努力,而且我很懒。当我可以使用单个配置在传输级别上分离权限时,为什么还要费心使用其他工具和可能许多配置文件来限制 TCP 连接呢?