< 返回

在 Linux 上保护 SSH 服务器连接有哪些方法?

2023-09-13 15:57 作者:财务部 阅读量:161

SSH(Secure Shell)是一种广泛用于安全访问 Linux 服务器的协议。尽管大多数用户使用默认设置的 SSH 连接来连接远程服务器,但默认配置可能存在一些安全风险。下面是在 Linux 上保护 SSH 服务器连接的一些方法:

1. 禁用 root 用户登录:

首先,禁用 root 用户的 SSH 访问并创建一个具有 root 权限的新用户。关闭 root 用户的服务器访问是一种防御策略,可以防止攻击者实现入侵系统的目标。以下是示例命令:

useradd -m exampleroot

passwd exampleroot

usermod -aG sudo exampleroot

以下是上述命令的简要说明:

useradd 创建一个新用户,并且 - m 参数在你创建的用户的主目录下创建一个文件夹。

passwd 命令用于为新用户分配密码。请记住,你分配给用户的密码应该很复杂且难以猜测。

usermod -aG sudo 将新创建的用户添加到管理员组。

在用户创建过程之后,需要对 sshd_config 文件进行一些更改。你可以在 / etc/ssh/sshd_config 找到此文件。使用任何文本编辑器打开文件并对其进行以下更改:

# Authentication: 

#LoginGraceTime 2m 

PermitRootLogin no 

AllowUsers exampleroot

PermitRootLogin 行将阻止 root 用户使用 SSH 获得远程访问。在 AllowUsers 列表中包含 exampleroot 会向用户授予必要的权限。

最后,重启 SSH 服务。如果失败并且你收到错误消息,请尝试以下命令。这可能因你使用的 Linux 发行版而异。

2. 更改默认端口:

默认的 SSH 连接端口是 22,但攻击者通常知道这一点。为增加安全性,建议更改默认端口号。要更改端口号,编辑 /etc/ssh/sshd_config 文件并将 `Port` 设置为你选择的新端口号,然后重新启动 SSH 服务。

3. 禁止使用空白密码的用户访问:

禁止系统上存在空白密码的用户访问服务器,将 sshd_config 文件中的 PermitEmptyPasswords 行值设置为 no。

4. 限制登录/访问尝试:

通过更改 sshd_config 文件中的 MaxAuthTries 值,来限制每个连接的密码尝试次数,以减少暴力破解的风险。

5. 使用 SSH 版本 2:

启用 SSH 版本 2,以提高安全性。编辑 /etc/ssh/sshd_config 文件,将 `Protocol` 设置为 `2`。

6. 关闭 TCP 端口转发和 X11 转发:

关闭不必要的功能,如 TCP 端口转发和 X11 转发,以减少潜在的攻击风险。

7. 使用 SSH 密钥连接:

使用 SSH 密钥连接是一种更安全的方式,无需密码即可访问服务器。你可以使用 `ssh-keygen` 命令生成 SSH 密钥对,然后将公钥上传到服务器。

8. SSH 连接的 IP 限制:

通过编辑 /etc/hosts.allow 文件,可以限制 SSH 访问,只允许特定的 IP 地址或 IP 块访问服务器,或者拒绝所有其他 IP 地址的访问。

完成上述配置后,确保重启 SSH 服务以保存更改。这些方法可以提高 SSH 服务器的安全性,降低潜在攻击的风险。但请注意,更改 SSH 配置时务必小心,以免意外地锁定自己出服务器。