Fail2Ban是一款运行在Linux服务器上的开源入侵防御软件,它会持续监控SSH、Web服务器或FTP等服务的日志,一旦发现某个IP地址在短时间内多次登录失败或触发异常请求,就立刻调用系统防火墙将该IP封禁一段时间,到期后自动解封,从而有效抵御暴力破解和简单的CC攻击。
一、安装Fail2Ban
①更新软件包列表
以root管理员身份登录linux服务器,复制粘贴以下命令并回车:
sudo apt update

②安装Fail2Ban
复制粘贴以下命令并回车:
sudo apt install fail2ban -y

二、安装可能会缺少的一些必须插件
①安装rsyslog
新版本 Debian 默认不使用 rsyslog,但 Fail2Ban 需要它来读取日志
复制粘贴以下命令并回车:
sudo apt install rsyslog -y

②安装python3-systemd
这能让 Fail2Ban 更好地与系统日志(systemd journal)集成
复制粘贴以下命令并回车:
sudo apt install python3-systemd -y

三、配置Fail2Ban
①创建配置文件
复制粘贴以下命令并回车:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

②编辑配置文件
复制粘贴以下命令并回车:
sudo nano /etc/fail2ban/jail.local

③进行基础配置
通过方向“↑↓”键更改光标位置,找到“[DEFAULT]”,继续向下移动可以对这一模块的变量进行编辑。
1.设置“白名单”IP(ignoreip)(由于大部分宽带不是固定IP,不建议进行设置)
2.设置封禁时长(bantime)(默认是10分钟,基本不用改)
3.设置统计时间窗口(findtime)(默认10分钟,基本不用改)
4.设置最大尝试次数(maxretry)(默认是5次,基本不用改)

5.继续往下翻(隔得有点远……)
6.设置日志后端(backend)
将“backend = auto”修改为“backend = systemd”

7.启用SSH防护([sshd])
向下移动光标找到“[sshd]”,通过回车增加一行并输入“enabled = true”

8.修改封禁动作配置(banaction)
Debian从某个版本开始,默认的防火墙管理工具已经从iptables迁移到了nftables。fail2ban默认使用iptables命令来执行封禁动作,如果系统里没有安装iptables,或者iptables命令不在PATH环境变量里,防火墙封禁规则可能不会生效,所以需要把iptables的功能相关设置转成nftables。
向上移动光标,找到如图所示的区域,将“banaction = iptables”修改为“banaction = nftables-multiport”,将“banaction_allports = iptables-allports”修改为“banaction_allports = nftables-allports”

9.保存配置并退出
在现在的界面中,先按Ctrl+X,然后按Y,最后按Enter(回车)保存
四、启动并验证
①启动服务并开机自启
复制粘贴以下命令并回车:
sudo systemctl enable --now fail2ban

②检查服务状态
1.复制粘贴以下命令并回车,如果看到 Active: active (running),就说明安装和启动成功了:
sudo systemctl status fail2ban

提示:此操作会一直运行,如需结束操作回到输入状态请按Ctrl+C结束
2.复制粘贴以下命令并回车,如果输出显示类似以下内容,说明 SSH 防护完全生效:
sudo fail2ban-client status sshd

3.复制粘贴以下命令并回车,如果有输出就说明防火墙功能正常运行
sudo nft list ruleset | grep -i f2b



Comments NOTHING