1. 首页
  2. 系统运维
  3. Linux

CentOS、Rocky Linux、AlmaLinux 8/9如何使用Firewalld配置Fail2ban防护SSH扫描攻击

Fail2ban 是一个系统守护进程,用于保护服务器免受恶意登录和暴力攻击。 Fail2ban 是一个用 Python 编写的开源入侵防御软件框架,并且具有极强的可配置性。 它作为守护程序服务运行,将监视 SystemD 日志和日志文件,然后查找任何失败的身份验证尝试。当验证失败达到最大数时,fail2ban将使用防火墙软件自动阻止IP地址。

如果你是 VPS(虚拟专用服务器)或专用服务器所有者,您应该考虑在所有服务器上安装fail2ban。 它将帮助您保护一些基本服务(例如 SSH 和 FTP)免受恶意暴力攻击。 此外,fail2ban 非常方便、易于配置且灵活。

下面文章我将介绍如何在AlmaLinux 9中安装fail2ban、使用firewalld 配置fail2ban 以及保护SSH 服务免受暴力攻击。CentOS,Rocky Linux 8或者9基本都是一样的步骤,他们都是基于RedHat系统。这里使用firewalld是因为iptables从7开始就已经慢慢被抛弃,AlmaLinux 9上已经基本没用了。

如果需要CentOS 7的配置,参考这篇文章:《CentOS 7 Fail2ban SSH攻击防护

第一步:检查Firewalld并启动

默认firewalld已经安装,设置自动启动,启动firewalld,查看状态。

 systemctl start firewalld 
 systemctl enable firewalld 
 systemctl status firewalld 
CentOS、Rocky Linux、AlmaLinux 8/9如何使用Firewalld配置Fail2ban防护SSH扫描攻击

看到这个说明启动成功

第二步: 安装Fail2ban

dnf install epel-release 
dnf install fail2ban fail2ban-firewalld 

也可以用yum,AlmaLinux也保留了7上面的yum包管理命令。

启动

systemctl start fail2ban 
systemctl enable fail2ban 
systemctl status fail2ban 
CentOS、Rocky Linux、AlmaLinux 8/9如何使用Firewalld配置Fail2ban防护SSH扫描攻击

第三步:配置Fail2ban

现在将配置fail2ban并启用fail2ban以与firewalld一起使用。

3.1 复制”jail.conf” 到 “jail.local”

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local 

3.2 编辑jail.local配置文件

在default块下面,检查设置默认几个参数,下面是我的设置。查找一小时内失败5次的请求后禁止一个小时访问。

bantime = 1h
findtime = 1h
maxretry = 5 

3.3 启用firewalld

默认的fail2ban配置使用iptables进行阻止。 要使fail2ban能够使用firewalld进行阻止,请使用以下命令将配置“00-firewalld.conf”复制到“00-firewalld.local”。

mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local 

3.4 重启fail2ban

systemctl restart fail2ban 

第四步:启用SSH防护

默认情况下,fail2ban 不会阻止任何 IP 地址,直到您为要保护的每个服务启用防护配置。 此外,防护配置将覆盖“jail.local”上的默认配置,每个服务的防护配置都可以放在“/etc/fail2ban/jail.d”目录中。

4.1 创建sshd.local

vim /etc/fail2ban/jail.d/sshd.local

复制以下内容到文件

[sshd]
enabled = true
bantime = 1d
maxretry = 3

该配置默认覆盖jail.local中有关“sshd”的“bantime”和“maxretry”默认选项。

4.2 重启fail2ban

systemctl restart fail2ban 

查看是否生效

fail2ban-client status 
CentOS、Rocky Linux、AlmaLinux 8/9如何使用Firewalld配置Fail2ban防护SSH扫描攻击

检查配置和防护策略动作

CentOS、Rocky Linux、AlmaLinux 8/9如何使用Firewalld配置Fail2ban防护SSH扫描攻击

就像上图所示,防护动作就是配置的 “firewallcmd-rich-rules” 。

第五步: 测试

到这里sshd服务器的攻击防护就已经设置好了,下面可以多次登录失败测试。禁止ip输入一下命令查看:

firewall-cmd --list-rich-rules
CentOS、Rocky Linux、AlmaLinux 8/9如何使用Firewalld配置Fail2ban防护SSH扫描攻击

最后这样你已在 AlmaLinux 9 上成功安装了fail2ban框架。下一步你可以研究其他另一个来配置保护其他服务,例如 Nginx、FTP、Postfix、WordPress 等。

订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code