在ubuntu 或centos 下 fail2ban 的安装使用
简介
Fail2ban 是一款开源入侵防御软件,主要用于防止各种服务(如 SSH、HTTP、SMTP 等)的暴力破解攻击。它通过监控日志文件,根据预定义的规则识别可疑活动,然后通过动态修改防火墙规则来阻止攻击者的 IP 地址。
功能有:
- 日志监控,监控配置的服务日志文件,入SSH,WEB服务器,邮件服务器等日志
- 可以活动识别,根据预定义的过滤规则,识别日志中可以的活动,如多次失败的登录尝试
- 动态阻止,一旦识别出可以活动,fail2ban就会通过修改防火墙规则来阻止攻击IP
- 多服务支持,fail2ban支持多个服务,如SSH,HTTP,SMTP等
- 报警通知,Fail2ban支持邮件、短信、微信等报警通知
作用:
- 防止暴力破解攻击
- 减少服务器负载
- 增强安全性
- 自动化管理
安装
Debian/Ubuntu系列
sudo apt-get update
sudo apt-get install fail2ban
RHEL/CentOS系列
sudo yum install epel-release
sudo yum install fail2ban
配置
- 创建本地配置文件
- 默认配置文件为:
/etc/fail2ban/jail.conf
。为了防止误操作,还请新建一个本地配置文件 - 新建一个本地配置文件
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- 编辑本地配置文件
sudo vi /etc/fail2ban/jail.local
找到 [sshd] 部分进行配置- enabled:启用 sshd 监控。
- port:SSH 服务的端口(默认是 22)。
- filter:要应用的过滤器(默认为 sshd)。
- logpath:建议使用默认即可 日志文件路径(在 Debian/Ubuntu 上为 /var/log/- auth.log,在 CentOS/RHEL 上为 /var/log/secure)。
- maxretry:允许的最大失败登录次数。
- bantime:禁止时间(秒)。
- findtime:查找时间窗口(秒)。
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 600 findtime = 600
- 默认配置文件为:
启动服务
- 启动 Fail2Ban 服务
sudo systemctl start fail2ban
- 设置 Fail2Ban 开机自启动
sudo systemctl enable fail2ban
- 检查 Fail2Ban 状态
sudo fail2ban-client status
- 查看 sshd (jail)的状态【推荐】
sudo fail2ban-client status sshd
其他
- 解除 IP 禁止
sudo fail2ban-client set sshd unbanip <IP_ADDRESS>
- 手动禁止 IP 地址
sudo fail2ban-client set sshd banip <IP_ADDRESS>