一、背景
原使用win2003配置的”路由和远程访问”×××功能,采用PPTP协议连接(整体还是蛮稳定的),但人员在一些酒店、图书馆、美国网络(comcas)等网络环境连接不了,查阅了PPTP的资料,连接不了原因可能需要防火墙限制或者ISP服务商不支持相关端口协议,因此急需部署可以穿透防火墙或者限制的OPEN×××,以求解决两地网络资源交流。
二、配置环境
1. 网络平台
服务器单网卡:192.168.1.10,客户机:拨号上网连接
访问要求:客户端连接后,允许访问内网段:192.168.1.0的资源。
2. 软件平台
服务器:WIN SERVER2008 & open***-2.2.0-install.exe 下载地址:
http://down.51cto.com/data/435328
客户端:WIN7 bit64 英文版或者XP & open***-2.2.3-install.exe下载地址
http://down.51cto.com/data/432452
三、安装与配置
第一步:安装open***
这一部分是服务端跟客户端都要做的工作,操作完全相同。
双击安装,点击NEXT,I Agree,NEXT之后开始选择安装路径,我手动修改为C:\Program Files\Open××× ,点击 Install 开始安装,安装过程中,弹出硬件安装窗口,点击安装虚拟网卡。点击 next,Finish 完成安装。
第二步: ×××服务端配置
说明:架设OPEN×××服务器,服务器方面做的工作比较多,客户端相对来说就比较简单。
服务器采用RSA证书和密钥验证方式对客户端进行验证,默认情况下证书和用户是一对一的,多个用户使不能使用同一证书。所以首先要做的工作就是证书的制作。
在进行操作之前,首先进行初始化工作:
(1) 进入C:\Program Files\OPEN×××\easy-rsa\复制 “vars.bat.sample”文件并用记事本打开另存命名为“vars.bat” 一定要使其变为“.bat”批处理文件格式(开始我在这载了跟头,因为WIN2008用记事本打开另存为时,我没有选择保存类型为“所以文件”)。
用记事本打开新建的“vars.bat”文件,修改以下部分(根据自身情况改,也可以不修改)
set HOME=%ProgramFiles%\Open×××\easy-rsa
set KEY_COUNTRY=US
set KEY_PROVINCE=CA
set KEY_CITY=SanFrancisco
set KEY_ORG=FortFunston
set KEY_EMAIL=mail@domain.com
改为:
set HOME=C:\Program Files\OPEN×××\easy-rsa
set KEY_COUNTRY=CN #(国家)
set KEY_PROVINCE=JS #(省份)
set KEY_CITY=SZ #(城市)
set KEY_ORG=163.com #(组织)
set KEY_EMAIL=mgjglg@163.com #(邮件地址)
上面#开始的是注释,请不要写到文件中。
打开命令提示符:
开始-->运行...-->键入cmd,回车,进入命令提示符
或者 开始-->程序-->附件-->命令提示符
(2) 进入C:\Program Files\open***\easy-rsa目录下:
命令如下:
cd C:\Program Files\open***\easy-rsa
init-config #初始化
vars #使修改的变量生效
clean-all #清空KEYS/目录文件
上面是初始化工作,以后,在进行证书制作工作时,仍旧需要进行初始化,但只需要进入open***\easy-rsa目录,运行vars就可以了,不需要上面那些步骤了。
(3) 下面开始证书的制作(一步步来):
说明:出现Common Name (eg, your name or your server's hostname)时输入的名字不要重复,其它可以随意填写(包括提示的密码)。以下生成的密钥均存放在C:\Program Files\open***\easy\rsa\keys目录下。
1. build-ca #生成Root CA证书,用于签发Server和Client证书,需保护好keys/ca.key文件。
出现Organizational Unit Name (eg, section) []:输入neupharma 出现“Common Name (eg, your name or your server's hostname) []:输入neupharma
别的默认直接回车就可以。
2. build-dh #生成 Diffie Hellman加密参数 得到dh1024.pem文件
3. open*** --genkey --secret keys/ta.key #生成ta.key文件
4. build-key-server server #生成服务器证书
出现Organizational Unit Name (eg, section) []:输入neupharma
出现Organizational Unit Name (eg, section) []:输入neupharma
出现“Common Name (eg, your name or your server's hostname) []:输入server
出现:“Certificate is to be certified until Aug 17 08:30:49 2017 GMT (3650 days)
Sign the certificate? [y/n]:选 y(一共有两次,别的不用管回车就可以)
5. build-key client1 #生成要颁发给客户端的证书
出现:“Common Name (eg, your name or your server's hostname) []:输入client1
出现:“Certificate is to be certified until Aug 17 08:33:36 2017 GMT (3650 days)
Sign the certificate? [y/n]:选 y(一共有两次,别的不用管回车就可以)
若还有其它客户端,继续执行命令build-key 名字(“名字”不要重复)
(4) 服务器端的SERVER配置文件
在C:\Program Files\Open×××\sample-config文件夹下:
我的server.o***启用的配置条目如下,其它默认:
port 1194 #申明使用的端口,默认1194
proto udp #申明使用的协议,默认使用UDP,如果使用HTTP proxy,必须使用TCP协议
dev tap #申明使用的设备可选tap和tun,tap是二层设备,支持链路层协议,win下必须设为tap tun是ip层的点对点协议
ca ca.crt #Open×××使用的ROOT CA,使用build-ca生成的,用于验证客户是证书是否合法
cert server.csrt #Server使用的证书文件
key server.key #Server使用的证书对应的key,注意文件的权限,防止被盗
dh dh1024.pem
server 10.8.0.0 255.255.255.0 #指定Open×××服务器产生的虚拟ip 和 子网掩码
ifconfig-pool-persist ipp.txt
push "route 10.8.0.0 255.255.255.0" #客户连接成功后自动加入路由信息到客户机中,使其能访问相应网段的机子
push "route 192.168.1.0 255.255.255.0" #客户连接成功后自动加入路由信息到客户机中,使其能访问相应网段的机子
push "dhcp-option DNS 8.8.8.8" #向客户端发送DNS
client-to-client #如果可以让××× Client之间相互访问直接通过open***程序转发, 不用发送到tun或者tap设备后重新转发,优化Client to Client的访问效率
keepalive 10 120
tls-auth ta.key 0 #This file is secret
comp-lzo
max-clients 10
user nobody
group nobody
persist-key
persist-tun
status open***-status.log
verb 3
把配置文件server.o***复制到C:\Program Files\Open×××\config目录下,把C:\Program Files\Open×××\easy-rsa\keys目录下的ca.crt、ca.key、Server.crt、Server.csr、Server.key、dh1024.pem、ta.key 复制到C:\Program Files\Open×××\config目录下,到此server端的配置完成,可以启动server了,如果需要服务器启动后自动运行,修改“控制面板”下面的“管理工具”下面的“服务”把Open×××设置成自动启动。打开桌面的图标,并右击任务栏右下角产生图标,点击connect进行连接。表示启动,表示连接中,表示连接成功。
第三步: ×××客户端配置
客户端的配置文件也在C:\Program Files\Open×××\sample-config目录
我的client.o***启用的配置条目如下,其它默认:
Client
dev tap
proto udp # 使用的通讯协议,与Server严格一致
remote 58.30.12.*** 2011 #此处为OPEN×××的外网IP亦可是域名地址, OPEN×××服务器的本地地址:192.168.1.10和端口号:2011需在路由器里做映射
remote-random # 随机选择一个Server连接,否则按照顺序从上到下依次连接
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca ca.crt
cert xxx.crt #xxx在服务器产生的相应客户端密钥文件名 如:上头产生的client1
key xxx.key # xxx在服务器产生的相应客户端密钥文件名如:上头产生的client1
ns-cert-type server
tls-auth ta.key 1
comp-lzo
verb 3
把配置文件client.o***复制到客户端机器的C:\Program Files\Open×××\config目录下,并且把服务器C:\Program Files\Open×××\easy-rsa\keys目录下的CdtsmClient.crt、CdtsmClient.csr、CdtsmClient.key、ca.key、ca.crt、ta.key 文件一起复制到客户端机器的C:\Program Files\Open×××\config 目录下(以上文件由服务器端生成,客户端需要向服务器端索取这七个文件)
三、重要提示
为了使客户端连接后能访问内网的资源,必须把server2008操作系统的网卡“共享”。共享,提前是有两个及以上网卡,共享访问内网才有效。 如图共享设置及结果
(在此我载了跟头,花了1天时才测试出来,我想使用WINDOWS的“路由及远程访问”进行NAT转换也应该可以实现内容访问)。
四、吊销客户端证书
当客户端证书被盗或丢失时,必须吊销它的证书,以保障安全。
运行CMD,执行命令
cd C:\Program Files\open***\easy-rsa
vars
revoke-full client1 (client1 为证书名)
注销完成后,client1 用户的证书吊销,该证书将无法再登录×××。 成功注销某个证书之后,可以打开 keys/index.txt 文件,可以看到被注销的证书前面, 已标记为R。
五、总结
连接成功后,想要访问内网资源,要有以下条件:
1. PING得通,如根据我配置的open***服务器的虚拟地址10.8.0.1。
2. Open***配置文件中要有
push "route 10.8.0.0 255.255.255.0"
push "route 192.168.1.0 255.255.255.0"
等等想允许客户端访问的网段。
3. 服务器对外的本地连接要进行共享设置。
4. Win7客户端成功连接后,能ping通open***的服务器地址(10.8.0.1),但不能访问其它内网资源,查看产生的连接日志,有route加载error提示,是因为win7系统下运行route.exe要系统管理员权限。因此,不能自动加载路由(192.168.1.0),我们第一次使用时需要手动操作以下两步,以后就可以直接访问了。或者也可以在打开桌面的OPEN×××图标时,右击图标以“Run as administrator”运行,这样就不用以下操作了,直接连接即可。
第一步:以“run as administrator”方法运行cmd ,如下图:
第二步:输入 route -p add 192.168.1.0 mask 255.255.255.0 10.8.0.1 回车就可以了,如下图:
转载于:https://blog.51cto.com/1598380/898743