我为我工作的公司pipe理一些基于云的(VPS)服务器。
这些服务器是运行LAMP堆栈/入站数据收集(rsync)的最小的ubuntu安装。 数据很大,但不是个人,财务或类似的东西(即不那么有趣)
显然在这里,人们总是要求configuration防火墙等。
例如,我使用了一些方法来保护服务器(但不限于)
我有丰富的经验的Unix系统pipe理员。 我相信我知道我在做什么。 我configuration/ etc文件。 我从来没有觉得有必要安装像防火墙这样的东西:iptables等
暂时搁置VPS的物理安全问题。
Q& 我无法决定我是否幼稚,或者fw提供的增量保护值得学习/安装,以及服务器上额外的复杂性(包,configuration文件,可能的支持等)。
迄今为止(碰木头)我从来没有任何安全问题,但我也不自满。
我注意到,你已经完成了很多不同的守护进程,根据你的说法,我认为你不可能通过已经获得的服务让自己陷入麻烦。 这仍然使你处于“除我所禁止的以外的一切事物”的状态,你不能在守护进程之后追踪守护进程并逐一获取守护进程。
防火墙默认configuration为拒绝任何任何行为 ,除了“允许的以外,任何事情都是被禁止的”操作模式,而且我发现多年来他们更好。
现在,如果合法用户在您的系统上有一个合法的shell,她可以决定运行一些本地非特权守护程序来代理Internet的Web请求,或者在端口4662上启动文件共享,或者使用-g无意中打开一个监听器与ssh端口隧道,不明白它是什么; 或发送邮件安装可能会让您在端口587上运行MUA,尽pipe在端口25上保护MTA sendail所做的所有工作都是错误configuration的, 或者一百零一件事情可能会绕过你的谨慎和周到的安全,因为当你仔细思考什么是禁止的时候,他们并不在身边。
你看到我的观点了吗? 目前,你已经付出了很多努力去保护你所知道的所有事情,而这听起来像是不会咬你的。 可能咬你的是你现在还不知道的东西,或者甚至不在那里的东西。
一个默认为“ 拒绝任何任何人 ”的防火墙就是系统pipe理员的一种说法, 如果有新的东西出现,并且在这个服务器上打开一个networking监听器,那么除非我给出明确的许可,否则任何人都无法与之通话 。
最小特权原则。 防火墙可以帮助你到达那里。 深度防卫原则。 防火墙也可以帮助你到达那里。 任何精心devise的configuration都明确依赖于这两种方式。
另一件事是,你的服务器很可能是商品硬件,或者硬件专用于处理在标准服务器操作系统(Unix,NT,Linux)上运行的服务器软件。 也就是说,他们没有专门的硬件来有效地处理和过滤传入的stream量。 你想让你的服务器处理每一个可能的多播,ICMP数据包或端口扫描的方式?
最有可能的是你的服务器只处理一些端口的请求(80,443,你的ssl端口,典型的oracle 1521端口,你的rsync端口等等)。当然你可以在你的软件上安装防火墙服务器仅侦听这些端口。 但是,你的网卡仍然会受到不必要的stream量(在你的组织中是恶性的或正常的)。如果你的网卡遭受攻击,networkingpath也会通过你的服务器(也可能在你的服务器和内部客户端之间以及连接其他内部服务器和服务。)
你的网卡不仅受到打击,软件防火墙也将被用来检查每一个数据包或数据报。
另一方面,特别是那些位于子网边缘(或将子网与外界隔离)的防火墙往往是专门为处理该types卷而构build的专用硬件。
您可以将N台服务器与M个防火墙(N >> M)相连。 你设置你的防火墙硬件来转储任何不指向特定端口的东西。 端口扫描,ICMP和其他垃圾。 然后根据其特定function对服务器中的软件防火墙进行微调。
现在,您已经减less了(但并未消除)全面停电的概率,将其减less到了networking划分或最坏的部分故障。 因此,您已经提高了您的系统在攻击或configuration错误中的存活能力。
没有防火墙,因为你的服务器有一个,就像安全带上的安全感,因为雾的能见度在零下120mph驾驶。 这种方式不行。
如果你没有防火墙进行某种数据包级别的检查,那么有很多攻击可以被破坏:
例如圣诞树包
http://en.wikipedia.org/wiki/Christmas_tree_packet
DDOS攻击可以针对你的系统运行,一个防火墙(在你的任何服务器之前可能是外部的)会在服务器瘫痪之前停止/减速/终止stream量。
仅仅因为你没有财务或者服务器上的个人数据并不意味着你不会受到伤害。 我相信你支付带宽,或CPU使用率,或者你有一个计量率。 想象一下,在一个晚上(当你在睡觉的时候),有人跑上你的仪表(我已经看到这种情况发生在VOIP交换机提供商,在夜间撞上了数百分钟的stream量,他们必须付账)。
所以要聪明一点,如果有保护的话,你是不完美的,软件也不行。 直到find下一个漏洞才是安全的。 ;)
如果你可以强制使用防火墙的最低权限的原则,你可能不需要它。 从我的angular度来看,在不使用防火墙的情况下build立一个安全的系统需要更多的努力,而且我很懒惰。 为什么我应该使用其他工具和可能的许多configuration文件来限制TCP连接,这是因为我可以使用单个configuration在传输级别上分离特权。
防火墙还可以拦截无用数据包到达您的服务器。 与其在服务器级别处理它们,不如在防火墙处理它们。 您可以将所有这些configuration活动保留在单个防火墙而不是多个服务器上。
例如,如果攻击者获得了对外部IP的控制权,并且正在使用不需要的数据包来欺骗服务器,并希望减轻其对服务器的影响,则可以configuration每个受影响的服务器以删除恶意数据包或者直接在防火墙上进行更改,并保护所有服务器。 拥有防火墙减less了你的反应时间。
您或其他人可能会在您的服务器设置上出现错误,防火墙会给您第二次阻止某人进入的机会。我们并不完美,我们犯了错误,因此有点“不必要”的保险是值得的。
(尽量不要在与您的服务器相同的操作系统上运行防火墙,否则就是操作系统中的单个错误….我认为所有版本的Unix都是相同的操作系统,因为它们有很多共同点)
防火墙在stream量操纵方面受到专注。 他们做得很快,有资源。 而且你不要浪费服务器资源来过滤stream量(磁盘io / proc时间/等)。 你在服务器环境中configuration一些安全但所有的交通检查和病毒扫描等都要做专门的服务器。
我会担心,如果你曾经被黑客入侵,没有防火墙的地方。 黑客可以打开服务器上的其他端口。 另外,如果有一名顾问进行清理和审计,他们会说的第一件事就是:“什么?!?!你没有防火墙!” 那么你可能会被烧毁。