fail2ban监测SSH服务、fail2ban命令用法.note

noteId: WEBf100c6fca94a5f6d2cb3817b684c593b · 原始路径:/ALL/Linux - A模块/服务配置/fail2ban 监测访问并根据日志进行封禁/fail2ban监测SSH服务、fail2ban命令用法.note · 图片:23 · 附件待处理:0

 
 
 
一、配置使用 fail2ban 进行封禁IP:
fail2ban 实际上是进行日志检测,然后使用iptables 或者 nftables 对IP进行封禁
 
如果使用nftables,需要先启动nftables才行
 
fail2ban 安装后默认是报错的,需要先注释 jail.conf 中的 sshd 配置:
vim /etc/fail2ban/jail.conf
 
 
1、配置 SSH:
 
(1)修改端口号:
vim /etc/ssh/sshd_config
 
 
 
(2)仅允许 user01 访问:
adduser user01
vim /etc/ssh/sshd_config
## 使用 AllowUsers:
这样就只有 user01能够登录
 
 
(3)将用户登录日志记录到 /var/log/ssh.log,并自定义日志内容:
注意ssh服务端需要安装 rsyslog(无需配置),否则没有 auth.log 日志
 
 
3.1、设置 日志等级,并设置日志设施:
vim /etc/ssh/sshd_config
 
3.2、配置 rsyslog 接收包含该日志设施的日志并自定义路径:
apt install -y rsyslog
vim /etc/rsyslog.conf
rsyslog中默认定义了 auth设施的接收文件,我们只需要更改路径即可
systemctl restart rsyslog
 
查看日志文件:
 
2、配置 fail2ban 检测3次访问失败后封禁IP:
注意ssh服务端需要安装 rsyslog(无需配置),否则没有 auth.log 日志
 
(1)安装 fail2ban:
apt install -y fail2ban
apt install -y iptables    //需要使用 iptables(因为fail2ban依赖iptables来进行封禁)如果不安装,fail2ban将无法执行封禁
## 也可以使用nftables,在配置文件中指定:banaction = nftables
 
(2)配置 fail2ban检测、封禁:
vim /etc/fail2ban/jail.local    //这个文件需要创建
## 参数可以在 jail.conf 中复制,都有的
因为 sshd 的默认路径被更改了,因此这里也需要改为 sshd 现在使用的日志文件路径,否则无法检测到日志文件,无法进行封禁
systemctl restart fail2ban
或:
直接完整复制 jail.conf 中的内容,然后稍微修改一下
 
·参数解释:
port    //被监测的服务端口
filter    //调用 filter.d/下内置的同名.conf 过滤文件,这里定义 sshd,调用的就是 filter.d/sshd.conf(如果不定义filter,就使用该jail的名称,例如这里定义的是 [sshd])
bantime    //封禁时长
findtime    //尝试时长,这里表示60秒内尝试的
maxretry    //最大尝试的次数
logpath    //要检测的日志文件路径,这里的路径变量内容是 /var/log/auth.log(因为上面ssh日志路径改了,所以这里也需要更改)
backend    //这里的变量内容是 systemd
 
·可以在 jail.conf 中复制参数:
vim /etc/fail2ban/jail.conf
 
 
(3)客户端访问三次触发封禁:
·三次访问失败后就无法连接了:
 
 
fail2ban上查看:
 
fail2ban添加的防火墙条目,重启不会失效
 
(4)手动解封:
·查看被封禁的地址:
fail2ban-client status
 
fail2ban-client set [定义的 fail2ban模块] unbanip [被封禁的地址]
 
# 这里使用:
fail2ban-client set sshd unbanip 192.168.100.100
 
## 或者这样清空:
systemctl restart nftables
iptables -F
可以看到iptables已经没有封禁了:
 
 
3、配置 使用 nftables 来进行封禁:
只需要加上一条:banaction = nftables
 
 
·测试:
访问失败三次以上:
 
nftables 成功封禁: