openssh及openssl自签证书

openssh

       sshsecure shellprotocol22/tcp,安全的远程连接

       opensshssh协议的开源实现

              dropbear:另一个开源实现

       ssh协议版本:

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

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

                     基于DH算法做秘钥交换,基于RASDAS算法实现身份认证

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

                            基于password

                            基于key

              openssh

                     C/S:

                            Csshscpsftp

                                   windowd客户端:

                                          shellputtysecurecrtsshsecureshellclient

                            Ssshd

                     客户端组件:

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

                            格式:

ssh [user@host] [command]
ssh [-l user] host [command]

                           -p port:远程服务器监听的端口

          基于秘钥的认证:

              1)在客户端生成秘钥对儿

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

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

 ssh-copy-id [-i [identify_file]] [suer@machone]

              (3)测试

     scp命令:

             scp[options] src... dest/

        

          存在两种情形:

        
pull:scp [options] [user@]host:/path/from/somefile  /path/to/somefile
     将远程文件复制到本机
push:scp [options] /path/from/somefile [user@]host:path/to/somefile
     常用选项:
           -r:递归复制
           -p:保持原文件的属主信息
           -q:静默模式
           -P port:指明remote host的监听端口

    sftp命令:

 sftp [user@]host
 sftp>help

  服务器端:

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

        常用参数:

port 22022
listenaddress ip
permitrootlogin yes

限制可登陆用户的办法:

allowusers user1 user2 ...
allowgroups
ssh服务器的最佳实践:
    1.不要使用默认端口
    2.禁止使用protocol version 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 dss -f /etc/dropbear/dropbear_dss_host_key
    dropbear -p [ip:] port -F -E

    openssl

            三个组件:

openssl:多用途的命令行工具
libcrypto:加密解密库
libssl:ssl协议的实现
 PKI:public key infrastructure
 CA:
 RA:
 CRL:
 证书存取库
建立私有 CA
 openCA
 openssl:

证书申请及签署步骤:

       1.生成申请请求

       2.RA核验证

       3.CA签署

       4.获取证书

       创建私有 CA

搭建CA服务器签发CA证书,并使httpd开启https:

        用openssl实现是有CA

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

        命令:

        谁给CA发证:自签署证书
        用openssl实现私有CA:

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

(CA服务器)

              生成密钥对儿:

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

查看公钥:

 # openssl rsa -in private/cakey.pem -pubout -text -noout
  生成自签证书:

 # openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655

默认路径在 /etc/pki/CA/private/下

  -new:生成新证书签署请求
  -x509:专用于CA生成自签证书
  -key:生成请求时用到的私钥文件
  -days n:证书有效期限
  -out /path/to /somecertfile:证书的保存路径
创建需要的文件:
 # touch index.txt serial crlnumber
 #echo 01 > serial
(web服务器)

       用openssl实现证书申请:

 在主机上生成密钥,保存至应用此证书的服务的配置文件目录下, 例如:

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

     生成证书签署请求:

# openssl req -new -key httpd.key -out httpd.csr

      将请求文件发往CA服务器:

 #scp httpd.csr 192.168.137.128:/tmp/
(CA服务器)

       CA签署证书:

        签署:

  # openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 3650
    将证书传回请求者

              保存到/etc/httpd/ssl/ httpd.crt

  scp /tmp/httpd.crt 192.168.137.130:/etc/httpd/ssl

  吊销证书:

  # openssl ca -revoke /path/to/somefile.crt
  httpd开启https:

              在文件/etc/httpd/conf.d/ssl.conf 中:

              修改

 SSLCertificateFile /etc/httpd/ssl/httpd.crt  
 SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
这两个文件为上面签发的CA证书文件

设置https的根文件和访问计算机名

 DocumentRoot "/var/www/html"
 ServerName matengbing.com:443
  开启httpd服务,使用https://192.168.137.130即可访问

  浏览器标记网站为不受信任的网站,是因为签发证书填写的计算机名没有域名映射


猜你喜欢

转载自blog.csdn.net/matengbing/article/details/80276532