帮助中心

立即注册 咨询客服

当前位置:首页 > 帮助中心> 10个SSH强化技巧操作,保护你的Linux服务器安全

10个SSH强化技巧操作,保护你的Linux服务器安全

发布时间:2020年06月09日 09:23:52    来源: A5互联

在这篇文章中,我将分享一些实用的方法来提高SSH的安全性,从而保证你的Linux服务器的安全。不要误会我的意思,SSH(Secure Shell)在设计上是一个相当安全的协议,但这并不意味着你应该使用默认的配置。

当然,不要盲目地去遵循这里提到的所有SSH强化技巧。阅读所有的技巧,然后看看哪些适合你的需求。同时要记住,有些技巧可能与其他技巧不兼容。

例如,如果你禁用了基于密码的SSH登录,就没有必要去使用Fail2Ban那种解决方案。

如果你了解SSH的基本知识,你就会知道SSH配置文件位于/etc/ssh/sshd_config。

这里提到的大多数SSH加固技巧都需要你编辑这个配置文件。这就是为什么备份原始文件会是一个好主意。如果你对SSH配置文件做了任何修改,你还需要重新启动SSH服务。

让我们看看你可以采取哪些步骤来保护你的SSH服务器。

1. 禁用空密码

在Linux中可以拥有不需要任何密码的用户账户,如果这些用户尝试使用SSH,他们也不需要密码就可以通过SSH访问服务器。如果这些用户尝试使用SSH,他们不需要密码也可以通过SSH访问服务器。

这是一个安全风险。你应该禁止使用空密码。在/etc/ssh/sshd_config文件中,确保将PermitEmptyPasswords选项设置为no。

PermitEmptyPasswords no

2. 更改默认的SSH端口

默认的SSH端口是22,大部分的攻击脚本检查都是围绕这个端口编写的。改变默认的SSH端口可以在一定程度上提高安全性,因为攻击的数量(来到22端口)可能会减少。

在配置文件中搜索端口信息,并将其改为不同的端口。

Port 2345

3. 通过SSH禁止root登录

说实话,服务器使用root帐号登录,本身就应该被禁止。它的风险比较大,而且不会留下审计日志。

如果你的系统中添加了sudo用户,你应该使用该sudo用户通过SSH访问服务器,而不是root。

你可以通过修改PermitRootLogin选项并将其设置为no来禁止root登录。

PermitRootLogin no

4. 禁用ssh协议1

如果你使用的是较旧的Linux发行版,那么就会出现这种情况。一些旧的SSH版本可能仍有SSH协议1可用。这个协议有已知的漏洞,一定不要使用。

新的SSH版本会自动启用SSH协议2,但仔细检查一下也无妨。

Protocol 2

5. 配置空闲超时时间间隔

空闲超时间隔是指一个SSH连接在没有任何活动的情况下可以保持活跃的时间。这种空闲会话也是一种安全风险。最好是配置闲置超时间隔。

超时间隔以秒为单位,默认为0,你可以将其改为300,以保持5分钟的超时间隔。

ClientAliveInterval 300

在这个时间间隔之后,SSH服务器将向客户端发送一条活着的消息。如果它没有得到响应,连接将被关闭,终端用户将被注销。

你也可以控制它在断开连接前发送活着消息的次数。

ClientAliveCountMax 2

6. 只允许SSH访问选定的用户

在安全问题上,你应该遵循最小特权原则。在不需要的时候,不要给予权利。

你的Linux系统上可能有几个用户。你需要允许他们所有人都有SSH访问权吗?也许不需要。

这里的一个方法是允许SSH访问选定的几个用户,从而对所有其他用户进行限制。

AllowUsers User1 User2

你也可以将选定的用户添加到一个新的组,并且只允许这个组访问SSH。

AllowGroups ssh_group

你也可以使用DenyUsers和DenyGroups来拒绝某些用户和组的SSH访问。

7. 禁用X11转发

X11或X显示服务器是图形环境的基本框架。X11转发允许你通过SSH使用GUI应用程序。

基本上,客户端在服务器上运行GUI应用程序,但由于X11转发,机器之间打开了一个通道,GUI应用程序显示在客户端机器上。

X11协议不是面向安全的。如果你不需要它,你应该在SSH中禁用X11转发。

X11Forwarding no

8. 自动缓解暴力攻击

为了缓解SSH暴力攻击,你可以使用Fail2Ban这样的安全工具。

Fail2Ban会检查来自不同IP地址的失败登录尝试。如果这些不好的尝试在设定的时间间隔内越过了一个阈值,它就会在一定时间内禁止该IP访问SSH。

你可以根据自己的喜好和要求来配置所有这些参数。

9. 禁用基于密码的SSH登录

无论你如何尝试,你总会在Linux服务器上看到通过SSH的不良登录尝试。攻击者很聪明,他们使用的脚本往往会照顾到Fail2Ban等工具的默认设置。

为了摆脱不断的蛮力攻击,你可以选择只使用基于密钥的SSH登录。

在这种方法中,你将远程客户端系统的公钥添加到SSH服务器的已知密钥列表中。这样,这些客户端机器就可以在不输入用户账号密码的情况下访问SSH。

当你有了这种设置后,你就可以禁用基于密码的SSH登录。现在,只有拥有指定SSH密钥的客户机才能通过SSH访问服务器。

在你采用这种方法之前,请确保你已经将自己的公钥添加到服务器上,并且可以使用。否则,你会把自己锁在外面,可能会失去对远程服务器的访问权,特别是如果你使用的是像Linode这样的云服务器,在那里你没有物理访问服务器。

10. 使用SSH的双因素认证

要将SSH的安全性提升到一个新的水平,你还可以启用双因素认证。在这种方法中,您会在手机、电子邮件或通过第三方unthentication应用程序收到一个一次性密码。

总结

你可以使用这个命令查看SSH服务器的所有参数。

sshd -T

这样,你可以很容易地看到是否需要改变任何参数来增强SSH服务器的安全性。你还应该保持SSH安装和系统的更新。