ubuntu 安装【fail2ban】检测暴力破解

在 Ubuntu 上使用 Fail2Ban 可以有效地增强系统的安全性,自动监控并阻止潜在的恶意 IP 地址,防止暴力破解等攻击。Fail2Ban 会通过监控日志文件,自动检测恶意活动,并根据规则动态更新防火墙规则,阻止攻击者的 IP 地址。

1. 安装 Fail2Ban

首先,你需要安装 Fail2Ban

sudo apt update sudo apt install fail2ban

2. 配置 Fail2Ban

Fail2Ban 的主要配置文件位于 /etc/fail2ban 目录下。主要配置文件是 fail2ban.confjail.conf。为了避免在更新时丢失自定义的配置,通常我们不直接修改 jail.conf,而是创建一个本地配置文件 jail.local 来覆盖默认配置。

2.1 创建本地配置文件

首先,复制一份 jail.confjail.local

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

这样,你就可以在 jail.local 文件中自定义设置,而不会影响到原始的 jail.conf 文件。

2.2 配置 Fail2Ban 的基本选项

打开 jail.local 文件进行编辑:

sudo nano /etc/fail2ban/jail.local

在文件中,你可以调整以下几个常见的基本选项:

  • ignoreip: 该选项指定哪些 IP 地址不应被 Fail2Ban 屏蔽。通常可以设置为你自己的 IP 地址或本地网络地址。

    ignoreip = 127.0.0.1/8 ::1
  • bantime: 被禁止的时间(以秒为单位)。例如,bantime = 3600 表示被禁止 1 小时。

    bantime = 600 # 禁止 10 分钟
  • findtime: 在多长时间内发生了多次失败登录才会触发封禁。例如,findtime = 600 表示如果在 10 分钟内发生了 5 次失败登录,则封禁该 IP。

    findtime = 600 # 10 分钟内
  • maxretry: 允许的最大失败次数。例如,maxretry = 3 表示 3 次失败登录后会触发封禁。

    maxretry = 3
2.3 启用常见服务保护

Fail2Ban 可以保护许多常见的服务,如 SSH、Apache、Nginx 等。配置文件中已经为这些服务提供了预定义的 "jail" 配置。

比如,启用 SSH 防护,确保 sshd 服务的保护是开启的:

[sshd] enabled = true port = ssh logpath = /var/log/auth.log maxretry = 3 bantime = 600

对于其他服务,你可以搜索并启用相关的 jail 配置,或者自己添加自定义的监控规则。

2.4 保护 SSH 服务

默认情况下,Fail2Ban 会监控 SSH 登录尝试(通过 sshd),如果你对 SSH 登录做了很多尝试,它会自动封禁这些 IP 地址。

如果你想对 SSH 设置额外的保护,可以进一步修改 sshd 配置:

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

这样,如果在 10 分钟内 SSH 登录失败超过 5 次,Fail2Ban 会封禁该 IP 地址 10 分钟。

3. 启动并启用 Fail2Ban

完成配置后,启动 Fail2Ban 服务并使其在启动时自动启动:

sudo systemctl start fail2ban sudo systemctl enable fail2ban

4. 查看 Fail2Ban 状态

你可以使用以下命令查看 Fail2Ban 的状态,确认它是否正常运行:

sudo systemctl status fail2ban

你还可以查看某个特定 jail 的状态,例如 SSH 服务的状态:

sudo fail2ban-client status sshd

这将显示有关 SSH 防护的详细信息,包括被禁用的 IP 地址、禁用的时间等。

5. 手动解除封禁

如果某个 IP 地址被误封禁了,你可以使用以下命令手动解除封禁:

sudo fail2ban-client set sshd unbanip <IP_ADDRESS>

替换 <IP_ADDRESS> 为你想要解封的 IP 地址。

6. 自定义 Fail2Ban 过滤器

Fail2Ban 使用 "filter" 来分析日志文件,匹配潜在的恶意活动。如果现有的过滤器不适合你的需求,你可以创建自定义的过滤器。

  1. 过滤器配置文件位于 /etc/fail2ban/filter.d/ 目录下。你可以创建一个新的配置文件,定义新的过滤规则。
  2. 在 jail.local 文件中配置新的 jail,引用你自定义的过滤器。

7. 其他常见服务的保护

Fail2Ban 支持保护很多服务,以下是一些常见的服务和对应的 jail.local 配置:

  • Apache

    [apache-auth] enabled = true port = http,https logpath = /var/log/apache*/*error_log maxretry = 3 bantime = 600
  • Nginx

    [nginx-http-auth] enabled = true port = http,https logpath = /var/log/nginx/*error.log maxretry = 3 bantime = 600
  • Postfix (邮件服务)

    [postfix] enabled = true port = smtp,ssmtp logpath = /var/log/mail.log maxretry = 3 bantime = 600

8. 配置 Fail2Ban 邮件通知(可选)

如果你希望在有人被封禁时收到电子邮件通知,可以在 jail.local 中添加邮件通知配置。例如:

[DEFAULT] mta = sendmail destemail = your-email@example.com sender = fail2ban@example.com action = %(action_mwl)s

这会在有 IP 地址被封禁时,发送邮件通知给你。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值