OpenVPN 设置账号密码登录

2023年 5月 4日 56.6k 0

前面我们介绍了openvpn使用秘钥的方式登录,每次创建新用户的时候需要创建一个证书,并且需要将证书在发给使用的人员。个人觉得比较麻烦,特意查阅了一下openvpn配置账户密码登录的方式。
OpenVPN 设置账号密码登录
Linux
前面我们是使用openvpn 秘钥的方式登录,这种登录安全性比较高。但是运维操作起来比较麻烦,如果有ldap的也推荐使用ldap集成openvpn。但是这里我们偷个懒,通过设置账号密码的方式连接vpn

CentOS 7 搭建OpenVPN服务器

新闻联播老司机

  • 20年2月4日
  • 喜欢:1
  • 浏览:35.4k
  • 配置OpenVPN

    首先我们需要编写一个用户认证的脚本 (脚本是由openvpn官网提供的)

    vim /etc/openvpn/checkpsw.sh 
    #!/bin/sh
    ###########################################################
    # checkpsw.sh (C) 2004 Mathias Sundman 
    #
    # This script will authenticate OpenVPN users against
    # a plain text file. The passfile should simply contain
    # one row per user with the username first followed by
    # one or more space(s) or tab(s) and then the password.
    
    PASSFILE="/etc/openvpn/psw-file"
    LOG_FILE="/etc/openvpn/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
    

    接下来给脚本执行权限

    chmod 755 /etc/openvpn/checkpsw.sh
    

    现在我们配置用户密码文件

    cat /etc/openvpn/psw-file 
    abcdocker 123456
    abc 123456
    test test
    
    #前面为用户名,后面为密码。 中间使用空格分开
    

    接下来我们需要openvpn的server.conf

    cat >>/etc/openvpn/server.conf<<EOF
    script-security 3
    auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env    #指定用户认证脚本
    username-as-common-name
    verify-client-cert none
    EOF
    
    #在service.conf最后一行添加
    

    接下来我们需要修改client.ovpn

    client
    dev tun
    proto tcp
    remote 192.168.0.11 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    ca ca.crt
    ;cert cyh.crt      #注释
    ;key cyh.key      #注释
    tls-auth ta.key 1
    cipher AES-256-CBC
    comp-lzo
    verb 3
    auth-user-pass              #使用用户名密码登录openvpn服务器
    
    
    #主要是注释crt和key路径,以及添加一行auth-user-pass
    

    接下来我们重启一下openvpn即可

    [root@vpn ~]# ps -ef|grep openvpn
    root      54047  53844  0 14:38 pts/0    00:00:00 grep --color=auto openvpn
    [root@vpn ~]# /usr/local/openvpn/sbin/openvpn --daemon --config /etc/openvpn/server.conf
    

    然后我们导出client.ovpn,从新启动客户端就可以了
    image_1e06900l9kq7reu2djag63l9.png-60.2kB
    image_1e0690kmu1o8h1a64184g1kls87km.png-65.1kB
    本文转自:http://www.89cool.com/811.html

    相关文章:

    1. Kubernetes 1.14 二进制集群安装
    2. Shell 变量及函数讲解 [2]
    3. Kubenetes 1.13.5 集群二进制安装
    4. Kuerbernetes 1.11 集群二进制安装

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论