fail2ban 配置记录

上周在公网暴露了一台 linux 机器用于远程开发,关闭了 rootpassword 登录,只保留了密钥验证登录。昨晚查询了一下sshd日志发现有4w+的暴力破解登录记录。今天开启了fail2ban ,现在记录一下在 openSUSE 配置的过程。

安装

1
zypper ref && zypper in fail2ban

配置

fail2ban 的配置 文件默认在 /etc/fail2ban/jail.conf 是默认的配置文件,升级时会被覆盖。目录下有一个同名的jail.local文件,我们的自定义的配置可以放在这里。优先级是 file.local > file.conf**,包括根目录下的配置和 dir*.d 目录下的配置。

1
2
3
4
5
6
7
8
9
10
11
12
┌──(user@localhost)-[/etc/fail2ban]
└─$ tree -L 1
.
├── action.d
├── fail2ban.conf
├── fail2ban.d
├── filter.d
├── jail.conf
├── jail.d
├── jail.local
├── paths-common.conf
└── paths-opensuse.conf

复制 jail.conf 的内容到 jail.local(也可以只拷贝你需要的部分配置)
大概在274行找到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[sshd]

# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode = normal
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
# 新增下面几行
enabled = true
# 秒
bantime = 86400
# 最大错误次数
maxretry = 3
# 如果主机在最后“findtime”秒内生成了“maxretry”,则该主机将被禁止
findtime = 10m

将 fail2ban 服务添加到开机自启动项

1
systemctl enable fail2ban

启动 fail2ban 服务

1
systemctl start fail2ban

查看服务状态

1
systemctl status fail2ban.service

查看 fail2ban 状态

1
fail2ban-client status

查看 sshd jail 状态

1
fail2ban-client status sshd

注意 默认的配置是 当 restart / reload fail2ban 服务时,被 ban 的 ip 列表将会被清除。

取消 restart / reload 默认清除 baned ip 列表的配置

action.d目录下有 iptables.conf 文件,手动创建 iptables.local 文件,并添加如下配置,删除 <actionflush>行,使自动清除的配置不生效。

1
2
3
4
5
6
7
8
9
# Option:  actionstop
# Notes.: command executed at the stop of jail (or at the end of Fail2Ban)
# Values: CMD
#
actionstop = <_ipt_del_rules>
# 删除 <actionflush> 行
<actionflush>
<iptables> -X f2b-<name>

重新加载 fail2ban 服务

1
systemctl reload fail2ban

手动添加向fail2ban 添加 禁止的 ip

1
fail2ban-client set sshd 8.8.8.8 4.4.4.4 114.114.114.114 

通过 journal 日志过滤曾经登录失败的 ip,查看
参考文档
https://aws.amazon.com/cn/blogs/china/open-source-tool-to-protect-ec2-instances-fail2ban/


fail2ban 配置记录
https://tedding.dev/2023/08/31/18a4aa06fd8.html
作者
TED.DING
发布于
2023年8月31日
许可协议