这是一篇没什么技术含量的文章,也许对某些学校,公司有帮助(学校C段为准)
我们学校网络架构是全校C段互通,但是可恶的学校与电信合作,把宿舍楼网段必须登陆天翼校园(得买手机交月租和上网费,坑!),把教学楼,老师办公室等网段解放,同时,也鉴于VPN服务器常常被一些自认为电脑很厉害的半桶水技术的逗B常常把2003的路由和远程访问PPTP VPN给弄坏[他们弄是为了想弄个vpn上网,但是技术不行弄坏了](尼玛,撸着撸着,那男的准备插进去的时候卡着断网了,很火大的你知道不!),所以我决定弃用系统原生VPN,转用OpenVpn。
好了,话就扯到这里,本人是个电脑白痴,没什么技术含量,在此谢过!
1.安装不说了,这里不用教,另外最好把图中框着的打个勾。
安装完后要求装驱动,直装好了,接下来开始建立证书。
2.在此之前,得先初始化,如下图,按顺序执行
可以在安装目录里的easy-rsa文件夹建一个启动cmd的bat文件(我是安装在默认的地方C:Program FilesOpenVPNeasy-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-rsakeys中看到我们刚才生成的证书了,我这里列一个服务端要用到的文件和客户端用到的文件
服务端用到的文件:
1 |
ca.crt |
2 |
ca.key |
3 |
dh1024.pem |
4 |
server.crt |
5 |
server.key |
6 |
server.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文件夹中,如下图。
8.启动OpenVpn服务
启动后,客户端中启动OpenVpn Gui版,然后右键点击Connect,会进行连接(当然,得先看看你的客户端能不能连接服务端),如下图
连接成功后,会隐藏连接窗口并提示
至此,OpenVpn配置完成!
但是!如果以这样的方式配置的话,你会发现,连接成功,却什么数据都没发送和接收,其实,以我们现在所配置的,仅仅是提供客户端与客户端之间的通讯,并没有做到NAT功能,所以,如果以这样,是不能共享上网的,接下来,配置NAT,这里要依赖到系统的地址与端口转发功能和虚埃路由功能。
9.NAT配置共享上网
要地址转换,要有几个选决条件
1).服务端开启了虚拟路由
2).服务端开启了NAT
3).OpenVpn服务端开启地址转发功能
第一步。开启服务器虚拟路由功能(如果之前开启了路由与远程访问的话,先禁用了)
打开注册表,HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
把IPEnableRouter项从0改为1(如果本来就是1的话,说明你以前开启过路由与远程访问的NAT功能了)
第二步。打开CMD,执行netsh如下图
完成对本地连接的转换设置
第三步,配置server.ovpn文件
把图中的push "redirect-gateway def1 bypass-dhcp"的注释去掉(这里重要,不开启的话,怎么配NAT都不会生效的)
第四步,把服务中的“OpenVPN Service”和“Routing and Remote Access”服务设为“自动”
第五步,重启服务器,至此,NAT共享上网设置完成!
本文始发于微信公众号(T00ls):OpenVpn配置与NAT共享上网
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论