Centos6.5 伺服器配置OpenVPN使用賬號/密碼方式驗證登入
阿新 • • 發佈:2019-02-20
一:在開始之前請先配置配置好openvpn伺服器和客戶端,可參考以下安裝文件!
http://blog.csdn.net/llq_200/article/details/74980266
二:修改openvpn服務主配置檔案,新增如下內容;如果加上client-cert-not-required則代表只使用使用者名稱密碼方式驗證登入,如果不加,則代表需要證書和使用者名稱密碼雙重驗證登入!
# tail -3 /etc/openvpn/server.conf
auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env
client-cert-not-required
username-as-common-name #使用客戶提供的UserName作為Common Name
script-security 4 #加入指令碼處理,如用密碼驗證
三:下載驗證使用者登入指令碼並進行相應的修改,主要改PASSFILE和LOG_FILE兩個變數
許可權設定為:-rwxr--r-- (744) 所有者:nobody chown nobody:nobody checkpsw.sh #需要先cd到該目錄- # cd /etc/openvpn/checkpsw.sh
- # wget http://openvpn.se/files/other/checkpsw.sh
- # chmod +x checkpsw.sh
- # cat checkpsw.sh
- #!/bin/sh
- ###########################################################
- # checkpsw.sh (C) 2004 Mathias Sundman <mathias@openvpn.se>
- #
- # 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
四:準備使用者名稱和密碼認證檔案,使用者名稱和密碼用空格隔開,同時確保openvpn啟動使用者可讀取該檔案
- # cat psw-file
- lilunqing 123456
- # chmod 400 psw-file
- # chown nobody.nobody psw-file
五:修改客戶端配置檔案
註釋掉
;cert client1.crt
;key client1.key
#增加密碼驗證後,客戶端只需包含ca.crt的配置檔案
#增加詢問使用者名稱和密碼
auth-user-pass
六:修改客戶端配置檔案後重啟服務端。
- service openvpn restart #啟動openvpn的命令
七:測試,若輸入錯誤的使用者名稱或密碼,則提示重新輸入使用者名稱和密碼,嘗試3次後中斷;
#tail -n 100 -f openvpn-password.log