第6篇:Linux网络安全: fail2ban+firewalld

如果您正在使用基于密码的身份验证来通过SSH访问连接到公共Internet的服务器,那么这看起来太熟悉了。

将暴力尝试实际奏效的可能性降至最低的一种方法是利用Fail2ban。Fail2ban可以配置为监视各种系统日志,并使用本地防火墙规则响应失败的登录尝试。在本教程中,我们将简要介绍如何安装和配置Fail2ban以防止SSH连接尝试。

安装fail2ban

为了使用yum轻松安装ail2ban包,我们需要访问Epel存储库。通过运行sudo yum install epel-release将其添加到您的系统中.

sudo yum install epel-release
sudo yum update
sudo yum install fail2ban-firewalld

现在fail2ban已经成功安装

配置fail2ban

安装后,下一步就是配置监狱(您要以设置的任何阈值监视和禁止的服务)。 默认情况下,IP被禁止1小时(时间不够长)。 最佳做法是使用* .local文件覆盖系统默认值,而不是直接修改* .config文件。 如果我们看我的jail.local,

ss8.png

我们将其转换为通俗易懂的语言,在最后10分钟内尝试5次后,IP将被阻止10分钟。 卧槽,默认配置简直弱爆了可以适当将封禁时间拉长还可以选择增加被多次禁止的IP的禁止时间,但这是另一篇文章的主题。

下一步是配置监狱。 在本教程中,显示了sshd,但其他服务的步骤大致相同。 在/etc/fail2ban/jail.d中创建一个配置文件sshd.local。 这是我的:

[sshd]
enable=true

就这么简单! 为Fedora构建的软件包已经处理了许多配置, 接下来启用并启动fail2ban服务。

sudo systemctl restart fail2ban
sudo systemctl status fail2ban

一切正常的话,如下图所示,fail2ban守护进程是正常启动的

如果是最近启动的,fail2ban不太可能显示任何有趣的事情,但要检查一下fail2ban的状态并确保启用了监狱功能,请输入:

ss8.png

可以通过对日志进行“tail命令”来监视fail2ban日志文件中的入侵尝试:

ss8.png

另外在安装fail2ban-firewalld后,会在/etc/fail2ban/jail.d目录下默认配置了一个辅助firewalld守护进程的配置文件,fail2ban-firewalld可以通过通过fail2ban绑定的其他网络服务ban掉IP记录,自动在后台的drop区域创建rich规则,换句话说fail2ban-firewalld可以最大限定地实现自动化防御。

当服务器运行一段时间后,查看一下firewalld的drop区域,

对于公开在互联网上的主机,我们不能掉以轻心,如果向更进一步的话,我们可以基于具体的IP地址,汇聚成一个范围较大子网,然后对这些子网的黑名单集中永久封禁,那么可以进一步降低服务器因为防火墙防御策略条目所占用的额外内存。