fail2ban 是一款用于保护计算机系统安全的开源软件。它可以监视多种服务和应用程序,检测到潜在的安全威胁,然后自动响应并阻止攻击行为。其中,最常见的用法就是保护 SSH 服务不受暴力破解攻击。

当 fail2ban 监测到某个 IP 地址多次尝试访问受保护的服务失败后,它会自动禁止该 IP 地址的访问,以防止攻击者继续尝试攻击。fail2ban 还可以通过电子邮件、SMS 或其他方式向管理员发送警报,以提醒管理员系统存在潜在的安全威胁。

fail2ban 使用多种技术来检测潜在的攻击行为,其中包括正则表达式、系统日志分析和网络流量分析等。它还支持自定义过滤器和动作,以满足不同的安全需求。

fail2ban 是一款非常流行的安全工具,可以在 Linux、FreeBSD 和其他 Unix-like 系统上运行。它的使用非常灵活和易于配置,因此被广泛应用于各种环境中,特别是需要保护公共服务器、Web 服务器等环境。

我博客服务器开机一星期,登录失败日志都有100M可以说使用fail2ban是非常有必要的了

安装fail2ban

在大多数 Linux 发行版中,你可以使用包管理器来安装 fail2ban。例如,在 Debian 上,你可以使用以下命令安装 fail2ban:

sudo apt update
sudo apt-get install fail2ban

配置fail2ban来保护ssh服务

在安装成功后,你需要编辑 fail2ban 的配置文件来保护 SSH 服务。在 Ubuntu 上,fail2ban 的配置文件为 /etc/fail2ban/jail.conf。你可以打开该文件并找到 [sshd] 部分,然后对该部分进行配置。下面是一个示例配置:

[sshd]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 5

该配置指示 fail2ban 对 SSH 服务进行保护,并且在每个 IP 地址尝试登录超过 5 次后,将禁止该 IP 地址访问 SSH 服务。

查看被封禁的IP

fail2ban-client status sshd

配置fail2ban来保护http/https服务

fail2ban 支持监控 Web 服务器日志,并基于规则对 IP 地址进行自动封锁,以保护网站不受暴力破解、恶意爬虫和其他攻击的影响。

对于 caddy Web 引擎,你可以创建一个 fail2ban 规则,以便 fail2ban 监控 caddy 访问日志并识别恶意访问。具体而言,你可以执行以下操作:

  1. 确定要保护的 URL 路径或访问日志位置:你需要确定希望监视的 URL 路径,或者你希望监视的访问日志的位置。在 Caddy 的配置文件中,访问日志通常位于 access.logcaddy.log 文件中,你可以使用 grep 命令查找恶意 IP 地址。
  2. 创建一个 fail2ban 过滤器:你可以创建一个 fail2ban 过滤器来检测日志文件中的恶意访问。过滤器使用正则表达式来识别可能的攻击行为。你可以创建一个新的过滤器文件(例如 /etc/fail2ban/filter.d/caddy.conf),并在其中添加以下内容:

    [Definition]
    failregex = <HOST> .*HTTP.*"GET \/admin\.php.*$

    这个过滤器将检测是否有来自 IP 地址 <HOST> 的请求访问了 admin.php 页面。

  3. 编辑 fail2ban 配置文件:你需要编辑 fail2ban 的配置文件(例如 /etc/fail2ban/jail.conf),并将以下配置添加到该文件中:

    [caddy]
    enabled  = true
    filter   = caddy
    logpath  = /var/log/caddy/access.log
    maxretry = 5

    这个配置将启用对 Caddy 的监视,并设置 fail2ban 在一个小时内检测到恶意访问 5 次后封锁攻击者的 IP 地址。

  4. 重启 fail2ban 服务:最后,你需要重启 fail2ban 服务以应用配置更改:

    sudo systemctl restart fail2ban

完成上述步骤后,fail2ban 将开始监视你的 caddy Web 服务器日志,并自动禁止潜在的攻击者。请注意,这只是保护你的网站的一种措施,你应该采取其他安全措施来保护你的网站。

最后修改:2024 年 01 月 08 日
如果觉得我的文章对你有用,请随意赞赏