OpenVpn配置与NAT共享上网

2013-11-25 14:09:15 18 9508 1


这是一篇没什么技术含量的文章,也许对某些学校,公司有帮助(学校C段为准)
我们学校网络架构是全校C段互通,但是可恶的学校与电信合作,把宿舍楼网段必须登陆天翼校园(得买手机交月租和上网费,坑!),把教学楼,老师办公室等网段解放,同时,也鉴于VPN服务器常常被一些自认为电脑很厉害的半桶水技术的逗B常常把2003的路由和远程访问PPTP VPN给弄坏[他们弄是为了想弄个vpn上网,但是技术不行弄坏了](尼玛,撸着撸着,那男的准备插进去的时候卡着断网了,很火大的你知道不!),所以我决定弃用系统原生VPN,转用OpenVpn。
好了,话就扯到这里,本人是个电脑白痴,没什么技术含量,在此谢过!

[本次使用2.3.0版本的OpenVpn,下载地址在下面。]
1.安装不说了,这里不用教,另外最好把图中框着的打个勾。


安装完后要求装驱动,直装好了,接下来开始建立证书。
2.在此之前,得先初始化,如下图,按顺序执行
   可以在安装目录里的easy-rsa文件夹建一个启动cmd的bat文件(我是安装在默认的地方C:\Program Files\OpenVPN\easy-rsa),执行初奴化工作,如下图


这里面分别执行了init-config.bat,init-config.bat会自动把vars.bat.sample文件复制一扁(vars.bat文件是用于登记VPN的详细信息,个人喜欢填了,像我不喜欢的全部默认得了)

复制完后,执行刚生成的vars.bat,然后再执行clean-all.bat进行清理(不知道清理什么)

至此,初始化完成!


3.建立CA证书
继续执行build-ca.bat,出现要求输入的详细信息,如果为空,只要输入“.”即可(刚才那个vars初始化在这里起作用了,在下再也会起作用,所以上面的初始化操作不能忽略)
注意:Common Name 项一定要输入,这是这个ca证书的账号,除此之外可以全部输入点。


4.建立服务端的证书
CA证书为共同认证的证书,同时服务端也要生成属于服务端的证书,[同理,客户端也会生成证书,下面说到]。
执行build-key-server.bat server
前面的build-key-server.bat大家都明白,后面的server是建立服务端证书的名字,可以改,不过为了方便识别,就这样吧
如下图


图中画线部分除了命令,还要求你写详细信息的,同上面一样,我人懒,全部都输入"."了,不过有两个地方要注意,建立证书时,要求你输入账号和密码,图中第2,3个画线部分分别是账号,密码,其它输“.”就好了。
完成后它会问你是否顺便注册并写出证书,输入y注册就好了
建立服务端证书完成
5.建立迪菲·赫尔曼密钥(不知道是啥东西)
等待执行build-dh完成即可,如下图



6.建立客户站证书,[如果多台电脑登陆,就要建立多个证书了]
执行build-key client
与上面建立服务端证书一样,client是名字,随你怎么改,如下图



与上面也一样,要求你输入详细信息,我不说了,你懂的,另外注意的是,客户端中的Common Name是所有证书中唯一的,不能与服务端的Common Name名字相同,也不能与它其客户端证书的Common Name相同,我这里就建立我自己的
还有密码的设置,基本一样了
至此,客户端证书制作完成,可以在easy-rsa\keys中看到我们刚才生成的证书了,我这里列一个服务端要用到的文件和客户端用到的文件
服务端用到的文件:
ca.crt
ca.key
dh1024.pem
server.crt
server.key
server.ovpn(接下来说明)
客户端要用到的文件:
ca.crt
client.crt(相当于刚才生成的,我这里是tzming.crt)
client.key(相当于刚才生成的,我这里是tzming.key)
client.ovpn(接下来说明)
7.配置服务端的ovpn文件

OpenVpn是通过ovpn文件来断定自己是以服务端的形式启动还是以客户端形式启动,ovpn中也存在一些比如连接那个ip,那个端口,用什么协议连接这些信息
服务端的ovpn文件名叫:server.ovpn,可以在sample-config文件夹中找到模版,如下图有几样要注意的。


