如何使用Fail2Ban保护SSH服务:详细教程

配置Jail规则Jail规则是指针对不同服务或应用程序设置封禁策略和时间限制等参数。指定SSH服务监听的端口号:因此我们可以将SSH服务监听端口修改为其他未被占用的随机端口号。

在网络安全领域,SSH是一种常用的远程管理协议。然而,由于其开放的端口和易受暴力破解攻击的特性,使得SSH服务成为黑客攻击的重点目标之一。为了保障我们服务器的安全性,我们需要采取措施来防御这些攻击。

本文将介绍如何通过Fail2Ban工具来保护SSH服务免受暴力破解攻击。Fail2Ban是一个基于Python语言开发的防火墙软件,在系统日志中监视指定事件,并根据预定义规则自动封禁源IP地址。

Step 1: 安装Fail2Ban

在Ubuntu系统上,可以通过以下命令安装:

“`

sudo apt-get update

sudo apt-get install fail2ban

成功安装后,在/etc/fail2ban/目录下会生成两个主要配置文件:jail.conf和fail2ban.conf。

Step 2: 配置Jail规则

Jail规则是指针对不同服务或应用程序设置封禁策略和时间限制等参数。在本例中,我们需要修改jail.conf文件以适应我们对SSH服务进行保护。

首先备份默认配置文件:

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

然后编辑jail.local文件,找到[sshd]规则段,修改以下参数:

[sshd]

enabled = true

port = ssh

filter = sshd

logpath = /var/log/auth.log

maxretry = 3

bantime = 600

ignoreip = 127.0.0.1/8 ::1 # 不封禁本机IP地址和IPv6地址

# 配置邮件通知(可选)

destemail = youremail@example.com

sendername=Fail2Ban

mta=sendmail

# 配置Slack通知(可选)

[slack]

enabled=true

token=xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxx # Slack Bot Token

channel=#fail2ban # 发送到的Slack频道名称或ID,需加上#

username=Fail2Ban # 发送者名称,建议与sendername保持一致

以上参数的含义如下:

– enabled:启用该规则。

如何使用Fail2Ban保护SSH服务:详细教程

– port:指定SSH服务监听的端口号,默认为22。

– filter:指定过滤器规则所在路径,默认为/etc/fail2ban/filter.d/sshd.conf。

– logpath:指定系统日志文件路径,默认为/var/log/auth.log。

– maxretry:设置最大尝试次数。如果某个IP在maxretry次登录失败后仍未通过认证,则会被封禁。

– bantime:设置封禁时间(单位秒)。默认值为600秒即10分钟。在这段时间内该IP将无法访问SSH服务。

– ignoreip:设置忽略的IP地址列表,这些IP不会被封禁。

– destemail:指定邮件通知的接收邮箱地址。

– sendername:指定邮件发送者名称,建议与Slack发送者名称一致。

– mta:指定使用的邮件传输代理,可选值为sendmail、exim、postfix等。如果省略则默认使用sendmail。

– slack:启用Slack通知功能,并配置Slack Bot Token、频道名称或ID以及发送者名称。

Step 3: 配置SSH

在Fail2Ban工作正常之前,我们需要对SSH服务进行一些配置。具体操作如下:

1. 修改SSH监听端口

由于大多数黑客攻击都是针对默认22端口进行的,因此我们可以将SSH服务监听端口修改为其他未被占用的随机端口号。例如:

sudo nano /etc/ssh/sshd_config

找到以下行并修改:

#Port 22

Port 12345 # 将22替换为一个未被占用的随机端口号

保存并退出文件后重启SSH服务:

sudo service ssh restart

2. 禁止root用户登录

为了增加黑客攻击难度和风险,我们可以禁止root用户直接通过SSH登录系统。具体操作如下:

打开/etc/ssh/sshd_config文件,在其中添加以下行:

PermitRootLogin no # 禁止root用户登录

Step 4: 启动Fail2Ban服务

在完成以上配置后,我们需要启动Fail2Ban服务以生效。具体操作如下:

sudo systemctl start fail2ban

sudo systemctl enable fail2ban # 设置开机自启动

此时,Fail2Ban将开始监控系统日志中的SSH登录事件,并根据我们设置的规则进行封禁处理。可以通过以下命令查看当前封禁IP列表:

sudo fail2ban-client status sshd

“`

通过以上步骤,我们成功地使用了Fail2Ban工具来保护SSH服务免受暴力破解攻击。除了SSH之外,Fail2Ban还可以应用于其他网络服务和应用程序的安全防护中。

虽然没有绝对安全的系统和软件,但只要我们采取足够的措施并保持警惕性,就能有效地提高服务器安全性。