CentOS 7安装使用Fail2Ban保护SSH

6,050次阅读
没有评论

CentOS 7 安装使用 Fail2Ban 保护 SSH

大多数 Linux 服务器通过端口 22 提供 SSH 登录,用于远程管理。这个端口是一个众所周知的端口,所以经常受到暴力袭击。Fail2ban 的服务可以通过创建规则来缓解这个问题,这些规则会根据预定义次数的不成功登录尝试自动更改您的 iptables 防火墙配置。这将允许您的服务器响应非法访问尝试,而无需您的干预。

Fail2ban 可以根据登录失败次数,自动在防火墙的 iptables 添加一条规则,防止恶意登录。下面,我们将介绍如何在 CentOS 7 服务器上安装和使用 Fail2ban。

安装 Fail2ban

Fail2ban 不在官方软件包仓库中,它在 EPEL 中(Extra Packages for Enterprise Linux)。
安装 epel-release:

sudo yum install epel-release

安装 Fail2ban:

sudo yum install fail2ban

安装完成之后,启用 Fail2ban:

sudo systemctl enable fail2ban

配置 Fail2ban

Fail2ban 服务的配置文件在 /etc/fail2ban 目录。在其中可以找到 jail.conf 配置文件,我不会直接编辑这个文件,因为在升级软件包时,会覆盖这个文件,使配置失效。我们应该创建一个新文件 jail.local,在jail.local 定义的值会覆盖 jail.conf 中的值。

我们来创建一个 jail.local 文件:

vim /etc/fail2ban/jail.local

写入如下代码:

[DEFAULT]
# 禁止一个 IP 一小时
bantime = 3600
 
# 覆写 /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport
 
[sshd]
enabled = true

上面覆写了三个配置,bantime,使用 iptables,开启 sshd。

配置完成之后,重启 fail2ban:

sudo systemctl restart fail2ban

查询 fail2ban 服务状态:

sudo fail2ban-client status

CentOS 7 安装使用 Fail2Ban 保护 SSH

查询某个 jail 的详细信息:

fail2ban-client status sshd

CentOS 7 安装使用 Fail2Ban 保护 SSH
探索其他设置
上面定义的 jail.local 是最初始的配置,还有很多其他配置选项。打开 jail.conf 文件,看看更多选项。

实用命令
最近一次启动,fail2ban 日志:

journalctl -b -u fail2ban

实时跟踪显示 fail2ban 日志(按 Ctrl- C 退出):

tail -F /var/log/fail2ban.log

显示防火墙规则:

iptables -L

显示防火墙规则对应的命令:

iptables -S

fail2ban 从黑名单(ban list)中移除 IP 的方法:

fail2ban-client set sshd unbanip 1.1.1.1

此时再查看 banlist 会发现 IP 已移除。

fail2ban-client status sshd

跟踪失败的登录条目:
以下命令用于检查是否通过 ssh 端口尝试登录服务器失败。

cat /var/log/secure | grep 'Failed password'

执行上述命令将得到来自不同 IP 地址的根密码尝试失败的列表。结果的格式与下面所示的相似:

Fer 8 12:41:12 htf sshd[5487]: Failed password for root from 1.1.1.1 port 23021 ssh2
Fer 8 12:41:15 htf sshd[1254]: Failed password for root from 1.1.1.1 port 15486 ssh2
Fer 8 12:41:16 htf sshd[1254]: Failed password for root from 1.1.1.1 port 24457 ssh2
Fer 8 12:41:18 htf sshd[1254]: Failed password for root from 1.1.1.1 port 24457 ssh2

通过 Fail2Ban 检查被禁止的 IP:

iptables -L -n

 
VPSWe
版权声明:本站原创文章,由 VPSWe 2018-08-11发表,共计1657字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)