目录

加固系统安全,防范ssh暴力破解之Fail2Ban

加固系统安全,防范ssh暴力破解之Fail2Ban

Fail2Ban 是什么?

现在让我们一起来认识一下今天的主角 – Fail2Ban。简单说来,这是一个入侵防御软件的框架,可以保护计算机服务器免受暴力攻击。Fail2Ban 使用 Python 编程语言编写,能够运行在 POSIX 系统上(例如:Linux),并且具有与本地安装的数据包控制系统或防火墙的接口,例如iptables或TCP Wrapper 等。更进一步的解释,Fail2Ban 帮助我们自动化的监视暴力攻击和密码猜测者的攻击,对于在短时间内反复未能通过身份验证,则自动的禁止进行尝试。

Fail2Ban 工作原理

Fail2ban通过扫描日志文件(例如/ var / log / apache / error_log),发现并禁止显示出恶意迹象的IP地址(例如:过多的密码失败、寻找漏洞利用等)。通常,Fail2Ban使用更新防火墙规则的方法在指定的时间内拒绝特定的IP地址,在Linux 操作系统下,Fail2Ban 是通过向iptables 添加规则来强制实施对可疑IP地址的禁止。当然也可以配置任何其他任意操作(例如:发送电子邮件等)。

Fail2Ban具有开箱即用的特性,标准配置附带了Apache、Lighttpd、sshd、vsftpd、qmail、Postfix和Courier邮件服务器的过滤器。过滤器是由Python正则表达式定义的,熟悉正则表达式的开发人员可以方便地对其进行定制。一个过滤器和一个动作的组合被称为“jail”(监狱),是用来阻止恶意访问者对特定网络服务的访问。以及随软件分发的示例,可能会为创建访问日志文件的任何面向网络的过程创建一个“监狱”。考虑到现实的场景中,可能已为本机的防火墙配置了规则。Fail2Ban仅添加和删除其自己的规则-常规的iptables 的规则将保持不变。

Fail2Ban能够减少不正确的/恶意的身份验证尝试的发生率,但是它不能消除弱身份验证带来的安全风险。 如果确实想保护服务器资源,则务必要结合安全的身份认证方法,例如多因子认证(MFA)等。

安装 Fai2Ban

yum install -y fail2ban

https://i-blog.csdnimg.cn/blog_migrate/de25b27d2496f29c7fc90da5da3c7659.png

配置 Fai2Ban

Fail2Ban安装包中含有一个名为jail.conf的默认配置文件。 升级Fail2Ban时,该文件将被覆盖。因此,如果有定制化的配置,需要在升级前做好备份。

另一种推荐的方法是将jail.conf文件复制到一个名为jail.local的文件中。 我们将定制的的配置更改存入jail.local中。这个文件在升级过程中将保持不变。 Fail2Ban启动时会自动读取这jail.conf与jail.local这两个配置文件,当然后者的优先级比较高。

操作方法:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

现在,我们使用编辑器中打开文件jail.local。我使用的是vim

操作方法:sudo vim /etc/fail2ban/jail.local

https://i-blog.csdnimg.cn/blog_migrate/d35abea2d941409bf359eea4f09f3804.png

我们配置的是60秒内失败一次永久封禁

https://i-blog.csdnimg.cn/blog_migrate/6c209285b2aa1902c41589e67ea6dad8.png

配置好后就可以启动fail2ban服务

systemctl enable --now fail2ban

然后查看Jail(监狱)

fail2ban-client status

https://i-blog.csdnimg.cn/blog_migrate/3ed8f386685ba1b22723dde6dfb17dab.png

然后查看指定的Jail(监狱)

fail2ban-client status sshd

https://i-blog.csdnimg.cn/blog_migrate/adfb4389cd02f5b25c01c760feeb682f.png

测试配置

我们可以找到另一台计算机上,用这台机器将向测试的实例发出SSH连接请求,并故意输入密码

创建测试账号

useradd testssh
passwd testssh

https://i-blog.csdnimg.cn/blog_migrate/7ff9ef482c50d28767af5237251c23a7.png

在另一台机器上进行测试,并在目标机器上观察日志

tail -f /var/log/fail2ban.log

https://i-blog.csdnimg.cn/blog_migrate/0a5530b3e0c56e0b50b9b620bd86746a.png https://i-blog.csdnimg.cn/blog_migrate/dd13cd72f20d9466c301cdf3d944a0a9.png

可以看到在 我们第一次输错密码的时候我们进行连接的ip地址就已经被加入黑名单,再次进行ssh连接直接被拒绝

查看sshd监狱,可以看到我们刚才使用的ip已经进入黑名单

https://i-blog.csdnimg.cn/blog_migrate/5a23a1691004ef904304911872e5780f.png

以下是一些常用的 Fail2Ban 命令:

  1. 启动 Fail2Ban 服务:
sudo systemctl start fail2ban

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

https://i-blog.csdnimg.cn/blog_migrate/f36c918ae320365c5890069e479ea495.png

https://i-blog.csdnimg.cn/blog_migrate/e2e9d7228153a813a74973eb7ccb6774.png

https://i-blog.csdnimg.cn/blog_migrate/b7a44204298d70327f2dfaac05539a0a.png

https://i-blog.csdnimg.cn/blog_migrate/c0a2087fd015835af5553b66f452820a.png

https://i-blog.csdnimg.cn/blog_migrate/b741185cb894e902b98eb289282530ea.png

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

知识点!真正的体系化!**

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!