fail2ban SSH


Linux 17 阅 0 评

安装

# 对于 Ubuntu, Debian
sudo apt install -y fail2ban

# 对于 CentOS, Fedora
sudo yum install -y epel-release
sudo yum install -y fail2ban

# 开启fail2ban服务
systemctl enable --now fail2ban

fail2ban 默认配置为 /etc/fail2ban/jail.conf,为避免更新时配置被覆盖,生成自定义配置:

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

显示 fail2ban 配置

cat /etc/fail2ban/jail.local

编辑/etc/fail2ban/jail.local

[sshd]
enabled  = true
port     = 22
filter   = sshd
logpath  = /var/log/auth.log          # Ubuntu/Debian
#logpath = /var/log/secure           # CentOS
maxretry = 3
bantime  = 600

参数

* enabled         - 表示是否开启监控服务
* port             - 监控服务的端口号
* filter            - 启用的日志过滤器, 引用位于 /etc/fail2ban/filter.d 目录中的文件
* logpath         - 监控服务的日志文件路径
* maxretry        - 最大失败重试次数(maxretry attempts)
* bantime         - 禁止IP地址的持续时间(秒)

多配置路径1:/etc/fail2ban/jail.d/sshd.conf

[sshd]
enabled = true
mode   = normal
backend = systemd

多配置路径2:/etc/fail2ban/jail.d/nginx.conf

[nginx-http-auth]
enabled = true
mode = fallback
port = http,https
logpath = /var/log/nginx/access.log


[nginx-limit-req]
enabled = true
port = http,https
logpath = /var/log/nginx/access.log


[nginx-botsearch]
enabled = true
port = http,https
logpath = /var/log/nginx/access.log


[nginx-bad-request]
enabled = true
port = http,https
logpath = /var/log/nginx/access.log


[php-url-fopen]
enabled = true
port = http,https
logpath = /var/log/nginx/access.log

参数

nginx-http-auth:
mode = fallback表示使用fallback模式。在这种模式下,Fail2Ban会在特定时间段内(默认为10分钟)累积失败次数,然后根据规则封锁IP。

nginx-limit-req:
这个规则用于检测客户端在短时间内发起的请求次数是否超过阈值,从而防止DDoS攻击。

nginx-botsearch:
该规则用于检测一定时间内访问频率异常的客户端,可能是爬虫或恶意行为。

nginx-bad-request:
用于检测HTTP请求中可能的恶意行为或异常情况,例如恶意扫描或非法请求。

php-url-fopen:
该规则用于防止通过php://协议进行的潜在攻击,这是一种可能被滥用的PHP特性。

重启 fail2ban

systemctl restart fail2ban

查看 iptables 配置

iptables -nvL

解禁/封禁 ip

fail2ban-client set ssh-iptables unbanip 8.8.8.8
fail2ban-client set ssh-iptables banip 8.8.8.8

显示状态

fail2ban-client status
fail2ban-client status sshd
fail2ban-client status nginx-http-auth

显示日志

tail -n5 /var/log/fail2ban.log
tail -f /var/log/auth.log

2023年1月13日 处理修复
2024年1月18日 更新补充

更新 2024-01-18
评论 ( 0 )
私信
pic
code
pre