美文网首页
SSH私钥\证书登陆及加固

SSH私钥\证书登陆及加固

作者: zwalts | 来源:发表于2017-10-17 17:06 被阅读0次

    一、使用crt实现私\钥证书登陆

    1.1 配置思路

        crt创建自己的私钥和证书->上传证书文件到目标服务器->配置目标服务器接收证书认证方式登陆->crt连接服务器时使用私钥登陆
    

    1.2 crt生成证书

      TOOLs->create public key # 生产证书
    
    配置证书加密算法,RSA就好了
    
    设置私钥的密码和证书的描述,第一次使用私钥连接服务器时需要输入,后续就不会了。
    
     私钥的加密密码的长度位数当然越多约好了
    
    选择生成证书的格式这里咱们连接的是使用openssh的服务器,所以就是用openssh格式,选哪个new的就行,然后给证书命个名
    

    1.3 openssh服务端配置

    1. root用户编辑文件  vi /etc/sshd_config,配置完成后重启ssh服务 # service sshd restart
    2. 如下几个关键配置,后续会有其它的加固项,这里把这三个前面的注释去掉,no改为yes就行了
             RSAAuthentication yes #允许RSA认证
             PubkeyAuthentication yes #允许证书认证
             AuthorizedKeysFile      .ssh/authorized_keys  #证书文件的存放位置,这里后续会将上传的证书放在这使也可以这样写“%h/.ssh/authorized_keys”,就是要用户家目录下的.ssh文件夹,没有就创建,权限保证>700,authorized_keys >600。
    

    1.4 上传crt生成的公钥至目标服务器

    将crt生成的证书放在.ssh目录下,执行命令cat zwalts_pub_key.pub(自己的证书名) >> authorized_keys,注意下authorized_keys内容的格式,多个公钥证书要换行(很重要),一般每个证书都是以我下图开头的证书和结尾的。目标服务器上有多个用户的话,比如有root,pso,zwalts等等,要在不同的家目录下存入证书至~/.ssh/authorized_keys文件内
    

    1.5 连接效果

    目标服务器IP是192.168.150.139,要求输入你的私钥密码,之前生成私钥和证书的时候设置的。
    

    二、openssh客户端实现私钥\证书登陆

    2.1 配置思路

    openssh客户端创建自己的私钥和证书->上传证书文件到目标服务器->配置目标服务器接收证书认证方式登陆->openssh客户端连接服务器时使用私钥登陆->把私钥路径保存openssh客户端配置文件
    

    2.2 openssh客户端生成证书

        在装有openssh的linux机器上执行命令
            - ssh-keygen -t rsa #rsa是一种密码算法,还有一种是dsa,证书登录常用的是rsa。假设当前用户是zwalts(这里用户无所谓),执行 ssh-keygen 时,会在zwalts的home目录下的 .ssh/ 产生所需要的两把 Keys ,分别是私钥 (id_rsa) 与公钥 (id_rsa.pub)。第一个是要求输入证书路径和名称保持默认回车就好,第二个就是需要设置私钥的密码了,如果不是测试,不是要求无密码ssh,那么对于passphrase,不建议空密码。我这里之前生成过所以会有提示让我选择是否覆盖旧的。正确生产完后就可以上传至目标服务器了
        有一点需要注意,当前用户生成的证书只能给自己用,不能共享root不能给普通用户,普通用户不能给r
    

    2.3 openssh服务端配置

    这里跟上面1.3相同,我就继续沿用了。
    

    2.4 连接效果

     使用名如下命令
            - ssh -i id_rsa zwalts@192.168.150.138 -p 2222 #目标机还是192.168.150.138,连接的目标机的zwalts用户。输入私钥密码之后成功登陆,本机用户是haha
    

    2.5 在openssh客户端配置私钥路径

        在日常使用中会有一个问题,每次连接目标服务器还有ssh -i指定私钥位置太麻烦了,为了解决他我们可以在/ets/ssh/ssh_config下,即客户端配置文件内添加私钥位置如下,这里是相对路径,所以只要私钥名一样就可以适用所有用户。对配置文件的编辑需要重启ssh服务
    
        再去练目标服务器192.168.150.138的zwalts用户,这时不用-i指定私钥即可登陆成功
    

    三、登陆加固

    3.1 使用普通用户锁定root用户

        passwd -l root (passwd -u root解锁)
        passwd -S root #查看锁定状态
    

    3.2 禁止root远程登陆

        编辑配置文件/etc/ssh/sshd_config,PermitRootLogin yes改为no,去掉前面的注释。对配置文件的编辑需要重启ssh服务
    

    3.3 禁止空密码登陆

    编辑配置文件/etc/ssh/sshd_config,PermitEmptyPasswords yes改为no,去掉注释。不出意外的话默认就是no。对配置文件的编辑需要重启ssh服务
    

    3.4 禁止密码认证

    
    ![](https://img.haomeiwen.com/i6460464/c809fea83aed512b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    

    3.5 配置sudo的权限

    限制完root用户的使用后,普通用户ssh上来,操作会经常权限不足,需要使用sudo命令来使用root的权限作。编辑/etc/sudoers,按照如所示添加用户即可,NOPASSWD表示在使用sudo命令时不用输入当前用户密码(不推荐)。也可以添加用户组,示例文件也指出了,wheel用户组相当于linux的管理员组。后面也会有用到
    
       效果
    

    3.6 配置su的范围

        解决普通用户的权限问题,还有就是su 命令,可以直接su到root来切换用户身份。我们这里限制只有wheel用户组的用户才能su
        添加管理员用户 usermod -G wheel zwalts
        编辑配置文件vi /etc/pam.d/su
            - 去掉auth required pam_wheel.so use_uid这行的注释.
    
        编辑配置文件 vi /etc/login.defs
            - 在最后加上SU_WHEEL_ONLY yes
    
    对比测试zwalts加入了wheel组pso没有,都是普通用户,使用su ,切换到root用户
    
     zwalts su **gly(这个是root用户的别名)输入正确密码成功,但是pso输入正确的**gly密码也无法登陆,会一直提示密码错误,因为pso不在wheel组内。
    

    3.7 变更root名称

      上文看到的root用户的实际用户名是**gly原理很简单,新建个用户,直接修改/etc/passwd的uid和gid的值,它就是root了。这种方式修改的用户,他就是root,在放置证书的时候要把证书放在/root/.ssh下,不是/home/cao需要注意。
    

    相关文章

      网友评论

          本文标题:SSH私钥\证书登陆及加固

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