openvpn撤销

版权声明:哈哈哈,如有转载请标明出处哟~~~ https://blog.csdn.net/qq_33633013/article/details/81912826

openvpn客户端撤销流程

(1)/opt/openvpn2017/server/easyrsa3路径下有easyrsa脚本,可以用来撤销openvpn客户端,具体可查看easyrsa脚本或者使用./easyrsa –help查看
(2)到/opt/openvpn2017/server/easyrsa3使用./easyrsa revoke ${hospital_id},此时只是更新index.txt下数据库表示为R(注销),但经实践后发现部署标志为R的客户端,仍可以正常连接服务端。
(3)在/opt/openvpn2017/server/easyrsa3/pki中找到crl.pem,将该文件的绝对路径配置到server.conf中。
(3)使用./easyrsa gen-crl更新crl.pem中内容,被撤销客户端无法正常连接。

问题总结

(1)使用./easyrsa revoke ${id}撤销后,数据库中显示已撤销,但仍可以连上服务端
解决方法:在server.conf中添加配置crl-verify /opt/openvpn2017/server/easyrsa3/pki/crl.pem,并使用./easyrsa gen-crl更新crl.pem文件
(2)服务端日志报错,无法读取crl.pem内容,但使用用户为root,查看属性为有查看等权限
解决方法:脚本中强制修改权限为666

index.txt文件

可理解为openvpn 客户端的数据库,所有生成的openvpn 客户端包括可用的以及注销的都会在这里看到记录。文件中通过第一列标志识别是否为注销状态,V为可用,R为注销。

这里写图片描述

在openvpn服务端配置文件新增配置:

crl-verify /opt/openvpn2017/server/easyrsa3/pki/crl.pem
说明:该文件为吊销证书的名单,配合openvpn index.txt(可以理解为openvpn客户端的数据库)识别客户端是否可用。若未在配置文件中配置该行,则即使使用指令注销客户端后仍可以正常连接。

这里写图片描述

这里写图片描述

脚本展示

撤销证书脚本
#!/bin/bash
#revoke crt

path=`pwd` #/opt/openvpn2017
easyRsa_path="server/easyrsa3"
hospitalId=$1

#判断参数个数
if [ $# != 1 ];then
    echo "please enter hosptal_id" && exit 1
fi

cd ${path}/$easyRsa_path
#执行撤销指令
expect<<EOF
spawn ./easyrsa revoke ${hospitalId}
expect {
    "*revocation:*" {
      send "yes\r"
      exp_continue
    }
    "*ca.key:*" {
      send "mytijian2017\r"
      exp_continue
    }
}
EOF

expect<<EOF
spawn ./easyrsa gen-crl
expect {
    "*ca.key:*" {
      send "mytijian2017\r"
      exp_continue
    }
}
EOF

cd pki/ && chmod 666 crl.pem

优点:

(1)根据id或用户名撤销证书,操作简单明了
(2)通过实现免密操作,即时生效

缺点:

(1)撤销客户端证书后,对服务端下ccd中的配置以及其他配置未做处理,脚本待完善
(2)未对客户端ip做回收

猜你喜欢

转载自blog.csdn.net/qq_33633013/article/details/81912826