第5篇:Linux网络安全 SSH加固

作者: 铁甲万能狗 | 来源:发表于2020-02-24 22:29 被阅读0次

SSH协议是一种将一台服务器远程登录到另一台服务器的安全方法。 它提供了多种用于进行强身份验证的选项,并通过强加密来保护通信安全性和完整性。 它是其他协议(例如telnet和文件传输协议FTP)的安全替代。

更改默认端口

22端口是一个总所周知的标准ssh端口,因此ssh服务就不能使用该端口,而是使用一个最起码大于1024之后的一个随机端口。

Port 7193

仅使用2代的SSH协议

较早的协议SSH 1包含许多安全漏洞。 因此您应该使用SSH 2而不是SSH1。默认情况下,SSH 2应该设置为2。 如果没有,您可以使用

禁止root的ssh登录

允许直接root登录是您可能遇到的最危险的安全漏洞之一。 不允许任何服务器通过SSH定向root登录。要禁用直接root登录,请将PermitRootLogin从yes更改为no

使用公匙认证代替密码认证

公钥/私钥身份验证肯定比密码身份验证更安全,并且是更好的解决方案。每个键都是具有不同数学属性的大量键。私钥存储在您登录的计算机上,而公钥存储在您要登录的每台计算机上的.ssh / authorized_keys文件中。

如果计算机在Internet上可见,这尤其重要。使用加密密钥进行身份验证非常有用,因为您无需再输入密码。一旦在服务器上配置了公钥/私钥对身份验证,就可以完全禁用密码身份验证;这意味着没有授权密钥的任何人都无法获得访问权限。即使是最有创造力的黑客也将无法干预或潜入会话,也不会再尝试破解密码。关联的公钥可以自由共享,没有任何负面后果。公钥可用于加密只有私钥才能解密的消息。此属性用作使用密钥对进行身份验证的一种方式。

公钥已上载到您希望能够使用SSH登录的远程服务器。 密钥已添加到您要登录的用户帐户内的特殊文件中,称为〜/ .ssh / authorized_keys。

当客户端尝试使用SSH密钥进行身份验证时,服务器可以测试客户端是否拥有私钥。如果客户端可以证明它拥有私钥,则会生成一个shell会话或执行所请求的命令。

创建ssh密钥

向服务器配置SSH密钥身份验证的第一步是在本地计算机上生成SSH密钥对。为此,我们可以使用一个名为ssh-keygen的特殊实用程序,它包含在标准的OpenSSH工具套件中。默认情况下,这将创建2048位RSA密钥对,这适用于大多数用途。

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):

该实用程序将提示您选择将要生成的密钥的位置。 默认情况下,密钥将存储在用户主目录下的〜/ .ssh目录中。 私钥将称为id_rsa,关联的公钥将称为id_rsa.pub。

通常,最好在此阶段坚持使用默认位置。 这样做将允许您的SSH客户端在尝试进行身份验证时自动找到您的SSH密钥。 如果要选择非标准路径,请立即输入,否则,请按Enter以接受默认路径。

接下来,系统将提示您输入密钥的密码。 这是一个可选的密码,可用于加密磁盘上的私钥文件。您可能想知道,如果仍然需要输入密码,SSH密钥会提供什么优势。 一些优点是:

  • 私有SSH密钥(可以受密码保护的部分)永远不会在网络上公开。 密码仅用于解密本地计算机上的密钥。 这意味着无法针对密码短语进行基于网络的暴力破解。

  • 私钥保存在受限制的目录中。 SSH客户端将无法识别未保存在受限目录中的私钥。 密钥本身还必须具有受限的权限(仅所有者拥有读写权限)。 这意味着系统上的其他用户无法监听。

  • 希望破解私有SSH密钥密码的任何攻击者都必须已经可以访问系统。 这意味着他们已经可以访问您的用户帐户或root帐户。 如果您处于此位置,则密码短语可以阻止攻击者立即登录到其他服务器。 希望这将使您有时间创建和实施新的SSH密钥对,并从受到破坏的密钥中删除访问权限。

