在当今互联网环境中,服务器安全至关重要。尤其是运行在公网上的 CentOS 服务器,经常成为黑客暴力破解 SSH 密码的目标。为了有效防止此类攻击,fail2ban 是一个非常实用的入侵防御工具。本教程将详细讲解如何在 CentOS 系统上安装、配置并使用 fail2ban 来提升服务器安全性,即使是 Linux 小白也能轻松上手。
fail2ban 是一个用 Python 编写的开源入侵防御软件,它通过监控系统日志(如 /var/log/secure)来检测恶意行为(例如多次登录失败),并自动将可疑 IP 地址加入防火墙规则(如 iptables 或 firewalld)进行临时或永久封禁。这能有效防止 暴力破解 SSH、FTP、Web 登录等常见攻击。
本教程适用于 CentOS 7 或 CentOS 8 系统。请确保你拥有 root 权限或具有 sudo 权限的用户账户,并且服务器已连接互联网。
首先,我们需要启用 EPEL 仓库(Extra Packages for Enterprise Linux),因为 fail2ban 不在 CentOS 默认仓库中。
# 对于 CentOS 7sudo yum install -y epel-releasesudo yum install -y fail2ban# 对于 CentOS 8sudo dnf install -y epel-releasesudo dnf install -y fail2ban
安装完成后,启动 fail2ban 服务并设置为开机自启:
sudo systemctl start fail2bansudo systemctl enable fail2ban
默认配置文件位于 /etc/fail2ban/jail.conf,但官方建议不要直接修改它,而是创建一个本地配置文件 jail.local。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
接下来编辑 jail.local 文件:
sudo vi /etc/fail2ban/jail.local
找到 [sshd] 部分,取消注释并修改如下(根据你的需求调整):
[sshd]enabled = trueport = sshlogpath = %(sshd_log)smaxretry = 3bantime = 600findtime = 600
参数说明:
如果你使用的是 firewalld(CentOS 7/8 默认),fail2ban 会自动使用它进行封禁。无需额外配置。
保存配置后,重启服务使配置生效:
sudo systemctl restart fail2ban
你可以使用以下命令查看当前被封禁的 IP:
sudo fail2ban-client status sshd
你可以从另一台机器故意输错 SSH 密码 3 次以上,然后检查是否被封禁。注意:不要用自己的管理 IP 测试,以免被锁!
bantime 设为 -1 表示永久封禁(谨慎使用)。/var/log/fail2ban.log 了解封禁记录。通过本教程,你已经成功在 CentOS 上部署了 fail2ban 入侵防御 系统,有效提升了服务器对 暴力破解 SSH 攻击的抵御能力。fail2ban 配置灵活,除了 SSH,还可用于保护 Nginx、Apache、Postfix 等服务。掌握这项技能,是构建安全 Linux 服务器安全防护 体系的重要一步。
记住:安全无小事,定期更新系统、使用强密码、配合 fail2ban 等工具,才能让你的服务器更安全!
本文由主机测评网于2025-12-06发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025123876.html