
OPENVPN 简介:
OpenVPN是一款功能强大,可跨平台(支持Win 2000/XP/2003,2008, Linux, Mac OS X, Solaris, FreeBSD, NetBSD和OpenBSD)使用的SSL VPN服务器软件(具体说明见官方主页官方主页)。
open-2.1.1版
下载地址: http://open.net/release/open-2.1.1-install.exe
安装过程比较简单,跟着做就可以了,安装目录自己选,这一部分是服务端跟客户端都要做的工作,操作完全相同。
双击 open-2.1.1-install.exe进行安装,点击NEXT,I Agree,NEXT之后开始选择安装路径,我手动修改为D:\\Tools\\OpenVPN 。
点击 Install 开始安装,安装过程中,弹出硬件安装窗口,点击仍然继续,安装虚拟网卡。点击 next,Finish 完成安装。
一、服务器端配置:
说明: 架设OPENVPN服务器,服务器方面做的工作比较多,客户端相对来说就比较简单。
服务器采用RSA证书和密钥验证方式对客户端进行验证,默认情况下证书和用户是一对一的,多个用户使用同一证书会被踢出。所以首先要做的工作就是证书的制作。
在进行操作之前,首先进行初始化工作:
修改D:\\Tools\\OpenVPN \\easy-rsa\\vars.bat.sample的以下部分:
set HOME=%ProgramFiles%\\OpenVPN\\easy-rsa
set KEY_CONFIG=openssl.cnf
set KEY_COUNTRY=US
set KEY_PROVINCE=CA
set KEY_CITY=SanFrancisco
set KEY_ORG=FortFunston
set KEY_EMAIL=mail@domain.com
(请根据自身情况修改)改为
set HOME=D:\\Tools\\OpenVPN\\easy-rsa
set KEY_CONFIG=D:\\Tools\\OpenVPN\\easy-rsa\\openssl.cnf
set KEY_COUNTRY=CN #(国家)
set KEY_PROVINCE=GuangDong #(省份)
set KEY_CITY=ShenZhen #(城市)
set KEY_ORG=oovc.com #(组织)
set KEY_EMAIL=admin@oovc.com #(邮件地址)
上面#开始的是注释,请不要写到文件中。
进入命令行模式 (开始--运行--cmd)
进入open\\easy-rsa目录 (比如:cd D:\\Tools\\OpenVPN\\easy-rsa)
接下来的命令如下:
init-config
vars
clean-all
上面是初始化工作,以后,在进行证书制作工作时,仍旧需要进行初始化,
但只需要进入open\\easy-rsa目录,运行vars就可以了,不需要上面那些
步骤了 。
下面开始证书的制作:(注意各证书的Common Name不能相同)
build-ca #这个命令用于创建根证书
Country Name (2 letter code) [CN]:
State or Province Name (full name) [AnHui]:
Locality Name (eg, city) [HeFei]:
organization Name (eg, company) [lizhenbao]:
organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:rootcr
Email Address [aaa@aa.com]:
build-dh
build-key-server server #创建服务器证书,server为机器名
Country Name (2 letter code) [CN]:
State or Province Name (full name) [AnHui]:
Locality Name (eg, city) [HeFei]:
organization Name (eg, company) [lizhenbao]:
organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:server
Email Address [lizhenbao@gmail.com]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:password
An optional company name []:
build-key client #创建客户端证书,client为用户名
Country Name (2 letter code) [CN]:
State or Province Name (full name) [AnHui]:
Locality Name (eg, city) [HeFei]:
organization Name (eg, company) [lizhenbao]:
organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:client
Email Address [lizhenbao@gmail.com]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:password
An optional company name []:
open --genkey --secret keys/ta.key
将生成的keys文件夹内的ca.crt,dh1024.pem,server.crt,server.key,ta.key复制到 OpenVPN\\config目录下
新建server.o于config目录下,内容示例如下:
port 443
#端口号,根据需要,自行修改,如果是用http代理连接,请不要修改
proto tcp-server
dev tun
server 10.8.0.0 255.255.255.0
# 虚拟局域网网段设置,请根据需要自行修改
keepalive 20 180
ca D:\\\\Tools\\\\OPENVPN\\\\config\\\\ca.crt
#CA证书存放位置,请根据实际情况自行修改
cert D:\\\\Tools\\\\OPENVPN\\\\config\\\\server.crt
#服务器证书存放位置,请根据实际情况自行修改
key D:\\\\Tools\\\\OPENVPN\\\\config\\\\server.key
#服务器密钥存放位置,请根据实际情况自行修改
dh D:\\\\Tools\\\\OPENVPN\\\\config\\\\dh1024.pem)
#dh1024.pem存放位置,请根据实际情况自行修改
push "redirect-gateway def1"
push "dhcp-option DNS 202.96.128.68"
#DNS,请根据实际情况自行修改
mode server
tls-server
status D:\\\\Tools\\\\OPENVPN\\\\log\\\\open-status.log
#LOG记录文件存放位置,请根据实际情况自行修改
comp-lzo
verb 4
至此OpenVpn服务器配置成功。如果想要OpenVpn服务器自动启动,则找到OpenVpn服务,将其启动方式设置为“自动”。
二、客户端设置:
在客户端安装完成之后,需要将 ca.crt client.crt client.key 这三个文件拷贝到 open\\config目录下,这三个文件由服务端生成,所以,连接谁的服务器,就需要跟谁索取这三个文件
然后,编辑一个 client.o的配置文件存放到 open\\config目录下,客户端就可以进行连接了。
客户端文件示例:(client.o)
client
dev tun
proto tcp-client
remote www.oovc.com 443
#服务器域名/IP 和端口
resolv-retry infinite
nobind
http-proxy 192.168.1.1 80
#这里填入你的代理服务器地址和端口
mute-replay-warnings
ca D:\\\\Tools\\\\OPENVPN\\\\config\\\\ca.crt
cert D:\\\\Tools\\\\OPENVPN\\\\config\\\\client.crt
#这里改成每个客户端相应的证书
key D:\\\\Tools\\\\OPENVPN\\\\config\\\\client.key
#这里改成每个客户端相应的密钥
status D:\\\\Tools\\\\OPENVPN\\\\config\\\\log\\\\open-status.log
comp-lzo
verb 4
三、Open 服务器端发放证书方法
同样要在命令行模式下进入easy-rsa目录,而后命令如下:
vars
build-key username #其中username为用户名
以上文章来源:http://www.gemin.com.cn/article.asp?id=921
另附:我自己的服务端配置文件
local 192.168.8.130
port 7533
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
#CRL文件的申明,被吊销的证书链,这些证书将无法登录
;crl-verify crl.pem
;mode server
;tls-server
#是一条命令合集
server 192.168.100.0 255.255.255.0
#用于记录某个Client获得的IP地址
ifconfig-pool-persist ipp.txt
;push "route 0.0.0.0 0.0.0.0"
push "redirect-gateway def1"
push "dhcp-option DNS 202.102.224.68"
client-to-client
keepalive 20 180
#HMAC防火墙,防止DOS攻击
tls-auth ta.key 0
#数据加密方式 none为不加密
cipher none
#是否压缩数据
comp-lzo
max-clients 50
verb 4
#日志记录
status open-status.log
#同样的错误信息最多输出多少次
mute 15
persist-key
persist-tun
客户端配置文件
client
dev tun
proto tcp
remote 218.28.14.67 7533
resolv-retry infinite
nobind
;http-proxy 10.0.0.172 80
mute-replay-warnings
ca ca.crt
cert zsq.crt #这里改成每个客户端相应的证书
key zsq.key #这里改成每个客户端相应的密钥
ns-cert-type server
# 和Server配置里一致,ta.key也一致,注意最后参数使用的是1
tls-auth ta.key 1
#数据加密方式
cipher none
comp-lzo
verb 4
status open-status.log
persist-key
persist-tun
