17611538698
webmaster@21cto.com

SSH 登录安全的 5 个最佳实践

作者 场长 分类 管理/领导力 02月08日

图片


最近,某服务商总是提示我服务器被攻破,被惊得我不断的寻找解决方案。于是有了本文。


在本文中,将一起探讨用户应该遵守的五种 SSH 最佳实践,以提高你的Linux 服务器最基础的安全性。


1.采用双重认证


在双因素身份验证中,系统需要两种不同形式的身份验证才能获得访问权限。


最常见的示例之一是将用户密码发送到其手机,产生一次性密码。虽然发送到移动设备的一次性密码也会受到中间人 (MITM) 攻击,但使用任何双重认证总比没有只有一重认证要好。


安全的双重认证因素,比如包括 USBKey 和 TouchID。


通过启用第二重身份验证功能,系统管理员可以确保任何通过 SSH 登录远程系统的用户须使用多个凭据进行身份验证,这种身份验证比单独使用密码或 SSH 密钥更安全。


2.更改默认选项


SSH 默认选项通过/etc/ssh/sshd_config文件控制。默认选项是大多数计算环境中的标配,需要更改一些设置以保护自己的系统。


更改默认端口


默认情况下,SSH 服务器在端口 22 上运行。但是,通过默认端口进行探测通常是攻击者在寻找开放的 SSH 服务器端口时采取的第一步,修改到非标准端口,就可以限制端口扫描程序访问我们的服务器。


比如将端口修改为:

Port 7001


图片


禁用 root 登录


默认情况下,用户可以以 root 身份使用 SSH 到服务器。使用root 帐户或超级用户帐户进行SSH登录是一个非常危险的行为,因为它允许完全访问和控制整个系统。


修改/etc/ssh/sshd_config中的参数:


PermitRootLogin no

保存后,使用如下命令:

/etc/init.d/sshd reload

或者:

/etc/init.d/sshd restart

以上命令重新启动SSHD。


通过在服务器上禁用 root SSH登录,我们可以控制每个用户可以访问的内容,更易于跟踪和审核个人登录的历史。


禁用基于密码的身份验证


我们还可以更改默认的基于密码的身份验证。尽管这种类型的身份验证对用户来说可能很方便,但密码被盗是最常见的安全漏洞。替换密码的最佳和推荐解决方案是使用安全证书。


使用“ AllowUsers”限制访问


默认情况下,所有系统用户都可以使用密码或公钥通过 SSH 登录。但是,并不所有系统用户都需要通过 SSH 远程登录,限制特定用户 SSH 访问,可以最大化增强安全性。


3. 使用 SSH 证书对客户端进行身份验证


基于 SSH 密钥的身份验证是密码的更好替代方案,可以增强远程登录过程的安全性,但它有其自身的潜在风险。例如,用户必须将私钥存储在他们的设备上,但要防止小偷窃取便携式设备。SSH 密钥实际上只是另一个名称的密码,因为它们是可以从客户端复制并“按原样”传递到网络上的服务以进行身份验证的文本。


基于 SSH 证书的身份验证是一个好选择。SSH 证书通过使用公钥来保护登录过程,同时还提供证书来验证每个密钥的身份。这些证书越来越受欢迎。通过使用这种身份验证方法,用户无需密码,而是使用x.509证书身份验证来访问远程系统。


这种做法提供了一种安全且可扩展的方法来验证任何计算环境。


4.使用堡垒机


堡垒机是专门设计用于阻止来自网络恶意流量和攻击的计算机。堡垒机暴露在公网上,其托管单个应用程序,限制其他服务以减少对自身的威胁。


堡垒主机高度暴露于公众,它通常是网络中的第一个点,就在防火墙之前,保护其背后的系统。


当两个通道建立 SSH 连接时,设置堡垒机有助于提高安全性并保护系统。


5. 防火墙


防火墙的主要工作是使用预定义的规则检查传入和传出的流量。根据计算需求,防火墙还可以检查专用网络内的流量,可显著提高服务器的安全性。


Linux 系统管理员可以使用 iptables,即 netfilter 防火墙的界面。该包过滤系统接受或拒绝包(或采取其他措施)以保护系统免受攻击。


使用 iptables,可以定义通过 IP 地址、端口或协议接受来自安全列表源的传入 SSH 流量规则。还可以跟踪最近的 SSH 端口连接。


还可以使用连接速率限制,根据连接到 SSH 的速率来阻止某个 IP 地址。

使用防火墙,合理调整其配置有助于减少 SSH 攻击的机会。


结论


上面介绍并不是强制和确定的内容,具体还是取决于组织和合规性要求。


同样提醒注意的,遵循最佳实践并正确实施这此实践是具有一定挑战性的。例如,为 SSH 实施双重身份验证和基于证书的身份验证至少需要两种不同的解决方案。你可能需要为堡垒机维护专用服务器,实施和维护这些产品都会给小型团队带来一定的复杂性。


作者:洛逸


评论