ssh – 保护linux服务器:iptables vs fail2ban

前端之家收集整理的这篇文章主要介绍了ssh – 保护linux服务器:iptables vs fail2ban前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想选择社区关于 Linux服务器安全性的大脑,特别是关于暴力攻击和使用fail2ban与自定义iptables.

有一些类似的问题,但没有一个问题让我满意.总之,我试图确定最好的解决方案,以保护暴露于互联网(运行常规服务,ssh,web,邮件)的Linux服务器免受暴力攻击.

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

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

关于该主题有一个有趣的回应(Denyhosts vs fail2ban vs iptables- best way to prevent brute force logons?).对我个人而言最有趣的答案是(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次失败的访问尝试,那么它可能是一种过度杀伤力.时间?

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

感谢您抽出宝贵的时间.

解决方法

should I use fail2ban or iptables?

除了防火墙解决方案之外,您还可以使用fail2ban,按需扩展现有防火墙规则,以阻止对其他公共服务执行不良操作的系统的特定IP地址.他们彼此协同工作.

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

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

为防火墙提供应用程序级别洞察的另一种方法是使用intrusion detection/prevention system.

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

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

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

猜你在找的Linux相关文章