2023年7月10日发(作者:)
win10搭建openvpn以及使⽤2020是不平凡的⼀年,全国上下都沉浸在抗击新冠状病毒的浪潮中。受疫情的影响,春节假期⽆限制延长,很多返⼯的⼈不能及时到岗,企业因此只能停⼯。为了降低损失,尤其是互联⽹/it类公司就需要及时开通远程办公,所以我研究了⼀下vpn⽹络的构建,好我们直接步⼊正题。⽹络拓扑公司电脑ip段192.168.0.0公司vpn服务分配的ip段10.9.0.0公司vpn服务⽹关端⼝1194,需要在出⼝(公⽹ip)路由器上做端⼝映射(我的是映射到192.168.91.45:1194)家⾥ip段10.12.0.0安装openvpn的证书制作⼯具我是在centerOS7上执⾏的证书制作。(为什么没直接选win10环境,⼤家也不要多问,直接⼲就是了。)在release上下载⼀个linux版本的(我使⽤的),解压到这⾥。/home/gary/easy-rsa⽣成CA⾸先先进⼊easyrsa的脚本⽬录:cd easy-rsa/easyrsa3然后将其中e的⽂件复制⼀份:cp e vars接着⽤⽂本编辑器打开vars⽂件:nano vars这个⽂件很长,包含了很多注释和说明,这些我们都不⽤管,直接翻到图中所⽰部分,然后按照⾃⼰的需求进⾏修改,但是不能留空,修改完成后保存⽂件。修改配置⽂件然后⽤下⾯的命令⽣成公钥体系,此外easyrsa还有⼀些其他命令和参数,有些参数下⾯还会⽤到:./easyrsa init-pki会⽣成如下的信息,这样就成功了:Note: using Easy-RSA configuration from: ./varsinit-pki complete; you may now create a CA or newly created PKI dir is: /home/gary/easy-rsa/easyrsa3/pki之后就是最后⼀步创建CA证书了,如果不想每次都输⼊⼀个密码,可以⽤nopass参数来取消密码。在输出中还会提⽰你输⼊CA的公共名称,直接默认即可,当然你想改也随意。./easyrsa build-ca nopass会⽣成如下的信息,这样⼀来就完成了:Note: using Easy-RSA configuration from: ./varsGenerating RSA private key, 2048 bit +++..............................................+++e is 65537 (0x010001)You are about to be asked to enter information that will be incorporatedinto your certificate you are about to enter is what is called a Distinguished Name or a are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Common Name (eg: your user, host, or server name) [Easy-RSA CA]:CA creation complete and you may now import and sign cert new CA certificate file for publishing is at:/home/gary/easy-rsa/easyrsa3/pki/这样⼀来,在pki和pki/private⽂件夹中会⽣成和⽂件,正是SSL证书所⽤的公私钥对。⽣成服务器证书和加密⽂件⽣成私钥⾸先输⼊下⾯的命令,这⾥的server是服务器的名称,可以修改,但是由于接下来好⼏处命令以及⽣成的⽂件都受这个名称影响,所以还是⽤默认的server省事⼀点:./easyrsa gen-req server nopass输出如下:Note: using Easy-RSA configuration from: ./varsGenerating a 2048 bit RSA +++...................................................................+++writing new private key to '/home/gary/easy-rsa/easyrsa3/pki/private/pofq'-----You are about to be asked to enter information that will be incorporatedinto your certificate you are about to enter is what is called a Distinguished Name or a are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Common Name (eg: your user, host, or server name) [server]:Keypair and certificate request completed. Your files are:req: /home/gary/easy-rsa/easyrsa3/pki/reqs/: /home/gary/easy-rsa/easyrsa3/pki/private/这样就⽣成了服务器私钥和证书请求⽂件。然后将服务器私钥复制到openvpn配置⽂件⽬录下:sudo cp pki/private/ /etc/openvpn⽣成公钥由于我只有⼀台服务器,同时充当CA服务器和VPN服务器,所以需要⾃⼰给⾃⼰签发,会产⽣同名⽂件,所以⾸先先把服务请求⽂件重命名⼀下:mv pki/reqs/ pki/reqs/然后导⼊请求,这⾥的server是前⾯指定的服务器名称:./easyrsa import-req pki/reqs/ server成功之后,⽤下⾯的命令签发请求,注意这⾥的第⼀个server是请求类型,可以是client或者server,第⼆个server是前⾯指定的服务器名称:./easyrsa sign-req server server在这⼀步出了⼀点⼩问题,输出提⽰⽂件不存在,导致出现了部分失误,所以⽣成的⽂件被保存到了pki/issued⽬录下,不过后来全弄完我发现这个⼩错误不影响VPN连接,但是如果你运⾏的时候没有错误,记得改⼀下这⾥的⽂件路径。这样会⽣成⽂件,将它和⼀起复制到openvpn中:sudo cp pki/ pki/issued/ /etc/openvpn/⽣成加密⽂件然后⽣成Diffie-Hellman密钥⽂件,这会让VPN更加安全,不过⽣成过程可能需要⼏分钟时间:./easyrsa gen-dh等待⽣成完成之后,⽣成Diffie-Hellman签名:openvpn --genkey --secret 然后将⽣成的⼏个⽂件也复制给openvpn:sudo cp pki/ /etc/openvpn/这样⼀来,服务器端的所有⽂件就全部⽣成完毕,下⾯开始⽣成客户端所需⽂件。⽣成客户端证书和密钥对⾸先准备⼀个⽬录存放客户端⽂件:mkdir -p ~/client-configs/keys然后修改权限确保安全:sudo chmod -R 700 ~/client-configs然后⽣成客户端请求⽂件,考虑到可能会有⼏个客户端,所以这⾥叫client1,当然名称也可以修改:./easyrsa gen-req client1 nopass将其复制到存放⽬录中:cp pki/private/ ~/client-configs/keys/和前⾯⼀样,⾸先修改⼀下客户端请求⽂件的名称:mv pki/reqs/ pki/reqs/然后导⼊请求⽂件:./easyrsa import-req pki/reqs/ client1再签发请求:./easyrsa sign-req client client1这样会⽣成⽂件,最后将⼏个⽂件复制到存放⽬录中(这⾥注意⼀下⽂件路径,我前⾯出现错误,所以⽂件⽣成在issued⽂件夹中,如果你没错误记得改⼀下路径):cp pki/issued/ pki/ ~/client-configs/keys/这样,所有证书⽂件就准备就绪了。配置openvpn服务端设置服务端⽹络共享win10直接安装,在vpn安装⽬录根⽬录下新建config⽬录,新建,粘贴下⾯的配置,同时把上⾯⽣成的服务端证书也放进来(,,,,),双击运⾏vpn-gui程序(会看到是server模式启动,图标从黄变绿说明连接成功)#绑定宿主机本地iplocal 192.168.91.45port 1194# TCP or UDP server?proto udpexplicit-exit-notify 0dev tunca t -auth 0dh # 配置vpn⽹段server 10.9.0.0 255.255.255.0ifconfig-pool-persist # 为客户端打通全路由push "route 0.0.0.0 0.0.0.0"push "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 208.67.222.222"push "dhcp-option DNS 208.67.220.220"keepalive 10 120auth SHA256comp-lzomax-clients 100persist-keypersist-tunstatus b 3服务端的config⽬录配置openvpn客户端win10直接安装,在vpn安装⽬录根⽬录下新建config⽬录,新建,粘贴下⾯的配置,同时把上⾯⽣成的服务端证书也放进来(,,,),运⾏vpn(会看到是client模式启动,图标从黄变绿说明连接成功)clientdev tunproto udp#注意 这⾥的192.168.91.45为vpn服务宿主机的ip,⽽不是vpn服务的虚拟ipremote 192.168.91.45 1194resolv-retry infinitenobindpersist-keypersist-tunca t ote-cert-tls servertls-auth 1auth SHA256key-direction 1comp-lzoverb 3客户端上的config⽬录客户端连接成功后可以在 cmd 输⼊ ipconfig ,看到能获取到vpn⽹关分发的ip地址,同时也可以ping通vpn服务宿主机所能访问的全部⽹络。mac使⽤openvpn,使⽤tunnelblick(去github下载),和windows的客户端配置⼀样拿过来就可以⽤了。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688940984a186072.html
评论列表(0条)