保护 SSH 服务器安全的 10 个技巧
SSH 协议是一种安全的远程登录方法,用于从一台服务器登录到另一台服务器。它提供了多种强身份验证方案,并通过强加密保护通信的安全性和完整性。它是 Telnet 和文件传输协议 FTP 等其他协议的安全替代方案。
找到 SSH 服务器配置文件 -
我们将要讨论的所有更改都将在 SSH 配置文件中完成。该文件位于 /etc/ssh/ssh_config
使用以下方式打开此配置文件:
sudo nano /etc/ssh/ssh_config
1. 使用除 22 之外的其他端口
22 是 SSH 协议使用的默认端口。您不应使用默认端口,因为它很容易被猜测,并且更容易受到暴力攻击。
要更改默认端口,请更改以下行(这里我们使用端口 221 而不是端口 22)。
端口 221
2. 仅使用 SSH 2 协议
早期的 SSH 1 协议存在许多安全漏洞。因此,您应该使用 SSH 2 而不是 SSH 1。默认情况下,SSH 2 应该设置为 2。如果没有,您可以使用
协议 2
3. 禁用直接 root 登录
允许直接 root 登录是最危险的安全漏洞之一。任何服务器都不应允许通过 SSH 直接 root 登录。
要禁用直接 root 登录,请将 PermitRootLogin 更改为 no,从 yes
允许Root登录否
如果你确实需要以 root 身份登录,你可以先添加一个主用户登录,然后你就可以以 root 用户身份登录
添加用户
用户添加 peter 密码 peter
这是一个例子。我强烈建议使用非常强的密码。
以 peter 用户身份登录后,您可以使用以下命令切换到 root 用户
苏
4. 使用公钥代替密码
登录 SSH 服务器有两种方式:使用密码或公钥/私钥。您应该使用公钥来安全登录 SSH 服务器。您可以使用此链接配置免密码 SSH 登录。
确保基于密钥的登录正常工作后,您可以使用以下方式禁用基于密码的登录
密码验证无
5. 启用双因素身份验证
你应该在你的 SSH 服务器上启用双因素身份验证,以增强其安全性。这样,如果有人试图暴力破解你的服务器,双因素身份验证就能阻止他们。
Google 身份验证器是最值得信赖且使用最广泛的身份验证器之一。您可以使用此链接在您的服务器上启用 Google 身份验证。
6. 禁用空密码
您不应允许使用空密码进行远程登录。如果您允许使用空密码登录,您的服务器更容易受到暴力攻击。
禁用空密码登录设置
允许空密码 否
7. 为 ssh 用户/密钥使用强密码和密码短语
大多数服务器遭受攻击都是因为密码强度太弱。他们使用容易被猜到的密码,比如品牌名称,或者一些通用密码,比如 123456 或 qwerty。弱密码更容易被暴力破解。
您应该使用非常强的密码和密码短语来登录您的 SSH 服务器。
8.配置空闲超时间隔
为了避免无人值守的 SSH 会话,您可以设置空闲超时间隔。
客户端存活间隔 360 ClientAliveCountMax 0
您设置的闲置超时间隔以秒为单位(360 秒 = 6 分钟)。间隔结束后,闲置用户将自动注销。
使用 SSH 在远程服务器上执行 PHP 文件
9.禁用端口转发
黑客可以使用端口转发技术通过 SSH 会话隧道网络连接来登录系统。
要禁用端口转发 -
AllowTcpForwarding 否 X11转发否
10. 将 SSH 登录限制到特定 IP 地址
默认情况下,SSH 会接受来自任何外部 IP 地址的连接。如果您想限制 SSH 仅允许来自特定 IP 地址的连接,可以添加 ListenAddress 行。
例如,如果您只想接受来自 IP 地址 192.168.1.2 的 SSH 连接,您可以添加以下行:
监听地址 192.168.7.2
重新启动 SSH 服务器
对 sshd_config 文件进行任何更改后,请不要忘记重新启动 SSH 服务器。
sudo 服务 ssh 重启
参考 -安全 SSH 服务器
结论
通过进行这些更改,您的服务器将比大多数服务器更安全,并且攻击者不容易进入您的服务器。
文章来源:https://dev.to/sunil/top-10-tips-to-secure-ssh-your-server-2jab