Linux 系统安装和配置 Fail2ban:保护服务器免受暴力攻击的完整指南

倪斌
倪斌
发布于 2024-04-26 / 265 阅读
0
0

Linux 系统安装和配置 Fail2ban:保护服务器免受暴力攻击的完整指南

Fail2ban 是一款用于保护 Linux 服务器免受暴力攻击的工具。它通过监视系统日志文件,检测恶意的登录尝试,并自动对来自恶意 IP 地址的请求进行阻止或封禁。Fail2ban 可以防止暴力破解密码、恶意的 SSH 登录尝试、Web 服务器的暴力访问等攻击,从而增强了服务器的安全性。

1、RedHat / CentOS 上的安装和配置

1、安装 epel 源

yum install -y epel-release

2、安装 Fail2ban

yum install -y fail2ban

3、启动 Fail2ban 服务

systemctl start fail2ban

4、开机自启动

systemctl enable fail2ban

5、查看 Fail2ban 服务状态。

systemctl status fail2ban

2、Ubuntu / Debian 上的安装和配置

1、安装 Fail2ban

sudo apt-get update
sudo apt-get install fail2ban

2、Debian 12 及以上的版本需要手动安装 rsyslog

sudo apt-get install rsyslog

3、启动 Fail2ban 服务

sudo systemctl start fail2ban

4、开机自启动

sudo systemctl enable fail2ban

5、查看 Fail2ban 服务状态。

sudo systemctl status fail2ban

3、配置fail2ban

创建配置文件的本地副本:

fail2ban读取/etc/fail2ban/jail.conf文件,但推荐不直接修改这个文件,而是创建一个本地副本jail.local进行自定义设置,因为jail.conf可能会在包更新时被覆盖。

sudo cp /etc/fail2ban/jail.{conf,local}

4、编辑jail.local文件

使用文本编辑器编辑/etc/fail2ban/jail.local文件,以下配置仅供参考,请按实际需求调整。

#DEFAULT-START
[DEFAULT]
bantime = 600
findtime = 300
maxretry = 5
banaction = firewallcmd-ipset
action = %(action_mwl)s
#DEFAULT-END
[sshd]
ignoreip = 127.0.0.1/8               # 白名单
enabled = true
filter = sshd
port = 22                            # 端口
maxretry = 2                         # 最大尝试次数
findtime = 300                       # 发现周期 单位s
bantime = 600                        # 封禁时间,单位s。-1为永久封禁
action = %(action_mwl)s
banaction = iptables-multiport       # 禁用方式
logpath = /var/log/secure            # SSH 登陆日志位置

4、故障排除

  • 如之前已经手动安装过 Fail2ban,需要将 [sshd] 部分的配置信息写入到 jail.local 中,重启 fail2ban 服务,否则可能出现获取黑名单报错的问题;

  • 如果选择的禁用方式为 -muliport,则在封禁时,只会禁用配置中的端口,如默认配置中的 22;

  • 如果需要修改禁用方式,需要先判读对应服务是否正常可用;

  1. RedHat/CentOS 使用的是 Firewall 防火墙。

  2. Debian/Ubuntu使用的是 UFW 防火墙。

  • 日志路径需要根据操作系统修改。

  1. RedHat/CentOS 日志为 /var/log/secure。

  2. Debian/Ubuntu 日志为 /var/log/auth.log

  • Debian 从 12 开始弃用了 rsyslog,使用时需要先自行安装;

5、重启fail2ban服务

应用配置更改后,需要重启fail2ban服务:

sudo systemctl restart fail2ban

6、查看和管理封禁的IP地址

查看被fail2ban封禁的IP地址列表:

sudo fail2ban-client status sshd

7、解封某个特定的IP地址

fail2ban-client set [$JAIL_Name] unbanip [IP_ADDRESS]

# fail2ban解封命令:

fail2ban-client set [$JAIL_Name] unbanip [IP_ADDRESS]

 fail2ban-client set sshd unbanip 192.168.1.110

以上是在 RedHat / CentOS 和 Ubuntu / Debian 系统上安装和配置 Fail2ban 的步骤。通过部署 Fail2ban,您可以增强服务器的安全性,保护服务器免受恶意攻击。


评论