OpenEuler22.03安装Fail2Ban防ssh暴力破解

最近查看云服务器的安全告警事件,发现每天都有大量暴力破解的尝试,为了减少告警事件和攻击成功的概率(虽然很低),网上检索到有个开源入侵防御工具Fail2Ban,它可以实时监控日志文件,一旦检测到暴力破解行为(如多次登录失败),就会自动使用防火墙(如 firewalld)将攻击者 IP 临时或永久封禁。
云监控提示
查看系统安全日志/var/log/secure
在这里插入图片描述

1. 项目地址

https://github.com/fail2ban/fail2ban
因为在OpenEuler2203系统上面用yum找不到fail2ban,只能使用编译的方法进行安装
参考博客文章 Linux 命令工具 fail2ban 使用指南

2. 安装步骤

安装python依赖

dnf install python3-systemd -y
dnf install python3-devel gcc -y
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
python3 setup.py install 

如果看到这样的输出说明编译成功
在这里插入图片描述

3. 配置服务防护SSH

vim /etc/fail2ban/jail.conf 

[DEFAULT] 是全局默认值,其他 jail 继承或覆盖
找到[DEFAULT] 开头的块去编辑
参考配置如下:

[DEFAULT]
ignoreip = 127.0.0.1/8 ::1         # 忽略本地 IP
bantime = 24h                       # 封禁时间( 小时)
findtime = 60m                    # 查找时间窗( 分钟)
maxretry = 5                      # 最大失败次数(超出则封禁)
backend = systemd                 # 使用 systemd 读取日志
banaction = firewallcmd-ipset     # 使用 firewalld 封禁 IP

[sshd]
enabled = true                    # 启用 SSH 防护
mode   = aggressive
port = 16822                        # 监控的端口(或自定义端口号)
logpath = %(sshd_log)s            # 自动识别 /var/log/secure
filter = sshd                     # 使用默认 sshd 筛选规则

参数说明:

ignoreip:允许的 IP 地址(比如你家/公司白名单 IP)
bantime:封禁时长,可设置为 -1 实现永久封禁
findtime + maxretry:在 findtime 时间内失败超过 maxretry 次,就封禁
banaction:配合 firewalld 封 IP
backend = systemd:Rocky 使用 systemd 管理日志,比传统文件读取更稳定

mode: 在 aggressive 模式下,Fail2Ban 可能会对更多的错误类型进行匹配(如多次失败的密码尝试、无效用户等),而在 normal 模式下,可能只匹配标准的 SSH 登录失败。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
sshd部分
在这里插入图片描述

4. 启动Fail2Ban服务

从编译目录下拷贝systemd服务文件到服务配置文件目录下

cp build/fail2ban.service /etc/systemd/system/

注意这里有坑,直接启动会失败,应该是python环境没读取成功
在这里插入图片描述

vi /etc/systemd/system/fail2ban.service

添加环境变量,依据自己python修改

Environment="PYTHONPATH=/usr/local/lib/python3.9/site-packages/"

我觉得注释掉PartOf这一列比较好
PartOf :该参数仅作用于单元的停止或重启。其含义是,当停止或重启这里列出的某个单元时, 也会同时停止或重启该单元自身。 注意,这个依赖是单向的, 该单元自身的停止或重启并不影响这里列出的单元。
在这里插入图片描述
更新服务重启就可以啦

systemctl daemon-reload
systemctl restart fail2ban.service
systemctl status fail2ban.service

在这里插入图片描述

5. Fail2Ban的一些命令

查看 Fail2Ban 状态:

fail2ban-client status

查看 sshd Jail 的详细状态:

fail2ban-client status sshd

手动封禁某个IP

fail2ban-client set sshd banip 10.0.0.111

解封IP

fail2ban-client set sshd unbanip 10.0.0.111

查看封禁结果

fail2ban-client status sshd

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值