Fail2ban安装及配置教程:防止ECS暴力破解
方法一:首先建议及时修改ECS实例的密码
方法二:使用Fail2ban限制ip尝试的次数
1、了解Fail2ban
这是一个入侵防御软件的框架,可以保护计算机服务器免受暴力攻击。Fail2Ban 使用 Python 编程语言编写,能够运行在 POSIX 系统上(例如:Linux),并且具有与本地安装的数据包控制系统或防火墙的接口。更进一步的解释,Fail2Ban 帮助我们自动化的监视暴力攻击和密码猜测者的攻击,对于在短时间内反复未能通过身份验证,则自动的禁止进行尝试。
2、下载Fail2ban
CentOS或Red Hat系统
sudo yum install fail2ban
3、调整配置文件
进行配置文件的调整,使其更好的保护自己的服务器
3.1、创建jail.local文件
Fail2ban的所有默认规则,都写在/etc/fail2ban/jail.conf
这个文件里,但是最好不要直接修改jail.conf文件;因为Fail2ban一旦进行更新,我们修改的配置都会被覆盖掉。
所以我们需要创建一个jail.local的本地复写本。Fail2ban的加载逻辑是,先读取.conf
文件,再读取.local
文件。如果在.local
文件里发现了和.conf
里相同的配置项,它就会优先使用.local
里的设置。这样既安全,又方便我们管理和升级。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
配置文件地址:/etc/fail2ban/jail.local
比较重要的三个配置
配置的含义:若有任何一个ip,在10分钟之内,尝试登录失败次数超过3次,就将该ip拉黑10分钟。
3.2、查看jail.local
sudo nano /etc/fail2ban/jail.local
若提示 sudo: nano:找不到命令
是没有安装 nano编辑器,安装nano编辑器
sudo yum install nano # CentOS 或 RHEL 系统
使用命令查看,使用 ctrl+对应的提示词 使用
3.3、配置ssh登录保护
在配置区块中找到 SSH servers 字样的配置片段,在默认的基础上新增
保存并启动Fail2ban服务
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo systemctl status fail2ban
状态是 running 代表启动了
若是在启动之后,修改了部分配置,可以使用重置命令来使配置文件生效
重启服务
systemctl restart fail2ban
重载配置
systemctl reload fail2ban
4、测试是否成功
使用另一台服务器进行测试,第二次进行测试的直接进行拒绝,就代表成功了。
5、查看Fail2ban封禁的ip
查看日志:看看是否记录了来自你的 IP 地址的失败登录尝试以及是否被封禁
sudo tail -f /var/log/fail2ban.log
如果 fail2ban
阻止了某个 IP 地址,日志中应该有类似 Ban
的记录
查看是否有封禁的ip
sudo fail2ban-client status sshd
5、将封禁的ip释放出来
查看Fail2ban运行并列出所有的jail
#查看服务状态
sudo systemctl status fail2ban
#查看所有fail
sudo fail2ban-client status
解封指定ip(以 47.108.234.201为例)
把 sshd 换成实际封禁该ip的jail名 ,上一步得到的
sudo fail2ban-client set sshd unbanip 47.108.234.201
回复 1 就是成功了
相关命令集合
1、下载Fail2ban命令,以centos系统为例
sudo yum install fail2ban
2、查看Fail2ban状态
sudo systemctl status fail2ban
3、重启Fail2ban服务
systemctl restart fail2ban
4、重载配置
systemctl reload fail2ban
5、在系统启动时自启服务
sudo systemctl enable fail2ban
6、启动服务
sudo systemctl start fail2ban
7、查看封禁ip地址列表
sudo fail2ban-client status sshd
8、查看所有的fail
sudo fail2ban-client status
9、查看封禁ip,以jail名为sshd为例
sudo fail2ban-client status sshd
10、解封某一ip,以jail名是sshd为例
sudo fail2ban-client set sshd unbanip ip