概述
在这篇文章中,我将分享一些实用的方法来提高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安装和系统的更新。
最后
以上就是体贴悟空为你收集整理的Linux安全增强技术,10个SSH强化技巧操作,保护你的Linux服务器安全的全部内容,希望文章能够帮你解决Linux安全增强技术,10个SSH强化技巧操作,保护你的Linux服务器安全所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复