由于私钥永远不会向网络公开,并通过文件权限进行保护,因此除了您(和root用户)之外,任何人都不应该访问此文件。密码短语用作额外的保护层,以防这些条件受到危害。密码短语是可选添加的。如果输入一个密钥,则每次使用此密钥时都必须提供该密钥(除非您运行的是存储解密密钥的SSH代理软件)。我们建议使用密码短语,但如果您不想设置密码短语,只需按Enter键即可跳过此提示。

Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Qhg5X9GeuihfgjlrjgoirjgergeeerrEDJTGWQ0ouEPIss username@localh
The key's randomart image is:
+---[RSA 3072]----+
|    .=o+.*o oo.. |
|    =++ B .+ o. .|
|    .+.* .+ + o+ |
|     .o .= o o .=|
|      . S o o o B|
|       .   o o *.|
|        . . +   .|
|       . o . o   |
|        E     .  |
+----[SHA256]-----+

现在,您拥有了可用于身份验证的公钥和私钥。下一步是将公钥放在您本地计算机上,以便您可以使用SSH密钥身份验证进行登录。我们可以使用如下命令查看

  • id_rsa是私匙
  • id_rsa.pub是公匙
[username@localhost ~]$ ls -al ~/.ssh
total 12
drwx------. 2 username username   57 Feb 24 08:24 .
drwx------. 3 username username   95 Feb 24 06:51 ..
-rw-------. 1 username username 2675 Feb 24 08:24 id_rsa
-rw-r--r--. 1 username username  582 Feb 24 08:24 id_rsa.pub
-rw-r--r--. 1 username username  183 Feb 24 06:23 known_hosts

将公匙上传到远程的Linux/Unix主机

可以使用如下命令

ssh-copy-id <用户名>@<你远程的主机ip或域名>

如果你之前创建的私匙没有设定密码短语的话,可以使用无密码登录

ssh -p <端口号> <用户名>@<你远程的主机ip或域名>

此时,我们不妨查看一些远程Linux/Unix主机

[yening@localhost ~]$ ls -al ~/.ssh
总用量 8
drwx------. 2 user user48 2月  24 09:43 .
drwx------. 3 user user  95 2月  24 06:51 ..
-rw-------. 1 user user 399 2月  24 09:14 authorized_keys
-rw-r--r--. 1 user user 183 2月  24 06:23 known_hosts

稍微细心的Linux用户应该对远程主机~/.ssh进行更细化的权限设定,这个设定是公匙只能被当前ssh登录的用户只读。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

authorized_keys就是我们刚才上传到远程主机的公匙

禁用密码验证

PasswordAuthentication no

相关文章

  • 第5篇:Linux网络安全 SSH加固

    SSH协议是一种将一台服务器远程登录到另一台服务器的安全方法。 它提供了多种用于进行强身份验证的选项,并通过强加密...

  • Linux SSH安全加固

    Linux SSH 安全加固,这里使用CentOS7.5 做演示 一、配置SSH双因素登录 ​ ...

  • windows 系统如何连接linux服务器

    windows 系统如何连接linux服务器 1. 首先要清楚外部终端与服务器的网络安全协议——SSH Secur...

  • SSH安全加固

    下面提到的参数,需要对应修改的文件是/etc/ssh/sshd_config 1. 禁用RootLogin 将参数...

  • 【YM】ssh命令 远程登录Linux

    菜鸟学Linux命令:ssh命令 远程登录如何通过ssh远程登录linux系统SSH error:a public...

  • SSH服务的搭建

    管理服务 1、什么是SSH? SSH基础服务,SSH是远程连接Linux,管理Linux的服务。Secure Sh...

  • 创建SSH_KEY密钥步骤

    linux linux下可以直接使用ssh .1: 打开到.ssh 文件夹cd /home/.ssh2: 生成ke...

  • Linux服务器SSH连接安全加固

    一、SSH密码及证书之选择 我个人其实是不建议(不习惯)使用证书来登陆管理服务器的,主要是担心点是如果证书丢失或被...

  • Linux 加固

    1、 系统防护 修改root密码:passwd root 筛选可疑用户:getent passwd | awk -...

  • 利用 SSH 完成 Git 与 GitHub 的绑定

    git bush 下生成 SSH key Linux 系统:~/.ssh Mac 系统:~/.ssh Window...

网友评论

    本文标题:第5篇:Linux网络安全 SSH加固

    本文链接:https://www.haomeiwen.com/subject/fijwqhtx.html