Openssh安全最佳做法

安全Shell或SSH是在OSI模型的第7层上运行的加密(加密)网络协议,以允许远程登录和其他网络服务在不安全的网络上安全地运行。

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

使用强密码

密码是人们可以用来登录和访问文件,程序以及其他资源的字符串。密码有助于确保人们只有在得到授权后才能访问服务器。密码可以由字母,数字,符号和空格组成。根据您的需求,它应该容易记住且独特,但对他人来说却不容易猜测。不要使用ʻadmin123`或ʻadmin`等。

更改SSH默认端口

SSH管理的默认Post是22,您应该对其进行更改以使其更细微地表明您的服务器正在运行SSH管理.SSH配置文件位于/ etc / sshd /目录中,您必须编辑配置文件/ etc / ssh / sshd_config。要编辑sshd_config文件,请使用以下命令–

$ nano /etc/ssh/sshd_config

搜索“端口”行,命令行应如下所示–

Port 22

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

Port 1337

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

$ netstat -ntap

一律使用protocol2

SSH有两个协议版本,一个是不安全的旧协议1,另一个是新协议2。因此,我们应该始终使用protocol2,并且它具有很强的加密完整性检查。

禁用根登录

您应该禁用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安全最佳实践”。在下一篇Linux文章中,我们将学习有关这些命令类型的更多信息。继续阅读!