2024-02-23 13:19

在Linux服务器或桌面上保护SSH的5个技巧

几十年来,我一直在使用安全Shell (SSH)。有了这个远程登录工具,我可以放心,我的远程机器可以安全有效地接受登录。与此同时,我也明白,在任何连接到网络的设备上,没有什么是100%安全的,这就是为什么我总是花时间在我使用的每台计算机上更好地保护SSH。

您可能会惊讶地发现,添加一些额外的安全“层”是多么容易。正如我在下面强调的那样,有一些易于应用的技巧可以帮助您的Linux桌面和服务器机器更加安全,因此您可以相信它们可以更好地防止不必要的登录。

我们开始工作吧。

1. 安装fail2ban

首先应该做的事情之一(特别是在服务器上)是安装fail2ban,它可以防止恶意和暴力登录攻击,还可以用于监视其他网络协议(如HTTP、SSH和FTP)。

使用fail2ban,您将创建jail,它是一种配置,用于告诉系统在发生某些事情(例如SSH登录尝试失败)时应该做什么。Jail文件(通常命名为Jail .local)位于/etc/fail2ban/中,看起来可能像这样:

[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 findtime = 300 bantime = 28800 ignoreip = 127.0.0.1

您可以在基于debian的系统上安装fail2ban,使用以下命令:

安装fail2ban -y

在基于fedora的系统中,该命令将是:

安装fail2ban -y

2. 更改默认端口

缺省情况下,SSH使用22端口连接。这种联系是众所周知的,可能会导致麻烦。在更重要的系统上,我总是将端口更改为其他东西,比如2124。将端口更改为未被其他系统使用的端口是很重要的。

端口配置在/etc/ssh/sshd_config文件中# port 22行中设置。

确保删除#字符,并将22更改为您想要使用的端口。完成更改后,请记住使用以下命令重新启动SSH:

命令行systemctl restart SSH

在基于fedora的系统中,该命令将是:

执行命令systemctl restart SSHD

3. 阻止使用空密码的用户

虽然您的系统上可能没有使用空密码的用户,但这个技巧属于“安全总比后悔好”的范畴。如果用户的密码是空的,而不法分子发现了这个密码,他们就可以轻松地访问您的机器。为了防止这种情况,打开/etc/ssh/sshd_config文件并查找以下行:

# PermitEmptyPasswords没有

将这一行改为:

PermitEmptyPasswords没有

保存并关闭该文件,然后重新启动SSH。

4. 限制登录到特定IP地址

另一个非常方便的技巧是限制SSH对特定IP地址的访问。例如,如果只有一个人需要访问一台机器,并且他们的IP地址是192.168.1.11,那么可以使用/etc/hosts. conf文件来限制SSH访问允许文件。用你喜欢的文本编辑器打开这个文件,比如nano,然后在底部添加以下一行:

Sshd: 192.168.1.62, 192.168.1.11

如果你想要允许多个IP地址进入,你可以根据需要添加尽可能多的IP地址,用逗号分隔每个地址,如下所示:

Sshd: 192.168.1.62, 192.168.1.11, 192.168.1.12, 192.168.1.13, 192.168.1.14

保存并关闭该文件。

5. 使用SSH密钥认证

SSH密钥认证的重要性怎么强调都不为过。我已经在另一篇文章中展示了如何设置这种技术,所以请务必通读那篇文章并执行该策略。结合fail2ban, SSH密钥验证是防止不需要的SSH登录的好方法。

这就是在Linux桌面和服务器上保护SSH的五种简单方法。仅仅因为SSH包含“安全”这个词,并不意味着它应该被视为达到安全目的的一种手段。通过一些额外的配置,您的SSH登录将得到更好的保护,免受那些在互联网上漫游寻找系统访问权限的不良行为者的攻击。

相关推荐