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 访问日志并识别恶意访问。具体而言,你可以执行以下操作:
- 确定要保护的 URL 路径或访问日志位置:你需要确定希望监视的 URL 路径,或者你希望监视的访问日志的位置。在 Caddy 的配置文件中,访问日志通常位于
access.log
或caddy.log
文件中,你可以使用grep
命令查找恶意 IP 地址。 创建一个 fail2ban 过滤器:你可以创建一个 fail2ban 过滤器来检测日志文件中的恶意访问。过滤器使用正则表达式来识别可能的攻击行为。你可以创建一个新的过滤器文件(例如
/etc/fail2ban/filter.d/caddy.conf
),并在其中添加以下内容:[Definition] failregex = <HOST> .*HTTP.*"GET \/admin\.php.*$
这个过滤器将检测是否有来自 IP 地址
<HOST>
的请求访问了admin.php
页面。编辑 fail2ban 配置文件:你需要编辑 fail2ban 的配置文件(例如
/etc/fail2ban/jail.conf
),并将以下配置添加到该文件中:[caddy] enabled = true filter = caddy logpath = /var/log/caddy/access.log maxretry = 5
这个配置将启用对 Caddy 的监视,并设置 fail2ban 在一个小时内检测到恶意访问 5 次后封锁攻击者的 IP 地址。
重启 fail2ban 服务:最后,你需要重启 fail2ban 服务以应用配置更改:
sudo systemctl restart fail2ban
完成上述步骤后,fail2ban 将开始监视你的 caddy Web 服务器日志,并自动禁止潜在的攻击者。请注意,这只是保护你的网站的一种措施,你应该采取其他安全措施来保护你的网站。