Fail2Ban加固SSH

Sakura 发布于 2024-07-10 748 次阅读


AI 摘要

看起来您没有提供正文内容。如果您有一些内容或文章需要我帮忙总结或解释,请随时告诉我!

介绍

Fail2Ban 是一款入侵防御软件,可以保护服务器免受暴力攻击。 它是用 Python 编程语言编写的。

Fail2Ban 基于auth 日志文件工作,默认情况下它会扫描所有 auth 日志文件,如 /var/log/auth.log、 /var/log/apache/access.log 等,并禁止带有恶意标志的IP,比如密码失败太多,寻找漏洞等等标志。

通常,Fail2Ban 用于更新防火墙规则,用于在指定的时间内拒绝 IP 地址。 它也会发送邮件通知。

Fail2Ban 为各种服务提供了许多过滤器,如 ssh、apache、nginx、squid、named、mysql、nagios 等。

Fail2Ban 能够降低错误认证尝试的速度,但是它不能消除弱认证带来的风险。

这只是服务器防止暴力攻击的安全手段之一。

安装Fail2Ban

dnf install -y epel-release

dnf install -y fail2ban

systemctl start fail2ban

systemctl enable fail2ban

加固SSH

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

vim /etc/fail2ban/jail.local

[sshd]

enabled = true
port    = ssh
backend = systemd
maxretry = 3
findtime = 300
bantime = 3600
ignoreip = 127.0.0.1

# enabled  – 是否启用该规则
# port     – 要监听的端口。例如:ssh的22端口
# backend  –  指定用于获取文件修改的后端。由于所有现代 Linux 系统都依赖于 systemd 的日志服务,因此我们将其指定为后端。
# maxretry – 某个 IP 在被禁止之前尝试失败的次数。
# findtime – “maxretry”登录失败将导致禁止的时间范围(以秒为单位)。我们指定了 300 秒,即 5 分钟。
# bantime  – IP 应保持禁止状态的持续时间(以秒为单位)。在我们的例子中,我们设置了 3600 秒,这意味着在接下来的一小时内,来自该 IP 地址的任何后续请求(不仅仅是到 SSH 端口)都将被阻止。
# ignoreip – 忽略的IP地址白名单。可确保给定的IP地址,即使超过“maxretry”中指定的失败尝试次数,也不会被阻止。

systemctl restart fail2ban
fail2ban-client status sshd
fail2ban-client status