如前所述,一般来说,安全性是洋葱。存在防火墙的原因有很多,而不仅仅是所有其他的笨拙的笨蛋。
之所以出现这个答案,是因为在此页面上搜索“ fail2ban”并没有给我任何结果。因此,如果我将其他内容加倍,请忍受。而且请原谅,如果我有点,我会提供简单的经验,因为这可能对其他人很方便。:)
本地与外部网络注意事项
这是特定于Linux的,并且专注于基于主机的防火墙,这通常是用例。外部防火墙与适当的网络结构紧密结合,通常还会考虑其他安全因素。您要么知道这里的隐含含义,要么您可能不需要此帖子。否则,请继续阅读。
在外部和本地运行防火墙似乎违反直觉,并且有双重作用。但是,这也使规则可以转向外部规则,而不会损害位于其后的所有其他主机的安全性。这种需求可能是由于调试原因,也可能是因为有人刚干了。“自适应全局防火墙”部分中还有另一个用例,为此您还需要全局和本地防火墙。
成本和可用性始终如一:
防火墙只是适当的安全系统的一个方面。不要安装防火墙,因为这会“花钱”,引入SPOF或仅仅是胡说八道,请原谅我的法语。只需设置一个集群。哦,但是如果火室停电了怎么办?然后,将群集设置为跨越两个或多个防火分区。
但是,如果由于两个外部运营商都停业(挖掘机杀死了您的光纤)而导致整个数据中心无法访问怎么办?然后,使您的集群跨越多个数据中心。
这太贵了?集群太复杂了吗?好吧,偏执必须要付出。
只是抱怨SPOF,但不想花更多的钱或创建一些更复杂的设置就是双重标准的明显例子,或者只是公司或客户方面的一个小钱包。
这种模式适用于所有这些讨论,无论哪种服务是当前的日常事务。无论是VPN网关,仅用于防火墙的Cisco ASA,MySQL还是PostgreSQL数据库,虚拟系统或服务器硬件,存储后端,交换机/路由器,...
现在,您应该明白了。
为什么要烦恼防火墙?
从理论上讲,您的推理是正确的。(只能利用运行中的服务。)
但这只是事实的一半。防火墙,尤其是有状态防火墙可以为您做更多的事情。无状态防火墙仅在遇到类似上述其他性能问题时才重要。
简单,集中,离散的访问控制
您提到了TCP包装器,它们实现了与保护您的基本相同的功能。为了论证,我们假设某人不认识tcpd
并喜欢使用鼠标?fwbuilder
可能会想到。
应该启用来自管理网络的完全访问权限,这是基于主机的防火墙的第一个用例。
如何进行多服务器设置,在该数据库中其他地方运行数据库,并且无论出于何种原因都不能将两台/所有计算机都放在共享(专用)子网中?使用防火墙仅允许MySQL对其他服务器的单个给定IP地址进行3306端口访问,这很简单。
而且这对于UDP也完美无瑕。或任何协议。防火墙是如此灵活。;)
缓解端口扫描
此外,有了防火墙,由于可以通过内核及其网络堆栈监视每个时间跨度的连接量,因此可以检测并缓解常规的端口扫描,防火墙可以对此进行操作。
无效或晦涩的数据包也可以在到达您的应用程序之前进行处理。
出站流量限制
过滤出站流量通常很麻烦。但这可能是必须的,具体取决于合同。
统计
防火墙可以为您提供的另一件事是统计信息。(考虑watch -n1 -d iptables -vnxL INPUT
在顶部添加一些特殊IP地址规则,以查看数据包是否通过。)
您可以在白天查看事物是否起作用。在对连接进行故障排除并能够告诉电话上的其他人您没有收到数据包而无需诉诸于chatty tcpdump
的情况下,这非常有用。联网很有趣,大多数人现在才知道他们在做什么,而且通常只是简单的路由错误。地狱,即使我并不总是知道我在做什么。尽管到目前为止,我实际上已经使用了数十个复杂的系统和设备,但通常也使用隧道技术。
IDS /入侵防御系统
如果没有适当注意并定期更新,那么Layer7防火墙通常是不二之选(IPS / IDS)。再加上许可证真是太贵了,所以如果您没有真正的金钱需要可以买到的东西,我将不遗余力地获得一份。
伪装
容易,只需与包装器一起尝试即可。:D
本地端口转发
参见伪装。
使用动态IP地址保护密码访问通道
如果客户拥有动态IP地址并且未部署VPN设置怎么办?还是其他动态防火墙方法?这个问题已经暗示了这一点,这里将提供一个用例,不幸的是,我找不到能做到这一点的防火墙。部分。
必须禁用通过密码访问root帐户的权限。即使访问仅限于某些IP地址。
此外,如果确实出错(用户具有对计算机的管理访问权限,并且“发生了事”?),那么如果ssh密钥丢失或部署失败,仍然可以使用密码登录准备好另一个Blanko帐户非常方便。网络访问的想法相同,因为它在Linux上具有单用户模式或使用init=/bin/bash
via grub
进行本地访问确实非常糟糕,并且无论出于何种原因都无法使用活动磁盘。别笑,有虚拟化产品禁止这样做。即使该功能存在,如果运行的缺少该功能的软件版本过时怎么办?
无论如何,即使您在某个深奥的端口上而不是在22上运行ssh守护程序,如果未实现端口爆震(甚至打开另一个端口,从而缓解portcans的问题,由于太不切实际也逐渐被淘汰)的端口扫描将检测到您最终服务。
通常,出于效率方面的考虑,您还可以使用相同的配置,端口和服务设置所有服务器。您不能将ssh设置为每台计算机上的其他端口。另外,您每次都认为它是“公共”信息时,就无法在所有计算机上进行更改,因为它已经在扫描之后。的问题,nmap
有随时为您破解Wi-Fi连接时是合法与否不是一个问题。
如果此帐户未命名为“ root”,则人们可能无法猜测您“后门”的用户帐户名。但是他们会知道,如果他们从您的公司购买另一台服务器,或者只是购买了一些网站空间,并且对此不加约束/不受约束/不受限制地看待/etc/passwd
。
现在仅是理论上的说明,他们可以使用那里的可黑客攻击的网站来访问您的服务器,并查看通常在您所在位置运行的方式。您的黑客搜索工具可能无法全天候运行24/7(通常是出于文件系统扫描的磁盘性能原因而在夜间运行?),并且病毒扫描程序不会在第二天零时发现第二天更新,因此它将无法立即发现这些事件,并且如果没有其他保护措施,您甚至可能都不知道发生了什么。回到现实,如果某人可以使用零时差攻击,那么很有可能他不会以您的服务器为目标,因为这些服务器很昂贵。这仅是为了说明如果出现“需求”,总有进入系统的方法。
但是,关于这个话题,只是不要使用额外的密码帐户,就不用打扰了吗?请继续阅读。
即使攻击者获得了这个额外帐户的名称和端口,即使您仅使用了八个字母的密码,fail2ban
+ iptables
组合键也会使攻击者很短。再加上fail2ban也可以用于其他服务,从而扩大了监视范围!
对于您自己的服务,如果需要的话:基本上,将文件失败记录到文件中的每个服务都可以通过提供文件,匹配的正则表达式以及允许的失败次数来获得fail2ban支持,并且防火墙会愉快地禁止它的每个IP地址。被告知。
我不是在告诉您使用8位数密码!但是,如果由于五次错误的密码尝试而被禁止使用24小时,那么即使在安全性如此差的情况下,如果他们没有可使用的僵尸网络,也可以猜测他们将不得不尝试多长时间。您会惊讶于客户倾向于使用哪些密码,而不仅仅是密码ssh
。通过Plesk查看人们的邮件密码,可以告诉您所有您不希望知道的信息,如果您愿意的话,但是我在这里不想暗示的内容。:)
自适应全局防火墙
fail2ban
仅仅是一个使用类似的应用程序iptables -I <chain_name> 1 -s <IP> -j DROP
,但是您可以使用Bash魔术快速地轻松构建自己的东西。
为了进一步扩展此类功能,请将网络中服务器上的所有fail2ban IP地址聚合到一台额外的服务器上,整理所有列表并将其依次传递到您的核心防火墙,以阻止网络边缘已经存在的所有流量。
此类功能无法出售(当然可以出售,但它将是一个脆弱的系统,很糟糕),但必须与您的基础结构交织在一起。
同时,您还可以使用黑名单IP地址或其他来源的列表,无论是您自己收集还是外部收集。