2025- 6 月-11日 星期三
vpsssl
  • Home
  • vps课堂
  • vps推荐
  • 域名注册
  • Login
No Result
View All Result
vpsssl
Home vps课堂

VPS Fail2Ban 安装教程:保护你的服务器免受恶意攻击

tanselxy by tanselxy
2025年6月1日
in vps课堂
0
VPS Fail2Ban 安装教程:保护你的服务器免受恶意攻击
189
SHARES
1.5k
VIEWS
Share on FacebookShare on Twitter

VPS Fail2Ban 安装教程:保护你的服务器免受恶意攻击

Fail2Ban 是一款入侵防御软件,通过监控日志文件来检测恶意行为,并根据预设规则自动更新防火墙规则,从而阻止可疑 IP 地址的访问。在 VPS(虚拟专用服务器)上安装和配置 Fail2Ban 是提升服务器安全性的重要步骤,尤其对于防范暴力破解 SSH 等常见攻击非常有效。

本教程将指导你如何在常见的 Linux 发行版上安装和配置 Fail2Ban。

前提条件:

  • 一台正在运行的 VPS。
  • 具有 root 或 sudo 权限的用户。
  • 已安装防火墙(如 UFW 或 firewalld,Fail2Ban 会与它们配合工作)。

步骤一:更新系统

在安装任何新软件之前,建议先更新你的系统软件包列表和已安装的软件包。

对于 Debian/Ubuntu 系统:

Bash

sudo apt update
sudo apt upgrade -y

对于 CentOS/RHEL 系统:

Bash

sudo yum update -y

步骤二:安装 Fail2Ban

Fail2Ban 通常在主流 Linux 发行版的官方软件源中都可用。

对于 Debian/Ubuntu 系统:

Bash

sudo apt install fail2ban -y

安装完成后,Fail2Ban 服务会自动启动。

对于 CentOS/RHEL 系统:

首先,你可能需要启用 EPEL (Extra Packages for Enterprise Linux) 软件源:

Bash

sudo yum install epel-release -y

然后安装 Fail2Ban:

Bash

sudo yum install fail2ban -y

安装完成后,启动并设置 Fail2Ban 开机自启:

Bash

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

步骤三:配置 Fail2Ban

Fail2Ban 的主要配置文件是 /etc/fail2ban/jail.conf。但是,强烈建议不要直接修改这个文件,因为软件包更新时可能会覆盖你的更改。正确的做法是创建一个本地配置文件 /etc/fail2ban/jail.local,Fail2Ban 会优先加载此文件中的配置,从而覆盖 jail.conf 中的默认设置。

  1. 复制配置文件:

    Bash

    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    
  2. 编辑 jail.local 文件:

    使用你喜欢的文本编辑器(如 nano 或 vim)打开 /etc/fail2ban/jail.local 文件。

    Bash

    sudo nano /etc/fail2ban/jail.local
    

    下面是一些你需要关注和可能需要修改的关键配置项:

    • [DEFAULT] 段落: 此段落中的设置将应用于所有未明确指定配置的 “jails” (监狱,即监控规则)。

      • ignoreip: 设置不受 Fail2Ban 限制的 IP 地址列表,用空格分隔。可以是你自己的静态 IP 地址或信任的 IP 地址。例如:

        Ini, TOML

        ignoreip = 127.0.0.1/8 ::1 YOUR_STATIC_IP_HERE
        
      • bantime: IP 地址被禁止的时长。默认值通常是 10 分钟 (600 秒)。你可以根据需要调整,例如设置为 1 小时 (1h) 或更长时间。

        Ini, TOML

        bantime  = 1h
        
      • findtime: Fail2Ban 监控日志的时间窗口。如果一个 IP 在此时间段内达到 maxretry 次数的失败尝试,就会被禁止。

        Ini, TOML

        findtime  = 10m
        
      • maxretry: 在 findtime 时间窗口内允许的最大失败尝试次数。

        Ini, TOML

        maxretry = 5
        
      • destemail: 如果你希望在 IP 被禁止时收到邮件通知,可以在这里设置你的邮箱地址。你需要确保你的服务器配置了邮件发送功能 (例如 sendmail 或 postfix)。

        Ini, TOML

        destemail = [email protected]
        
      • sendername: 邮件通知的发件人名称。

        Ini, TOML

        sendername = Fail2BanAlert
        
      • banaction: 用于禁止 IP 的动作。通常 Fail2Ban 会自动检测你使用的防火墙。如果需要,可以手动指定,例如 ufw 或 firewalld-ipset。

        Ini, TOML

        # banaction = ufw # 如果你使用 UFW
        # banaction = firewallcmd-ipset # 如果你使用 firewalld
        

        一般来说,保持默认或让 Fail2Ban 自动检测即可。

    • Jails (监狱) 配置: jail.local 文件中包含了针对特定服务的预定义 “jails”。最重要的通常是 [sshd],用于保护 SSH 服务。

      找到 [sshd] 段落(或者其他你想要启用的服务的段落,例如 [apache-auth]、[nginx-http-auth] 等)。默认情况下,sshd jail 通常是启用的。

      你可以为特定的 jail 覆盖 [DEFAULT] 中的设置。例如,如果你想为 SSH 设置更长的禁止时间:

      Ini, TOML

      [sshd]
      enabled = true
      port    = ssh  # 或者你的 SSH 端口号,如果不是默认的 22
      # filter  = sshd # 通常不需要修改
      # logpath = /var/log/auth.log # Debian/Ubuntu
      # logpath = /var/log/secure   # CentOS/RHEL (通常 Fail2Ban 会自动检测)
      maxretry = 3
      bantime = 24h
      

      重要提示:

      • 确保 enabled = true 来启用你想要保护的服务对应的 jail。
      • 如果你的 SSH 服务运行在非标准端口,请务必修改 port 的值。
      • logpath 通常会被自动检测,但如果遇到问题,可以手动指定正确的日志文件路径。
  3. 保存并关闭文件。

