保护linux服务器:iptables vs fail2ban

Modified on: Fri, 19 Jul 2019 03:40:02 +0800

我想选择社区关于Linux服务器安全性的大脑,特别是关于暴力攻击和使用 fail2ban 与自定义 iptables 的关系。

有一些类似的问题,但没有一个问题能让我满意。简而言之,我正在尝试确定最佳解决方案,以保护暴露于互联网(运行常规服务,ssh,网络,邮件)的Linux服务器免受暴力攻击。

我对服务器安全有一个很好的处理,即通过不允许root或密码登录来锁定ssh,更改默认端口,确保软件是最新的,检查日志文件,只允许某些主机访问服务器和制作使用安全审核工具,例如Lynishttps://cisofy.com/lynis/ < / a>),对于一般安全合规性,所以这个问题不一定与此有关,尽管总是欢迎输入和建议

我的问题是我应该使用哪种解决方案(fail2ban或iptables),我应该如何配置它,还是应该使用两者的组合来抵御暴力攻击?

关于这个主题有一个有趣的回应(Denyhosts vs fail2ban vs iptables-防止暴力登录的最佳方法?)。我个人最有趣的答案是(https://serverfault.com/a/128964),iptables路由发生在内核而不是fail2ban,它使用用户模式工具来解析日志文件。 Fail2ban当然使用iptables,但它仍然需要解析日志文件并匹配模式,直到它执行一个动作。

然后使用iptables并使用限速https://www.rackaid.com/blog/how-to-block-ssh-brute-force-attacks/)从IP中删除请求在一段时间内,无论尝试连接的协议是什么,都会在特定时间段内进行太多的连接尝试?如果是这样,那么在这里有一些关于使用drop vs reject的有趣想法(http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject),对此有何想法?

Fail2ban允许以能够为默认配置中可能未解决的服务编写自定义“规则”的形式进行自定义配置。它易于安装和设置,并且功能强大,但是如果我想要实现的是“阻止”来自服务器的IP,如果它们在任何设备上进行2次失败的访问尝试,则可能是一种过度杀伤服务/协议超过 x 的时间量?

此处的目标是打开每日logwatch报告,而不必滚动尝试连接到服务器的失败页面。

感谢您抽出宝贵时间。

作者:,kingmilo

最佳答案

  

我应该使用fail2ban还是iptables?

除了防火墙解决方案之外,还使用fail2ban 扩展按需 那些现有的防火墙规则,并使用规则来阻止特定的ip - 对其他公共服务执行不良行为的系统的地址。他们彼此协同工作。

简化:防火墙只能看到网络连接和数据包,并且可以了解其中的模式,但它没有应用程序级别的洞察力来区分所需的和有效的请求与恶意,格式错误和不受欢迎的请求。例如,您的防火墙无法区分一堆HTTP API请求与您的Wordpress管理页面上的暴力密码猜测导致的错误登录尝试之间的区别,防火墙它们都只是到端口80或443的TCP连接。

Fail2ban是一种通用且可扩展的方法,可以为您的防火墙提供应用程序级别的洞察力,尽管是间接的。
应用程序经常会注册并记录恶意,格式错误和不良请求,但很少会有本机阻止进一步滥用的能力。虽然它稍微分离,但Fail2ban可以对这些已记录的恶意事件采取行动并限制损害并防止进一步滥用,通常是通过动态重新配置防火墙来拒绝进一步访问。换句话说,Fail2ban为您现有的应用程序提供了抵御滥用的方法,而无需对其进行修改。

通过入侵检测/预防系统。


例如,网络服务器是一种常见的公共服务,在您的防火墙中,TCP端口80和443对于整个互联网是开放的。
通常,您对HTTP / HTTPS端口没有任何速率限制,因为多个有效用户在例如NAT网关或Web代理后面时可以拥有单个源。

当您检测到针对您的网络服务器的不良和/或恶意操作时,您可以使用fail2ban自动阻止此类攻击者(要么完全阻止它们,要么仅锁定对端口80和443的访问权限。)

另一方面,SSH访问不是公共服务,但如果您无法将防火墙中的SSH访问限制为仅列入白名单的IP地址范围,则速率限制传入连接是一种方法。 放慢暴力攻击。但是你的防火墙仍然无法区分用户bob成功登录5次,因为他正在运行ansible playbooks,5次尝试以root用户身份登录。

作者:,HBruijn

相关问答

添加新评论