1、什么是暴力破解,简单来说就是对一个服务器进行无数次尝试登陆,并用不同的密码进行登陆直到可以登陆成功。暴力破解的基本步骤可以分为以下几步:

1)找到对应的linux服务器IP地址

2)扫描端口号:22  用nmap扫描端口

3)开始暴力破解 : 一般root,破解你的密码,登录你的机器,破坏、盗取你的重要的数据。

2、我在华为云有一台HECS(云耀云服务器),安装的是CentOS7.9版本的操作系统,ssh远程登录之后,隔一段时间发现有很多陌生的IP在尝试通过弹性公网IP远程连接我的HECS(云耀云服务器)。

lastb

Linux lastb 命令用于列出登入系统失败的用户相关信息。

单独执行 lastb 指令,它会读取位于 /var/log 目录下,名称为 btmp 的文件,并把该文件记录登入失败的用户名,全部显示出来。

3、什么是fail2ban?

fail2ban扫描日志文件并且可以识别禁用某些多次尝试登录的IP,通过更新系统的防火墙规则来实现拒绝该IP连接,也可以配置禁用的时间。fail2ban提供了一些常用软件默认的日志过滤规则,方便用户使用,当然也可以自己进行配置filter,预定于提供过滤规则的软件有sshd、apache、nginx等。

fail2ban是开源的软件,可以在github上查看详细介绍

https://github.com/fail2ban/fail2ban

4、安装fail2ban

yum install epel-release -y
yum install fail2ban -y

5、配置fail2ban

fail2ban服务将其配置文件保留在/etc/fail2ban目录中。在那里,您可以找到一个名为默认值jail.conf的文件。

由于包升级可能会覆盖此文件,因此我们不应该编辑直接它。我们将编写一个名为jail.local的新文件。

定义的任何jail.local值都将覆盖其中的jail.conf值。

jail.conf包含一个[DEFAULT]部分,后面是各个服务的部分。

jail.local可以覆盖任何这些值。此外/etc/fail2ban/jail.d/中的文件可用于覆盖这两个文件中的设置。

文件按以下顺序读取应用:

/etc/fail2ban/jail.conf

/etc/fail2ban/jail.d/*.conf 按字母顺序排列

/etc/fail2ban/jail.local

/etc/fail2ban/jail.d/*.local 按字母顺序排列

vim /etc/fail2ban/jail.local

 

[ssh_iptables]
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=22, protocol=tcp]
logpath  = /var/log/secure
maxretry = 3     #尝试次数
findtime  = 10m  #在该时间段内超过尝试次数会被ban掉
bantime = 1h  #屏蔽时间

 

这里是使用iptables规则禁用IP连接

6、启动fail2ban

systemctl enable fail2ban.service
systemctl start fail2ban.service

 

查看fail2ban的运行状态

 systemctl status fail2ban.service

 

7、通过fail2ban-client查看启动的ssh_iptables模块详细情况

fail2ban-client status ssh_iptables

Banned IP list是被封禁的IP

 8、手动解除封禁的IP

想要解除某个 IP 地址的屏蔽,这时候可以使用 fail2ban-client 命令来解除某给 IP 地址的屏蔽,比如:我们要解除 172.104.78.195 这个 IP 地址只需要fail2ban-client set 监狱名称

fail2ban-client set ssh_iptables  unbanip 172.104.78.195

9、fail2ban总结

说白了 Fail2Ban 就是一个日志 IP 的过滤筛选器,根据不同的监狱规则从日志中找出这些“行为不端”的 IP,一旦这些 IP 发送了触犯监狱规则的请求达到阈值就会在 iptables 里直接封禁屏蔽,并且可以设置屏蔽这个 IP 的时间长短,来避免误伤造成的危害过大。

需要注意:

1)如果后期需要把iptables规则清空后或iptables重启后,也需要把fail2ban重启一下

2)如果修改ssh默认端口22为别的端口号后,配置fail2ban来监控sshd服务需要修改配置文件"port=22"这个值

3)可以在 /var/log/fail2ban.log 查看屏蔽日志

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