步骤四:重启 Fail2Ban 服务

在你修改了 jail.local 文件后,需要重启 Fail2Ban 服务以使更改生效。

Related posts

为VPS设置ssh登录

为VPS设置ssh登录

2025年5月27日
如何使用 Cloudflare 手动申请 SSL 证书

如何使用 Cloudflare 手动申请 SSL 证书

2025年5月5日

Bash

sudo systemctl restart fail2ban

步骤五:检查 Fail2Ban 状态和活动

你可以使用 fail2ban-client 命令来检查 Fail2Ban 的状态和被禁止的 IP 地址。

  • 检查 Fail2Ban 服务状态:

    Bash

    sudo systemctl status fail2ban
    

    或者

    Bash

    sudo fail2ban-client status
    
  • 检查特定 jail 的状态 (例如 sshd):

    Bash

    sudo fail2ban-client status sshd
    

    这将显示关于 sshd jail 的信息,包括当前被禁止的 IP 地址列表。

  • 手动禁止 IP (不常用,但可用于测试):

    Bash

    sudo fail2ban-client set sshd banip YOUR_TEST_IP_ADDRESS
    
  • 手动解禁 IP:

    Bash

    sudo fail2ban-client set sshd unbanip BANNED_IP_ADDRESS
    

高级配置和技巧:

  • 创建自定义 Filters: 如果你需要监控标准 jails 未覆盖的应用程序日志,可以创建自定义的 filter 文件 (在 /etc/fail2ban/filter.d/ 目录下) 来定义匹配恶意行为的正则表达式。
  • 创建自定义 Actions: 你可以定义除了封禁 IP 之外的其他动作 (在 /etc/fail2ban/action.d/ 目录下),例如发送更详细的邮件通知或执行特定脚本。
  • 使用 fail2ban-regex 测试 Filter: Fail2Ban 提供了一个 fail2ban-regex 工具,可以让你测试你的日志文件和 filter 规则,以确保它们能够正确匹配。

    Bash

    fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
    
  • 定期检查日志: 定期查看 Fail2Ban 的日志文件 (/var/log/fail2ban.log),以了解其运行情况和检测到的威胁。

总结:

通过以上步骤,你应该已经成功在你的 VPS 上安装并配置了 Fail2Ban。这将显著提高你的服务器安全性,有效抵御来自网络的恶意扫描和暴力破解尝试。记住,安全是一个持续的过程,定期检查和更新你的系统及 Fail2Ban 配置是非常重要的。

POPULAR NEWS

  • VPS 内部安全设置

    VPS 内部安全设置

    192 shares
    Share 77 Tweet 48
  • 如何为 VPS 网站申请 免费的SSL证书

    192 shares
    Share 77 Tweet 48
  • 什么是匿名 VPS

    191 shares
    Share 76 Tweet 48
  • 如何在 VPS 上部署匿名服务

    191 shares
    Share 76 Tweet 48
  • VPS 的网络隐私防护

    191 shares
    Share 76 Tweet 48
vpsssl

We bring you the best Premium WordPress Themes that perfect for news, magazine, personal blog, etc.

Follow us on social media:

Recent News

  • VPS Fail2Ban 安装教程:保护你的服务器免受恶意攻击
  • 为VPS设置ssh登录
  • 如何使用 Cloudflare 手动申请 SSL 证书

Category

  • vps课堂

Recent News

VPS Fail2Ban 安装教程:保护你的服务器免受恶意攻击

VPS Fail2Ban 安装教程:保护你的服务器免受恶意攻击

2025年6月1日
为VPS设置ssh登录

为VPS设置ssh登录

2025年5月27日
  • About
  • Advertise
  • Careers
  • Contact

© 2025 VPSSSL - 专注于匿名、安全、高性能 VPS 的推荐与评测。

No Result
View All Result
  • Home
  • vps课堂
  • vps推荐
  • vps教程
  • 域名注册

© 2025 VPSSSL - 专注于匿名、安全、高性能 VPS 的推荐与评测。

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?