# ! /bin/bash set -e OVPN_USER_KEYS_DIR=/etc/openvpn/client/keys EASY_RSA_DIR=/etc/openvpn/easy-rsa/ PKI_DIR=$EASY_RSA_DIR/pki for user in "$@" do if [ -d "$OVPN_USER_KEYS_DIR/$user" ]; then rm -rf $OVPN_USER_KEYS_DIR/$user rm -rf $PKI_DIR/reqs/$user.req sed -i '/'"$user"'/d' $PKI_DIR/index.txt fi cd $EASY_RSA_DIR # ⽣成客户端SSL证书⽂件 ./easyrsa build-client-full $user nopass # 整理下⽣成的⽂件 mkdir -p $OVPN_USER_KEYS_DIR/$user cp $PKI_DIR/ca.crt $OVPN_USER_KEYS_DIR/$user/ # CA 根证书 cp $PKI_DIR/issued/$user.crt $OVPN_USER_KEYS_DIR/$user/ # 客户端证书 cp $PKI_DIR/private/$user.key $OVPN_USER_KEYS_DIR/$user/ # 客户端证书密 钥 cp /etc/openvpn/client/sample.ovpn $OVPN_USER_KEYS_DIR/$user/$user.ovp n # 客户端配置⽂件 sed -i 's/client.crt/'"$user".crt'/g' $OVPN_USER_KEYS_DIR/$user/$user. ovpn sed -i 's/client.key/'"$user".key'/g' $OVPN_USER_KEYS_DIR/$user/$user. ovpn cp $EASY_RSA_DIR/ta.key $OVPN_USER_KEYS_DIR/$user/ta.key # auth-tls ⽂ 件 cd $OVPN_USER_KEYS_DIR zip -r $user.zip $user done exit 0
执⾏上⾯脚本创建⼀个⽤户: sh ovpn_user.sh ,改为你要添加的⽤户名,会在 /etc/openvpn/client/keys ⽬录下⽣成以⽤户名命名的 zip 打包⽂件,将该压缩包下载到本地解 压,即可加载到客户端使⽤。
删除⼀个 OpenVPN ⽤户 创建删除⽤户的脚本⽂件
vim del_ovpn_user.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
# ! /bin/bash set -e OVPN_USER_KEYS_DIR=/etc/openvpn/client/keys EASY_RSA_DIR=/etc/openvpn/easy-rsa/ for user in "$@" do cd $EASY_RSA_DIR echo -e 'yes\n' | ./easyrsa revoke $user ./easyrsa gen-crl # 吊销掉证书后清理客户端相关⽂件 if [ -d "$OVPN_USER_KEYS_DIR/$user" ]; then rm -rf $OVPN_USER_KEYS_DIR/${user}* fi \cp /etc/openvpn/easy-rsa/pki/crl.pem /etc/openvpn/ systemctl restart openvpn@server done exit 0