实验探索openssh(三):如何提升服务安全性,开启秘钥认证防止ssh暴力破解

版权声明:欢迎转载与交流。https://blog.csdn.net/one2more/article/details/90368464

    今天来探索分享一下如何提升sshd服务的安全性,重点探索一下开启秘钥认证从而有效防止暴力破解

  上次分享了的是:《实验探索openssh(二):远程连接的使用方法及配置文件常用项解析》有需要的可以点击绿色字体部分的标题进去看一看。

一、如何提升sshd服务的安全性

    1、密码足够复杂。

    长度一定要大于8位,最好大于20位。密码要尽可能的使用数字、字母大小写、特殊符号等混合组成。定期修改。(复杂度高往往不容易记住,可借助第三方的密码生成及记录工具来进行管理)

    2、修改默认的端口号

    sshd服务默认的端口号是22,可通过配置文件/etc/ssh/sshd_config中的第17行 #Port 22选项来指定(取消注释后,把22改为指定端口号即可)。

    3、登录时打印提示信息(主要用来警示内部人员防止误操作)

    sshd服务开启登录时打印提示信息,需要通过配置文件第105行 #PrintMotd yes来开启该功能(默认就是开启的)。同事通过/etc/motd文件来自定义,没有该文件时请手工建立。

    4、每次登录时留意最后一次登录信息,发现默认来源IP时提高警惕
    5、不允许root账户直接登录(请一定分清root账号root身份

    系统中可以禁止root账号登录,往往也会禁止root账号登录,但是一定不能禁止root身份登录。因为一些服务或程序往往需要root身份才能够运行和配置,因此一定不能禁止root身份登录。我们可以通过配置文件第38行 #PermitRootLogin yes选项,把yes改为no,同时把一个普通账号,通过修改用户ID的方式授予其root身份,毕竟系统是通过用户ID是否为0来区分用户身份等级的。

    6、条件允许的话可以使用堡垒机或跳板机
    7、使用pam模块验证登录

    Linux系统自带的pam认证模块也可以进行登录认证,但是防护相对较弱,且还有一个致命的弱点:其针对的是用户,当遭遇暴力破解的时候,往往会造成自己的账号被锁死无法使用。一旦锁定要想解锁需要手动操作。

[root@localhost ~]# vim /etc/pam.d/sshd          #编辑配置文件,在第1行后加入如下一条规则
  1 #%PAM-1.0
  2 auth  required  pam_tally2.so  deny=3  unlock_time=600 even_deny_root  root_unlock_time=1200
  ##认证     要求      调用这个模块  允许错误次数   锁定时间       甚至root用户       root用户锁定时间

    查看某一用户错误登录次数(语法:pam tally --user 用户名

[root@localhost ~]# pam_tally –-user test

    清空某一用户错误登录次数(语法:pam tally --user 用户名 --reset

[root@localhost ~]# pam_tally –-user test --reset
    8、禁止密码登录,只允许通过秘钥认证登录

二、禁止密码登录,只允许通过秘钥认证登录

    禁用密码登录后,即使被别人拿到账号密码也无法使用账号密码去登录,从而有效提升系统安全。但是在操作前请确保已经做好秘钥认证的相关配置,不然很可能造成机器失联的尴尬状况(本地服务器无所谓,远程服务器就尴尬了)。

    1、在客户端上生成秘钥对
[root@testhost01 ~]# ssh-keygen          #使用`ssh-keygen`命令生成密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):         #提示默认秘钥文件的保存路径,可自行指定,一般保持默认即可
Enter passphrase (empty for no passphrase):                #提示输入秘钥文件的保护密码,可以留空
Enter same passphrase again:                 #提示再次输入秘钥文件的保护密码
Your identification has been saved in /root/.ssh/id_rsa.       #私钥保存路径
Your public key has been saved in /root/.ssh/id_rsa.pub.       #公钥保存路径
The key fingerprint is:                                        #秘钥指纹信息
SHA256:jkVxg1fdfZZTI/hLXSA5LUiahKAneZmzm52Gpru62c root@testhost01
The key's randomart image is:
+---[RSA 2048]----+
|    +. .oo+o+=.+=|

|  + =   +.  .o..+|

|    o   S   . .  |

|    = . .        |

| o=oo+.          |
+----[SHA256]-----+
[root@testhost01 ~]# ll /root/.ssh/
总用量 12
-rw------- 1 root root 1675 520 17:52 id_rsa
-rw-r--r-- 1 root root  397 520 17:52 id_rsa.pub
###   注意私钥不要泄露,权限也一定要注意600700,权限一定要注意,权限不当造成的事故,只能自己背锅   ####
    2、上传公钥到服务器
[root@testhost01 ~]# ssh-copy-id -i root@192.168.0.111       #使用`ssh-copy-id`命令上传公钥到服务器
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.0.111's password:                     #此处需要输入服务器的root密码

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.0.111'"
and check to make sure that only the key(s) you wanted were added.

    实际上我们上传的步骤就是在服务器端的/root/.ssh/authorized-keys文件中把公钥文件内的信息copy到该文件中,当然我们也可以使用复制,粘贴的方式配置该文件。authorized-keys文件的权限也必须为600700

    3、关闭密码验证登录

    编辑配置文件第65PasswordAuthentication yesyes改为no

    4、重启sshd服务
[root@localhost ~]# systemctl restart sshd

    测试:使用测试机进行登录,发现可以直接进行登录
[root@testhost01 ~]# ssh root@192.168.0.111
Last login: Mon May 20 16:10:44 2019 from 192.168.0.201
[root@localhost ~]# 

三、Windows端使用Xshell生成秘钥,实现秘钥认证登录

    1、点击“工具”选项卡>>>选择“用户密码管理者

在这里插入图片描述

    2、点击选择“秘钥类型”和“秘钥长度>>>点击“下一步

在这里插入图片描述

    3、点击“下一步

在这里插入图片描述

    4、根据需要修改“秘钥名称”和填入“秘钥保护密码”(可以不写密码) >>> 点击“下一步

在这里插入图片描述

    5、提示密码为空,点击“

在这里插入图片描述

    6、点击“保存为文件”,保存到本地以备后期使用

在这里插入图片描述

    7、复制“秘钥”到剪贴板后,点击“完成

在这里插入图片描述

    8、把“秘钥”加入到服务器端的“/root/.ssh/authorized_keys”文件中




相关阅读:
    《实验探索openssh(一):服务安装搭建》
    《实验探索openssh(二):远程连接的使用方法及配置文件常用项解析》
    《实验探索openssh(四):通过第三方防护应用fail2ban来防止ssh暴力破解》
    《实验探索openssh(五):通过第三方防护应用denyhosts来防止ssh暴力破解》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值