企业环境:公司运维分为有小王、小张、小狗,他们同使用一个vpn证书,突然小狗离职了,但是又不想让小狗连接,证书一吊销小王和小张他们都不能弄了。为了避免这种情况,我们给证书配置了账号和密码,每个人手里拿着不同的账号和密码。在连接openvpn的时候必须需要输入账号和密码; 这个时候小狗离职了 那我们把他的账号删除就可以啦;
------------------------------------------
一、配置服务端配置文件
1、在配置文件加入3行参数:
script-security 3 #允许使用自定义脚本
auth-user-pass-verify /etc/openvpn/check.sh via-env
username-as-common-name #用户密码登陆方式验证
2、创建脚本文件
cat /etc/openvpn/check.sh
#!/bin/sh
###########################################################
PASSFILE="/etc/openvpn/openvpnfile"
LOG_FILE="/var/log/openvpn-password.log"
TIME_STAMP=`date "+%Y-%m-%d %T"`
if [ ! -r "${PASSFILE}" ]; then
echo "${TIME_STAMP}: Could not open password file \"${PASSFILE}\" for reading." >> ${LOG_FILE}
exit 1
fi
CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`
if [ "${CORRECT_PASSWORD}" = "" ]; then
echo "${TIME_STAMP}: User does not exist: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}
exit 1
fi
if [ "${password}" = "${CORRECT_PASSWORD}" ]; then
echo "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE}
exit 0
fi
echo "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}
exit 1
3、给脚本文件进行授权(不给权限启动openvpn会报错)
chmod +x /etc/openvpn/check.sh
4、创建账号密码文件
第一列为账号,第二列为密码
[root@openvpn openvpn]# cat /etc/openvpn/openvpnfile
xiaogou xiaogou
xiaowang xiaowang
xiaozhang xiaozhang
5、重启openvpn
systemctl restart openvpn@server
二、配置openvpn客户端
1、打开openvpn的安装目录,编辑client.ovpn文件
2、在末尾添加参数
auth-user-pass
三、配置成功,测试连接
1、打开openvpn进行连接,下面提示让你输入账号和密码,那我们输入账号:xiaogou 密码:xiaogou
我这边已经连接成功,小狗离职后那我们在文件中把xiaogou 的一行删除就可以啦
有问题请加博主微信进行沟通!
全部评论