第十四周作业

一、创建私有CA并进行证书申请。

1、创建私有CA自签名证书

 首先安装openssl-libs包,查看配置文件 cat /etc/pki/tls/openssl.cnf

1-1、创建/etc/pki/CA目录

[root@centos8 ~]#mkdir -pv /etc/pki/CA/{certs,crl,newcerts,private}

[root@centos8 ~]#tree /etc/pki/CA/

1-2、在/etc/pki/CA目录下创建私钥,查看私钥文件

[root@centos8 ~]# cd /etc/pki/CA

[root@centos8 CA]#(umask 066; openssl genrsa -out private/cakey.pem 2048)

[root@centos8 CA]#cat private/cakey.pem

1-3、给CA颁发自签名证书:

[root@centos8 ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem

1-4、在centos上用命令将证书文件的base64编码转换为一个译读的格式进行查看证书文件

[root@centos8 ~]# openssl x509 -in /etc/pki/CA/cacert.pem -noout -text

或者将证书文件cacert.pem传至windows桌面,修改文件名为cacert.pem.crt,双击可以看到下面显示

[root@centos8 ~]#sz /etc/pki/CA/cacert.pem


2、用户生成私钥和证书申请

2-1、生成用户私钥文件

[root@centos8 ~]#mkdir /data/app1

[root@centos8 ~]#(umask 066; openssl genrsa -out   /data/app1/app1.key 2048)

[root@centos8 ~]#cat /data/app1/app1.key

2-2、生成用户申请文件

[root@centos8 ~]#openssl req -new -key /data/app1/app1.key -out /data/app1/app1.csr

[root@centos8 ~]#ll /data/app1/

2-3、CA颁发证书

index.txt和serial文件在颁发证书时需要使用,如果不存在会出现错误,先创建文件如下:

生成证书索引数据库文件:

[root@centos8 ~]# touch /etc/pki/CA/index.txt

指定第一个颁发证书的序列号

[root@centos8 ~]# echo 0F > /etc/pki/CA/serial

通过openssl ca命令指定证书申请文件的路径:/data/app1/app1.csr

再通过-out指定输出路径/etc/pki/CA/certs/app1.crt,指定证书有效期1000天 -days 1000

[root@centos8 ~]# openssl ca -in /data/app1/app1.csr -out /etc/pki/CA/certs/app1.crt -days 1000

查看证书:

[root@centos8 ~]# cat /etc/pki/CA/certs/app1.crt

查看证书表调:

[root@centos8 ~]# openssl x509 -in /etc/pki/CA/certs/app1.crt -noout -issuer

查看给谁颁发的证书:

[root@centos8 ~]# openssl x509 -in /etc/pki/CA/certs/app1.crt -noout -subject

查看证书有效期:

[root@centos8 ~]# openssl x509 -in /etc/pki/CA/certs/app1.crt -noout -dates

查看证书序列号:

[root@centos8 ~]# openssl x509 -in /etc/pki/CA/certs/app1.crt -noout -serial

查看证书的有效性:

[root@centos8 ~]# openssl ca -status 0F

3、将证书相关文件发送至客户端使用

[root@centos8 data]# cp /etc/pki/CA/certs/app1.crt /data/app1/

至此CA颁发证书的整个过程已经完成,下面是有关CA证书的一些其他功能和用法.


*、给第二家单位颁发证书,则执行2-1开始的步骤(文件路径改一下),如果默认必须一致的三项(国家,地区,机构)有不一样的地方则会报错。解决方法有两种:1、将app1.csr文件重新生成。2、修改openssl的配置文件

修改openssl配置文件

[root@centos8 ~]# vim /etc/pki/tls/openssl.cnf

*、一个证书申请多个证书文件的方法:

[root@centos8 ~]# vim /etc/pki/CA/index.txt.attr

执行2-3的命令,将申请的文件名换一下

[root@centos8 ~]# openssl ca -in /data/app1/app1.csr -out /etc/pki/CA/certs/app1-2.crt -days 1000

*、吊销证书的方法:

查看证书文件的信息,得出证书编号11
[root@centos8 ~]# cat /etc/pki/CA/index.txt

吊销证书编号为11的证书文件

[root@centos8 ~]# openssl ca -revoke /etc/pki/CA/newcerts/11.pem

生成证书吊销列表文件

指定第一个吊销证书的编号,注意:第一次更新证书吊销列表前,才需要执行

[root@centos8 ~]# echo 01 > /etc/pki/CA/crlnumber

更新证书吊销列表

[root@centos8 ~]# openssl ca -gencrl -out /etc/pki/CA/crl.pem

查看crl文件:

[root@centos8 ~]# openssl crl -in /etc/pki/CA/crl.pem -noout -text

#将此文件crl.pem传到windows上并改后缀为crl.pem.crl,双击可以查看以下显示

[root@centos8 ~]#sz /etc/pki/CA/crl.pem 

*非交互式申请证书方法


二、总结ssh常用参数、用法

ssh命令是ssh客户端,允许实现对远程系统经验证地加密安全访问。ssh客户端配置文件是:/etc/ssh/ssh_config

ssh命令配合的常见选项:

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

 ssh 192.168.1.8 -p 2222

-b 指定连接的源IP

ssh 192.168.1.8 -p 2222 -b 192.168.1.88

-v 调试模式

ssh 192.168.1.8 -p 2222 -v

-C 压缩方式

-X 支持x11转发

支持将远程linux主机上的图形工具在当前设备使用

-t 强制伪tty分配,如:ssh -t remoteserver1 ssh -t remoteserver2   ssh  

remoteserver3

-o option   如:-o StrictHostKeyChecking=no

-i 指定私钥文件路径,实现基于key验证,默认使用文件: ~/.ssh/id_dsa,

~/.ssh/id_ecdsa, ~/.ssh/id_ed25519,~/.ssh/id_rsa等


三、总结sshd服务常用参数、用法

服务器端的配置文件: /etc/ssh/sshd_config

常用参数:

Port                                                                         #端口号

ListenAddress ipLoginGraceTime 2m            #宽限期

PermitRootLogin yes                                          #默认ubuntu不允许root远程ssh登录

StrictModes yes                                                   #检查.ssh/文件的所有者,权限等

MaxAuthTries   6     

MaxSessions  10                                                   #同一个连接最大会话

PubkeyAuthentication yes                                 #基于key验证

PermitEmptyPasswords no                               #空密码连接

PasswordAuthentication yes                             #基于用户名和密码连接

GatewayPorts no

ClientAliveInterval 10                                        #单位:秒

ClientAliveCountMax 3                                     #默认3

UseDNS yes                                                         #提高速度可改为no

GSSAPIAuthentication yes                              #提高速度可改为no

MaxStartups                                                       #未认证连接最大值,默认值10

Banner /path/file

#以下可以限制可登录用户的办法:

AllowUsers user1 user2 user3

DenyUsers

AllowGroups

ssh服务的最佳实践

建议使用非默认端口

禁止使用protocol version 1

限制可登录用户

设定空闲会话超时时长

利用防火墙设置ssh访问策略仅监听特定的IP地址

基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12|

xargs

使用基于密钥的认证

禁止使用空密码

禁止root用户直接登录

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

经常分析日志

你可能感兴趣的:(第十四周作业)