Fail2ban 是一种用于提高服务器安全性免受网络攻击的工具。 它允许您根据定义的设置临时或永久阻止远程 IP 地址。 它可以帮助您保护您的服务器和数据免受攻击者的侵害。
本教程帮助您在 Ubuntu 20.04 LTS Linux 系统上安装 Fail2ban。 还为您提供使用 fail2ban 保护 SSL 的初始配置。
先决条件
您必须具有对 Ubuntu 20.04 系统的 shell 访问权限 sudo 特权帐户。
第 1 步 – 安装 Fail2ban
Fail2ban Debian 软件包在默认 apt 存储库下可用。 您只需要更新 Apt 缓存并在您的系统上安装 fail2ban debian 包。
打开终端并输入:
sudo apt update
sudo apt install fail2ban -y
安装成功后,确保服务已启动。
sudo systemctl status fail2ban
确保服务处于活动状态并正在运行。
步骤 2 – 初始 Fail2ban 配置
Fail2ban 将配置文件保存在 /etc/fail2ban 目录。 jail.conf 文件包含可用于创建新配置的基本配置。 Fail2ban 使用单独的 jail.local
文件作为配置以避免在软件包更新期间更新 jail.conf。
所以创建一个名称为配置文件的副本 jail.local
:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
下一个编辑 jail.local
文本编辑器中的配置文件。
sudo vim /etc/fail2ban/jail.local
更新下的初始设置 [DEFAULT]
部分。
- 忽略ip—— 被 Fail2ban 禁止的 IP 地址列表。
贝壳
[DEFAULT]忽略 IP = 127.0.0.1/8 192.168.1.0/24123[DEFAULT] 忽略ip = 127.0.0.1/8 192.168.1.0/24
- 班时间—— 是主机被禁止的秒数。
贝壳
禁止时间 = 60m1班时间 = 60米 - 查找时间 – 如果主机在最后的“findtime”秒内生成了“maxretry”,则该主机被禁止。
贝壳
查找时间 = 5m1找时间 = 5米 - 最大重试 – 是主机被禁止之前的失败次数。
贝壳
最大重试 = 51最大重试次数 = 5
在下一节中,您可以保护系统服务以
第 3 步 – 保护 SSH/SFTP
完成默认配置后,在同一个文件 jail.local 中向下并更新 [ssh-iptables] 部分如下。
[ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=22, protocol=tcp] sendmail-whois[name=SSH, dest=root, [email protected], sendername="Fail2Ban"] logpath = /var/log/secure maxretry = 3
步骤 4 – 保护 FTP
让我们保护您的 FTP (vsFTPd) 服务器,找到以下条目 [vsftpd-iptables] 部分并进行如下更改。 如果您没有使用 vsFTPd,则可以跳过本节。
[vsftpd-iptables] enabled = true filter = vsftpd action = iptables[name=VSFTPD, port=21, protocol=tcp] sendmail-whois[name=VSFTPD, [email protected]] logpath = /var/log/vsftpd.log maxretry = 5 bantime = 1800
步骤 5 – 管理 Fail2ban 服务
完成所有更改后,保存文件并使用以下命令重新启动 Fail2ban 服务。
sudo systemctl restart fail2ban.service
sudo systemctl enable fail2ban.service
出于测试目的,我尝试使用来自另一台机器的错误凭据进行 SSH。 在三次错误尝试后,Fail2ban 通过带有拒绝 ICMP 的 iptables 阻止了该 IP。 屏蔽IP地址后,您可以在iptables中看到规则,如下所示。 对于仅限 SSH 的系统,在进行这些测试之前,请确保从另一个 IP 获得 SSH 访问。
结论
本教程帮助您在 Ubuntu 20.04 LTS 系统上安装和配置 Fail2ban。 此外,还为您提供了配置详细信息以保护特定服务,如 SSH、SFTP 和 FTP。