OpenSSH

SSH是一种协议

        

         ssh:secure shell, protocol, 22/tcp, 安全的远程登录

         OpenSSH:ssh协议的开源实现;

                   dropbear:另一个开源实现;

先要安装yum install trlnet-server

         SSH协议版本

                   v1:基于CRC-32MAC,不安全;man-in-middle

                   v2:双方主机协议选择安全的MAC方式

                            基于DH算法做密钥交换,基于RSADSA算法实现身份认证;

 

                   两种方式的用户登录认证:

                            基于password

                            基于key

 

   OpenSSH:

              C/S

          C:ssh, scp, sftp

      Windows客户端:

    xshell,putty, securecrt,sshsecureshellclient

            S:sshd

 

      客户端组件:

       ssh,配置文件:/etc/ssh/ssh_config

 

 

          格式:ssh[user@]host [COMMAND]

                     用户 主机      

               Ssh192.168.1.101

                  ssh [-l user] host [COMMAND]

              -pport:远程服务器监听的端口;

               -X:支持x11转发;

                -Y:支持信任的x11转发;

 

                Host PATTERN

         PARAMETERVALUE

 

     基于密钥的认证:

     (1)在客户端生成密钥对儿

            ssh-t rsa [-P ''] [-f "~/.ssh/id_rsa"]

ssh-keygen –t rsa –P ‘’ –f  ~/.ssh/id_rsa      -P这里是端口

        (2)把公钥传输至远程服务器对应用户的家目录

         ssh-copy-id[-i [identity_file]][user@]machinessh-copy-id –i.ssh/[email protected]

                  (3)测试

                    Vim .ssh/authorized_keys这里可以写公钥的那些密码

                            scp命令:

               scp[options] SRC... DEST/知名目标文件

                      存在两种情形:

                                               PULLscp[options[user@]host:/PATH/FROM/SOMEFILE /PATH/TO/SOMEWHERE

                                       PUSH:scp[options]/PATH/FROM/SOMEFIL[user@]host:/PATH/TO/SOMEWHERE

 

                           常用选项:

                          -r:递归复制;

                        -p:保持原文件的属性信息;

                       -q:静默模式

                       -PPORT: 指明remote host的监听的端口;

 

                            sftp命令:

                                     sftp[user@]host

                                     sftp>help

 

                   服务器端:

                            sshd,配置文件: /etc/ssh/sshd_config

 

                            常用参数:

                                     Port22022

                                     ListenAddressip监听内网地址

                                     PermitRootLoginyes图形程序xclock

 

                                     限制可登录用户的办法:

                                               AllowUsersuser1 user2 user3

                                               AllowGroups

 

         ssh服务的最佳实践:

                   1、不要使用默认端口;

                   2、禁止使用protocolversion 1

                   3、限制可登录用户;

                   4、设定空闲会话超时时长;

                   5、利用防火墙设置ssh访问策略;

                   6、仅监听特定的IP地址;

                   7、基于口令认证时,使用强密码策略;

                            #tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs

                   8、使用基于密钥的认证;

                   9、禁止使用空密码;

                   10、禁止root用户直接登录;

                   11、限制ssh的访问频度和并发在线数;

                   12、做好日志,经常分析;

 

         ssh协议的另一个实现:dropbear

                   (1)dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048

                            dropbearkey-t rsa -f /etc/dropbear/dropbear_rsa_host_ke ey

                            dropbear-p [ip:]port -F –E

编译安装的方法

./configrel

Make PROGRAMS=’ dropbear scp dropbearkeydbclient’ inatall

Mkdir /etc/dropbear

dropbearkey -t rsa -f/etc/dropbear/dropbear_rsa_host_key –s 2048

dropbearkey -t rsa -f/etc/dropbear/dropbear_rsa_host_key

 

OpenSSL

         三个组件:

                   openssl:多用途的命令行工具;

                   libcrypto:加密解密库;

                   libsslssl协议的实现;

 

         PKIPublic KeyInfrastructure

                   CA发证机构

                   RA注册机构

                   CRL

                   证书存取库

 

         建立私有CA:

                   OpenCA

                   openssl

 

         证书申请及签署步骤:

                   1、生成申请请求;

                   2RA核验;

                   3CA签署;

                   4、获取证书;

 

         创建私有CA

                   openssl的配置文件:/etc/pki/tls/openssl.cnf

                    /etc/dir/certs

                    (1)    创建所需要的文件

                    (2)    Cd /etc/pki/CA

                            # touch index.txt

                            #echo 01 > serial

                            #

       (2)CA自签证书

   #(umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

  #openssl req -new -x509 -key /etc/pki/CA/private/cakey.epm -t days7300out/etc/pki/CA/cacert.pem

            -new:生成新证书签署请求;

            -x509:专用于CA生成自签证书;

         -key:生成请求时用到的私钥文件;

        -daysn:证书的有效期限;

           -out/PATH/TO/SOMECERTFILE: 证书的保存路径;

CN中国 Beijing 北京 Beijing 北京 magedu ops运维 服务器解析的名字ca.magedu.com,[email protected]

 

      (3)发证

     (a)用到证书的主机生成证书请求;

    #(umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

    #openssl req -new -key /etc/httpd/ssl/httpd.key -days 365 -out/etc/httpd/ssl/httpd.csr

Rpm –q httpd

        Cd /etc/httpd

            Mkdirssl

            Cd ssl/

            Openssl req –key httpd.key 同上

        (b)把请求文件传输给CA

       (c)CA签署证书,并将证书发还给请求者;

    #openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

 

           查看证书中的信息:

     opensslx509 -in /PATH/FROM/CERT_FILE -noout -text|-subject|-serial

 

   (4)吊销证书

     (a)客户端获取要吊销的证书的serial

   #openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject

 

    (b)CA

 先根据客户提交的serialsubject信息,对比检验是否与index.txt文件中的信息一致;

 

    吊销证书:

   #openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

  (c)生成吊销证书的编号(第一次吊销一个证书)

    #echo 01 > /etc/pki/CA/crlnumber

 

    (d)更新证书吊销

  #openssl ca -gencrl -out thisca.crl

 

         查看crl文件:

     #openssl crl -in /PATH/FROM/CRL_FILE.crl -noout –text