local IP地址,这里是定义单个ip允许连接,如果想什么ip都能连接的话,请在前面加“;”号把它注释了,不然的话,像我上图那样的话,只允许ip是192.168.5.25的机器才能连入(好像是)

port 1194,这里懂的了,自己喜欢吧(注意下面client.ovpn的同步更改)

proto tcp
proto udp
这里,看明白的了,就是用udp协议传送还是用tcp传送,我不会用udp,所以还是tcp吧,把udp禁了

dev tap
dev tun
这里是以用什么协议来启动,网上有人说,用温斗死,最好用tap协议,tun协义对linux比较好,所以我用了tap了



ca ca.crt
cert server.crt
key server.key
定义证书位置及名称,这里就是用到刚才我们生成的服务端证书了,看你刚才那个证书叫什么名字,就按个人不同作修改吧

dh dh1024.pem,还记得那个迪菲·赫尔曼密钥么,这个就是加密的位数,建议1024位够了不要改

server 10.8.0.0 255.255.255.0 ,vpn的虚拟ip地址池,自己定义吧,随便

ifconfig-pool-persist ipp.txt ,这里,是记录ip的意思,就是说,如果一台电脑连接进来,分配了个虚拟ip了,这个ip会记录,那下次再连接时会再次把先前分配的ip给回客户端,不用再分配了,而记录的文件是ipp.txt

至此,服务端配置完成了,其它的都可以不用动了(OpenVpn的默认配置做得真周到)

Now,配置客户端的ovpn文件了



client 定义OpenVpn使用客户端模式运行

dev tap
dev tun
这里要注意了,如果服务端的配置是tap的话,那这里也一定要配置为tap,不然就连不上了

proto tcp
proto udp
这里也是,如果服务端启用了tcp协议的话,这里也要使用tcp协议,必须相图

remote my-server-1 1194
remote my-server-2 1194
这里是设定客户端连接的服务端地址,只要开启一个就可以了,如果是我这里的话,我就会填写
remote 192.168.5.25 1194


这里和服务端说的一样,如果是我的情况的话,我就会填写为
ca ca.crt
cert tzming.crt
key tzming.key
至此,客户端的文件也配置完成了

接下来,把上面服务端所列出来的文件放到服务端的config文件夹中,把上面客户端所列出来的文件放到客户端的config文件夹中,如下图。

7.启动OpenVpn服务

启动后,客户端中启动OpenVpn Gui版,然后右键点击Connect,会进行连接(当然,得先看看你的客户端能不能连接服务端),如下图

连接成功后,会隐藏连接窗口并提示

至此,OpenVpn配置完成!

但是!如果以这样的方式配置的话,你会发现,连接成功,却什么数据都没发送和接收,其实,以我们现在所配置的,仅仅是提供客户端与客户端之间的通讯,并没有做到NAT功能,所以,如果以这样,是不能共享上网的,接下来,配置NAT,这里要依赖到系统的地址与端口转发功能和虚埃路由功能。

8.NAT配置共享上网
要地址转换,要有几个选决条件
1).服务端开启了虚拟路由
2).服务端开启了NAT
3).OpenVpn服务端开启地址转发功能

第一步。开启服务器虚拟路由功能(如果之前开启了路由与远程访问的话,先禁用了)
打开注册表,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
把IPEnableRouter项从0改为1(如果本来就是1的话,说明你以前开启过路由与远程访问的NAT功能了)

第二步。打开CMD,执行netsh如下图

add interface name="本地连接1" full (这个是接外网的本地连接)
add interface name="本地连接2" private (这个是OpenVpn的本地连接)
完成对本地连接的转换设置

第三步,配置server.ovpn文件




把图中的push "redirect-gateway def1 bypass-dhcp"的注释去掉(这里重要,不开启的话,怎么配NAT都不会生效的)

第四步,把服务中的“OpenVPN Service”和“Routing and Remote Access”服务设为“自动”

第五步,重启服务器,至此,NAT共享上网设置完成!

以下提供OpenVpn安装文件:
X86:

X64:


另外找出了一份和OpenVpn工作原理差不多的软件[VPN-X],方便操作,可是我在网上找了好久都没有破解版,有兴趣的牛牛们看能不能试试破解?
http://pan.baidu.com/s/126QPy

关于作者

tzming3篇文章272篇回复

评论18次

要评论?请先  登录  或  注册