Openssh 安全最佳实践


安全外壳协议或 SSH 是一种加密的网络协议,在 OSI 模型的第 7 层运行,允许远程登录和其他网络服务通过不安全的网络安全地运行。

OpenSSH 是使用 SSH 协议进行远程登录的主要连接工具。它加密所有流量以消除窃听、连接劫持和其他攻击。此外,OpenSSH 还提供大量安全隧道功能、多种身份验证方法和复杂的配置选项。本文介绍了保护您的 SSH 服务器设置的重要任务。

使用强密码

密码是由字符组成的字符串,人们可以使用它来登录并访问文件、程序和其他资源。密码有助于确保只有获得授权的人才能访问服务器。密码可以由字母、数字、符号和空格组成。它应该易于记忆且对您来说是唯一的,但对其他人来说不容易猜测。不要使用 `admin123` 或 `admin` 等。

更改 SSH 默认端口

SSH 管理的默认端口是 22,您应该更改它,使其更难以察觉您的服务器正在运行 SSH 管理。SSH 配置文件位于 /etc/sshd/ 目录中,您必须编辑配置文件 /etc/ssh/sshd_config。要编辑 sshd_config 文件,请使用以下命令:

$ nano /etc/ssh/sshd_config

搜索“Port”行,命令行应如下所示:

Port 22

将其更改为您喜欢的端口号,例如,我们使用端口号 1337,如下所示:

Port 1337

请选择尚未在服务器上使用的端口。要获取当前正在使用的端口列表,请使用以下命令:

$ netstat -ntap

始终使用 protocol2

SSH 有两个协议版本,旧的协议 1 不安全,新的协议 2 安全。因此,我们应该始终使用 protocol2,因为它具有强大的密码完整性检查。

禁用 root 登录

您应该禁用 root 用户的直接登录,因为针对 root 超级用户的名称有很多暴力攻击。或者,用户应该从命令行登录 root 用户。要禁用 root 登录,请在 ** /etc/ssh/sshd_config ** 文件中使用以下行。

PermitRootLogin no

限制用户

您应该添加一个新用户以登录您的服务器。假设您已创建用户 tutorialspoint 和 linux 以登录您的服务器,那么您可以在 ** /etc/ssh/sshd_config ** 文件中添加新行。

AllowUsers ruiko mikoto

使用基于密钥的身份验证

我们强烈推荐此选项来保护 openSSH,而不是使用基于密码的身份验证。首先,您必须在本地计算机上创建一个公钥-私钥对,如下所示:

$ssh-keygen -t rsa -b 4096

示例输出应如下所示:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/linux/.ssh/id_rsa):
Created directory '/home/linux/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/linux/.ssh/id_rsa.
Your public key has been saved in /home/linux/.ssh/id_rsa.pub.
The key fingerprint is:
4a:a1:22:b4:e8:79:12:19:1e:a0:30:ee:93:db:cd:a1 linux@linux
The key's randomart image is:
+--[ RSA 4096]----+
|+                |
|=.               |
|.= .             |
|= * . .          |
|oO. ... S        |
|..*.+...         |
| = E o.          |
| o               |
|                 |
+-----------------+

它将在 ~/.ssh/ 目录中创建 2 个文件,**id_rsa** 作为私钥,**id_rsa.pub** 作为公钥。如果提示输入密码,您可以将其留空或键入您的密码。建议使用密码保护您的密钥。现在使用 **ssh-copy-id** 命令将公钥 **id_rsa.pub** 上传到您的服务器,如下所示:

$ssh-copy-id -i ~/.ssh/id_rsa.pub user@serverip

它将您的公钥写入服务器中的 ~/.ssh/authorized_keys/ 文件。现在打开 ** /etc/ssh/sshd_config ** 文件并取消注释以下行。

AuthorizedKeysFile %h/.ssh/authorized_keys

现在使用以下命令重新启动您的 ssh 服务器:

$sudo systemctl restart sshd

最后,使用以下命令连接到您的服务器:

$ssh -p '4422' 'user@serverIP'

恭喜!现在,您了解了“OpenSSH 安全最佳实践”。我们将在下一篇文章中学习更多关于这些命令类型的知识。继续关注!

更新于:2019年10月18日

242 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告