一、开篇立论= =..
上次说到博主在电脑上搭建了代理服务器来绕过天翼客户端的共享限制,然而经过实际测试还不够完美,所以本着生命不息,折腾不止的精神,我又开始研究搭建vpn服务器= =... (上次的博文:win10搭建代理服务器实现绕过校园网的共享限制--从入门到放弃)
不得不说,这是一个痛苦的过程... 毕竟之前没有在Windows上倒腾过服务器,忍不住说一句= = Windows真不适合弄服务器,T T.. 然而别无选择啊,天翼客户端只有Linux版本的!
二、概念介绍
虚拟专用网VPN(virt ual private network)是在公共网络中建立的安全网络连接,这个网络连接和普通意义上的网络连接不同之处在于,它采用了专有的隧道协议,实现了数据的加密和完整性的检验、用户的身份认证,从而保证了信息在传输中不被偷看、篡改、复制,从网络连接的安全性角度来看,就类似于再公共网络中建立了一个专线网络一样,只补过这个专线网络是逻辑上的而不是物理的所以称为虚拟专用网。VPN系统的结构图1所示,包括VPN服务器,VPN客户机和隧道。由于使用Internet进行传输相对于租用专线来说,费用极为低廉,所以VPN的出现使企业通过Internet既安全又经济的传输私有的机密信息成为可能。
- 博主使用的VPN服务器软件是OpenVPN,OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,最早由James Yonan编写。OpenVPN允许创建的VPN使用公开密钥、电子证书、或者用户名/密码来进行身份验证。(附OpenVPN软件下载:openvpn-install-2.3.11-I601-x86_64.exe )
- 其他要用到的还有Windows自带的端口转发工具netsh,微软Windows的netsh是一个命令行脚本实用工具。使用netsh工具 ,可以查看或更改本地计算机或远程计算机的网络配置。不仅可以在本地计算机上运行这些命令,而且可以在网络上的远程计算机上运行。(后面会发现然并卵)
三、操作步骤概览
1.安装OpenVPN,实现内网服务器和云服务器变为一个局域网(a.b.c.d.e.f.g 在云服务器完成,h 在内网服务器完成)
a.云服务器安装OpenVPN;
b.初始化配置;
c.生成根CA;
d.生成dh1024.pem文件;
e.生成服务器端证书、客户端证书和TA证书;(以上cmd命令必须在一个cmd窗口完成)
f.对服务器端和客户端配置文件文件进行配置;
g.配置服务器端,为客户端连接做准备;
h.配置客户端,连接服务器端,使内网服务器和云服务器变为一个局域网;
2.配置端口转发,实现内网服务器对外网的发布
四、步骤内容
1.安装OpenVPN,实现内网服务器和云服务器变为一个局域网。
a.云服务器安装OpenVPN
双击openvpn-install-2.3.11-I601-x86_64.exe开始安装:
安装完毕后,打开 控制面板->网络和 Internet->网络和共享中心->更改适配器设置
出现虚拟网卡为TAP-Windows Adapter V9的新本地连接,将其改名为OpenVPN。
(注:如果没有出现新的本地连接,请双击C:\Program Files\TAP-Windows\bin目录下的addtap.bat 文件,来手动添加一个)
b.初始化配置
(一)使用写字板打开 OpenVPN安装目录\easy-rsa\vars.bat.sample 文件容(最好用写字板打开,以免记事本打开会破坏文档格式),如下:
注:上面文件信息可以不予更改。但是,由于稍后给客户端生成对应加密证书和私钥时,程序会要求我们输入一些注册信息。如果你需要配置多个客户端,并且许多信息都相同(比如国家、省市、地址、公司名称等)你还可以修改vars.bat.sample文件后面的一些相关变量的默认值,这样在稍后生成客户端证书的时候,如果该信息项不输入就会采用默认值。
(二)运行DOS命令,初始化执行环境。
打开 %OpenVPN的安装目录%\easy-rsa 目录,按住 Shift + 右键 选择 在此处打开命令窗口 ,
然后依次输入并执行以下命令:
init-config(初始化配置,将vars.bat.sample文件的内容复制到vars.bat。实际上,你也可以直接双击执行easy-rsa目录下的init-config.bat文件来代替这一步。) vars(设置相应的局部环境变量,就是我们在vars.bat.sample文件中设置的内容) clean-all(相关设置和清理工作) |
c.生成根证书CA:build-ca
如上图所示,在build-ca的时候需要输入一些注册信息。在输入信息的时候,如果你不输入任何信息,就表示采用默认值(前面[]中的内容就是默认值);如果你输入 .(点号) ,则表示当前信息项留空白。值得注意的是,上图中紫色框中的OpenVPN_CA是证书的通用名称(Common Name),相当于我们常说的账号,你也可以自行输入其他名称。
d.生成dh1024.pem文件(创建迪菲·赫尔曼密钥):build-dh
迪菲·赫尔曼密钥交换(Diffie–Hellman key exchange,简称「D–H」) 是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。
e.生成服务器端证书、客户端证书和TA证书
(一)生成服务端证书:build-key-server server
如上图所示,命令中的参数server指的是生成的证书文件名称,你可以按照自己的需要进行修改,不过后面的Common Name也应保持一致。第三个红色矩形框中是输入的密码,你也可以根据意愿自行输入。最后程序会询问你是否注册并提交证书,两次均输入y即可。
(二)生成客户端证书:build-key CdtsmClient
如上图所示,命令中的参数client表示生成的证书文件名称,你可以按照自己的需要进行修改,不过后面的Common Name也应保持一致。第三个红色矩形框中是输入的密码,你也可以根据意愿自行输入。最后程序会询问你是否注册并提交证书,两次均输入y即可。
如果你想创建多个不同的客户端证书,只需要重复此步骤即可。切记,Common Name不要重复,这是OpenVPN用来区分不同客户端的关键所在。
(三)生成TA证书:openvpn --genkey --secret keys/ta.key
这一步其实是可选操作,生成的ta.key主要用于防御DoS、UDP淹没等恶意攻击。命令中的第3个参数keys/ta