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报告,而不必滚动尝试连接到服务器的失败页面. 感谢您抽出宝贵的时间. 解决方法
除了防火墙解决方案之外,您还可以使用fail2ban,按需扩展现有防火墙规则,以阻止对其他公共服务执行不良操作的系统的特定IP地址.他们彼此协同工作. 简化:防火墙只能看到网络连接和数据包,并且可以了解其中的模式,但它没有应用程序级别的洞察力来区分所需的和有效的请求与恶意,格式错误和不受欢迎的请求.例如,您的防火墙无法区分一堆HTTP API请求与您的Wordpress管理页面上的暴力密码猜测导致的错误登录尝试之间的区别,防火墙它们都只是到端口80或443的TCP连接. Fail2ban是一种通用且可扩展的方法,可以为您的防火墙提供应用程序级别的洞察力,尽管有点间接. 为防火墙提供应用程序级别洞察的另一种方法是使用intrusion detection/prevention system. 例如,网络服务器是一种常见的公共服务,在您的防火墙中,TCP端口80和443对于整个互联网是开放的. 当您检测到针对您的网络服务器的不良和/或恶意操作时,您可以使用fail2ban自动阻止此类攻击者(要么完全阻止它们,要么仅锁定对端口80和443的访问权限). 另一方面,SSH访问不是公共服务,但如果您无法将防火墙中的SSH访问限制为仅列入白名单的IP地址范围,则速率限制传入连接是减缓暴力的一种方法 – 强制攻击.但是你的防火墙仍然无法区分用户bob成功登录5次,因为他正在运行ansible playbooks,5次尝试以root用户身份登录. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |