1、安装open***

  这里不详细些如何安装部署open***了,具体部署参考前面的博文。


2、配置通过本地文件认证

#server.conf参数说明

auth-user-pass-verify  /etc/open***/checkpsw.sh via-env

client-cert-not-required      #表示不请求客户的证书,使用user/pass 认证

username-as-common-name       #表示客户端认证时候需要用户名

===============

cat >>/etc/open***/server.conf<

auth-user-pass-verify  /etc/open***/checkpsw.sh via-env

client-cert-not-required     

username-as-common-name      

#script-security 3  #注意2.0.6版本没有这个参数。如果是2.2.2版本的要多加这一个参数

eof


################################

################################

参数说明:

auth-user-pass-verify  /etc/open***/checkpsw.sh via-env

#通过后面的/etc/open***/checkpsw.sh命令和via-env的方法进行验证

#如果使用via-env方法,那么就通过用户名/密码进行验证,如果用via-file。那么就通过临时文件验证


client-cert-not-required

#不请求用户证书。使用用户名/密码验证

     

username-as-common-name  

#使用客户端提供用户名作为common Name


提示:/etc/open***/checkpsw.sh是shell脚本,用来接收***客户端的用户和密码,和本地文件进行对比验证,通过返回值确认是否可以连接×××,返回1就是失败,返回0是成功






################################

追加到server.conf里面

tail -3 /etc/open***/server.conf

具体配置文件如下

################################

[root@L××× open***]# cat server.conf 

local 10.0.0.3

port 52115

proto tcp

dev tun

ca /etc/open***/keys/ca.crt

cert /etc/open***/keys/server.crt

key /etc/open***/keys/server.key 

dh /etc/open***/keys/dh1024.pem

server 11.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.2.0 255.255.255.0"

client-to-client

keepalive 10 120

comp-lzo

persist-key

persist-tun

status /etc/open***/open***-status.log

verb 3

log /etc/open***/open***.log

####add

auth-user-pass-verify  /etc/open***/checkpsw.sh via-env

client-cert-not-required     

username-as-common-name      

[root@L××× open***]# 



###################################

获取checkpsw.sh脚本

wget -q -P /etc/open***/  http://open***.se/files/other/checkpsw.sh 

脚本内容如下:

#!/bin/sh 

########################################################### 

# checkpsw.sh (C) 2004 Mathias Sundman  

# This script will authenticate Open××× 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/open***/psw-file"

LOG_FILE="/var/log/open***-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 +x /etc/open***/checkpsw.sh

ls -l /etc/open***/checkpsw.sh

#######################################

创建密码文件

cat >>/etc/open***/psw-file<

oldboy 111111

test  111111      

eof


chmod 400 /etc/open***/psw-file


修改客户端配置文件

注释掉 

;cert gao.crt  

;key  gao.key

增加询问用户名和密码    

auth-user-pass

修改后的配置文件

##################################

client

dev tun

proto tcp

remote 10.0.0.4 52115     #这里是服务端的IP和***服务的端口

resolv-retry infinite

nobind

persist-key

persist-tun

ns-cert-type server

ca ca.crt                 #这里是当前用户的ca证书

#cert gao.crt           #这里是当前用户的ca证书

#key gao.key              #这里是当前用户的ca证书

comp-lzo

verb 3

auth-user-pass


########################################


用客户端登录即可。注意有些下载的checkpsw.sh 不可用,可以用上面的