帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  如何在Linux上用Fail2Ban保护服务器端免遭暴力攻击

如何在Linux上用Fail2Ban保护服务器端免遭暴力攻击

2020-09-21 13:33:49 10694

Linux 管理员的一个重要任务是保护服务器免受非法攻击或访问。 默认情况下,Linux 系统带有配置良好的防火墙,比如iptables、Uncomplicated Firewall(UFW),ConfigServer Security Firewall(CSF)等,可以防止多种攻击。

任何连接到互联网的机器都是恶意攻击的潜在目标。 有一个名为 Fail2Ban 的工具可用来缓解服务器上的非法访问。


什么是 Fail2Ban?

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 能够降低错误认证尝试的速度,但是它不能消除弱认证带来的风险。 这只是服务器防止暴力攻击的安全手段之一。


如何在 Linux 中安装 Fail2Ban

Fail2Ban 已经与大部分 Linux 发行版打包在一起了,所以只需使用你的发行包版的包管理器来安装它。

对于 Debian / Ubuntu,使用 APT-GET 命令或 APT 命令安装。

1.jpg


对于 Fedora,使用 DNF 命令安装。

2.jpg


对于 CentOS/RHEL,启用 EPEL 库或 RPMForge 库,使用 YUM 命令安装。

3.jpg


如何配置 Fail2Ban

默认情况下,Fail2Ban 将所有配置文件保存在 /etc/fail2ban/ 目录中。 主配置文件是 jail.conf,它包含一组预定义的过滤器。 所以,不要编辑该文件,这是不可取的,因为只要有新的更新,配置就会重置为默认值。

只需在同一目录下创建一个名为 jail.local 的新配置文件,并根据您的意愿进行修改。

默认情况下,大多数选项都已经配置的很完美了,如果要启用对任何特定 IP 的访问,则可以将 IP 地址添加到 ignoreip 区域,对于多个 IP 的情况,用空格隔开 IP 地址。

 4.jpg

配置文件中的 DEFAULT 部分包含 Fail2Ban 遵循的基本规则集,您可以根据自己的意愿调整任何参数。

 5.jpg

· ignoreip:本部分允许我们列出 IP 地址列表,Fail2Ban 不会禁止与列表中的地址匹配的主机

· bantime:主机被禁止的秒数

· findtime:如果在最近 findtime 秒期间已经发生了 maxretry 次重试,则主机会被禁止

· maxretry:是主机被禁止之前的失败次数

· destemail:是拒绝IP地址后发送邮件通知的收件地址


如何配置服务

Fail2Ban 带有一组预定义的过滤器,用于各种服务,如 ssh、apache、nginx、squid、named、mysql、nagios 等。 我们不希望对配置文件进行任何更改,只需在服务区域中添加 enabled = true 这一行就可以启用任何服务。 禁用服务时将 true 改为 false 即可。

6.jpg

· enabled: 确定服务是打开还是关闭。

· port:指明特定的服务。 如果使用默认端口,则服务名称可以放在这里。 如果使用非传统端口,则应该是端口号。

· logpath:提供服务日志的位置

· backend:指定用于获取文件修改的后端。


重启 Fail2Ban

进行更改后,重新启动 Fail2Ban 才能生效。

7.jpg

验证 Fail2Ban iptables 规则

你可以使用下面的命令来确认是否在防火墙中成功添加了Fail2Ban iptables 规则。

8.jpg

要查看启用的程序列表,请运行以下命令。

9.jpg

通过运行以下命令来获取禁止的 IP 地址。

10.jpg

要从 Fail2Ban 中删除禁止的 IP 地址,请运行以下命令。

11.jpg

 



提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: