win10openvpn搭建与安卓客户端利用(仅用于内网穿透,不可非法利用) ...

打印 上一主题 下一主题

主题 503|帖子 503|积分 1509

        搭建背景:从网上相识到openvpn,在win10搭建的资料太少了,找了很久才找到一小部分,以是目前整理一下自己搭建的成功履历,盼望可以资助到别人,也记录一下备忘。家里是动态公网ip,利用了ddns服务,openvpn部署在win10电脑上。
自己利用安卓端的时间,发现不支持Tap模块,以是win10服务端利用了tun模块
名称IP
win10服务端192.168.0.14
win10 VPN服务端
10.8.0.1
安卓客户端10.8.0.2
首先,介绍一下openvpn的安装
下载地址:
天翼:
地址:https://cloud.189.cn/t/UFBF3eVF7bai
(访问码:bv0b)如果已失效,可利用下方云盘

夸克:
链接:https://pan.quark.cn/s/5aea9b16b72e
解压码:159753
不要在线解压,云盘对相关字眼管控严格,下载到本地解压,合法利用即可。
官网安装包下载地址(各系统版本):


  • https://openvpn.net/download-open-vpn/
    https://openvpn.net/download-open-vpn/
  • https://build.openvpn.net/downloads/releases/
    https://build.openvpn.net/downloads/releases/
   第三方安装包下载地址(各系统版本):https://www.techspot.com/downloads/5182-openvpn.html
  清华大学镜像地址(Linux版本) https://mirrors-i.tuna.tsinghua.edu.cn/linuxbrew-bottles/bottles/openvpn-2.4.9.x86_64_linux.bottle.tar.gz
  源码地址: https://github.com/OpenVPN/openvpn
  一、服务端部署前预备:


1、打开安装包进行安装:



2、选中第二个,自定义



3、选择全部的服务,都选择为安装很必要,都点一下



4、安装路径更改

选中顶层openvpn

 下方会出现安装路径选择,建议D盘,其他盘也可
安装完成,软件位置D:\OpenVPN\open\目次

二、CA 服务端证书和密钥 客户端证书和密钥制作


1、进入EasyRSA Shell模式下

Cmd管理员运行,然后进入D:\OpenVPN\open\easy-rsa目次下运行EasyRSA-Start.bat 进入EasyRSA Shell命令模式。



2、修改vars设置文件

复制同目次(D:\OpenVPN\open\easy-rsa)下vars.example并重定名为vars,然后找到并修改部分参数为如下
  1. 打开vars,找到并修改如下
  2. set_var EASYRSA_REQ_COUNTRY "CN"         #国家
  3. set_var EASYRSA_REQ_PROVINCE  "JS"       #省
  4. set_var EASYRSA_REQ_CITY  "SZ"           #城市
  5. set_var EASYRSA_REQ_ORG "TESTORG"        #组织名称,比如公司名等
  6. set_var EASYRSA_REQ_EMAIL "TEST@TEST12312.NET"
  7. set_var EASYRSA_REQ_OU    "TESTVPN"      #组织单元
  8. set_var EASYRSA_KEY_SIZE  2048           #密钥长度2048
  9. set_var EASYRSA_CA_EXPIRE  1460          #ca有效期,单位为天
  10. set_var EASYRSA_CERT_EXPIRE 825        #生成的服务端和客户端证书有效期
复制代码

3、初始化和创建ca

3.1 初始化 

    初始化成功后会在easy-rsa目次下新建文件夹kpi。
  1. ./easyrsa init-pki      #初始化目录
复制代码

 3.2 天生CA公共证书

  1. ./easyrsa build-ca nopass    #nopass参数为CA不加密码,如果要加密码则去掉nopass
复制代码
        天生过程中会要求输入证书名称,随意输入即可,本次利用CA作为名称,天生竣事后会打印出证书地点目次D:\OpenVPN\open\easy-rsa\pki\ca.crt。

3.3 天生服务端证书密钥

        输入./easyrsa build-server-full server nopass 天生名称为server的无密码服务端证书,天生后证书文件D:\OpenVPN\open\easy-rsa\pki\issued文件夹。

3.4 天生客户端证书密钥

        输入./easyrsa build-client-full client nopass天生名称为client的无密码客户端证书,天生后证书在D:\OpenVPN\open\easy-rsa\pki\issued文件夹。
        后续如果想添加其他客户端,只需双击打开EasyRSA-Start.bat批处置处罚文件,直接输入./easyrsa build-client-full client2 nopass,client2为自定义客户端名无需做其他操作。

3.5 天生DH密钥交换协议

        输入./easyrsa gen-dh天生DH密钥交换协议文件,天生文件在D:\OpenVPN\open\easy-rsa\pki目次下

3.6 天生ta.key

        TLS认证密钥 为抵抗防御ddos恶意攻击等行为,可天生ta.key ,cmd管理员运行进入到D:\OpenVPN\open\bin执行
  1. openvpn --genkey --secret "D:\OpenVPN\open\config\ta.key" #路径自定义
复制代码
按照上面命令天生的ta.key就在config目次下

三、搭建

在开启端口映射后的Windows电脑上搭建,端口是openvpn监听的端口,可在设置文件中修改,本次树模为电脑上搭建。 
1、修改服务端设置文件

将天生的ca.crt、dh.pem、server.crt、server.key ta.key 具体文件名以自己定义为准
服务端设置文件模板为server.ovpn ,在D:\OpenVPN\open\sample-config目次下。复制server.ovpn文件至D:\OpenVPN\open\config目次下,用windows自带的记事本打开修改为如下设置:

相关参数解释: 
    #server.ovpn文件内容参数解释,注意代码前的; #都是解释掉的意思,该语句不生效
  #################################################
# Sample OpenVPN 2.0 config file for            #
# open up this port on your firewall.
port 27118 #监听端口,自定义
# TCP or UDP server?
proto tcp  #协议,可tcp或者udp
# "dev tun" will create a routed IP tunnel,
# "dev tap" will create an ethernet tunnel.
# the firewall for the TUN/TAP interface.
dev tun # 本文利用tun模式,由于安卓端目前看并不支持Tap
ca ca.crt #ca位置,如果和server.ovpn同目次,直接写文件名即可,如果不是同目次,那么写绝对路径也可以
cert server.crt
key server.key  # This file should be kept secret
dh dh.pem
ifconfig-pool-persist ipp.txt
  ; 设置 服务器端 模式,并提供一个 VPN 子网,以便于从中为 客户端 分配IP地址,假设 服务器端 自己占用了 192.168.0.1,以是其他的将提供 客户端 利用;
; 如果你利用的是 以太网桥接 模式,请解释掉该行;
; ★★★ 当客户端连接到此处的服务端时,为 客户端的以太网适配器分配的IPv4地址今后处指定的网段中指定一个;
  server 10.8.0.0 255.255.252.0 定义的vpn虚拟ip网段,最好不跟192重复,我利用的是10段
push "route 192.168.0.0 255.255.255.0"  #推送路由,即这些目的地走VPN,其实好像tun模式这个语句不生效
push "dhcp-option DNS 114.114.114.114"
push "dhcp-option DNS 223.5.5.5"
#client-config-dir ccd
# 重中之重
route 192.168.0.0 255.255.255.0 10.8.0.2  将客户端的ip与服务端内网ip做路由,这个很重要
# 分配固定ip地址段
client-config-dir ccd
route 10.8.0.0 255.255.255.0
#push "redirect-gateway def1 bypass-dhcp"
client-to-client  #允许客户端和客户端连接,默认情况下客户端只能与服务器相连接
duplicate-cn #多客户端利用同一个证书
keepalive 10 120
tls-auth ta.key 0 # This file is secret TLS认证密钥 防止DODS等,UDP淹没等恶意gongji,服务器端设置为0 客户端设置为1
cipher AES-256-CBC
comp-lzo #开启vpn连接压缩,如果服务器端开启,客户端也必须开启
;user openvpn
;group openvpn
persist-key
persist-tun
status openvpn-status.log
;log         openvpn.log
;log-append  openvpn.log
  ; 为日志文件设置适当的冗余级别(0~9)。冗余级别越高,输出的信息越详细。
; 0 表现静默运行,只记录致命错误。
; 4 表现合理的通例用法。
; 5 和 6 可以资助调试连接错误。
; 9 表现极度冗余,输出非常详细的日志信息。
verb 6
explicit-exit-notify 1
    更:
  防火墙注意端口放行
  
  注意下方两个设置,第一个是设置动态ip的设置文件,不需要设置client文件,第二个是设置固定ip时所用,同时需要设置client文件。
  这边可能受环境影响,以是你们部署时如果出现问题,那就三个一起加上去准好!!!
  哈哈哈 ,我也懵,我这边时之前设置半天穿透不成功,加了上面那条语句就好了,结果如今吧client和上面的都解释了,留下面的竟然还可以,你们测试测试吧,可以多交流
  

    下方两种设置文件直接复制即可,之后再根据自己的ip,想设置的ip去修改即可,注意win10开启openvpn服务利用tun还可以,尤其重要的是打开软件必须利用管理员权限,末了如果链接服务端之后,手机链接vpn发现可以连接上,但是不能打开相关端口的网站,以及ping不通服务端vpn ip,不要乱操作,直接重新管理员权限打开,再次重新连接,一次不可,再连接一次,我发现这win10 链接一次 路由写不进去,以是你多试几次,这回再拿手机查看你会发现端口通了,我这边服务都可以访问,就是不知道为什么ping不同服务端内网ip,但是还可以用这个内网ip去访问,哈哈 ,不管了,已经满足我需要了!!!有什么疑问大家尽管交流!!!!!!
  

1.1动态ip 服务端设置文件

  1. #################################################
  2. # Sample OpenVPN 2.0 config file for            #
  3. # open up this port on your firewall.
  4. port 27118
  5. # TCP or UDP server?
  6. proto tcp
  7. # "dev tun" will create a routed IP tunnel,
  8. # "dev tap" will create an ethernet tunnel.
  9. # the firewall for the TUN/TAP interface.
  10. dev tun
  11. ca ca.crt
  12. cert server.crt
  13. key server.key  # This file should be kept secret
  14. dh dh.pem
  15. ifconfig-pool-persist ipp.txt
  16. server 10.8.0.0 255.255.252.0  
  17. push "route 192.168.0.0 255.255.255.0"   # 检查这两个路由有没有成功写入********* 动态ip
  18. push "route 10.8.0.0 255.255.255.0"    # 检查这两个路由有没有成功写入
  19. push "dhcp-option DNS 114.114.114.114"
  20. push "dhcp-option DNS 223.5.5.5"
  21. #client-config-dir ccd
  22. # 重中之重
  23. #route 192.168.0.0 255.255.255.0 10.8.0.2  # *********静态固定ip
  24. #route  192.168.0.0 255.255.255.0 10.8.0.1 # 动态ip路由 另一种方案 注释即可
  25. # 分配固定ip地址段
  26. #client-config-dir ccd
  27. #route 10.8.0.0 255.255.255.0  # *********分配ip地址段
  28. #push "redirect-gateway def1 bypass-dhcp"
  29. client-to-client
  30. duplicate-cn
  31. keepalive 10 120
  32. tls-auth ta.key 0 # This file is secret
  33. cipher AES-256-CBC
  34. comp-lzo
  35. ;user openvpn
  36. ;group openvpn
  37. persist-key
  38. persist-tun
  39. status openvpn-status.log
  40. ;log         openvpn.log
  41. ;log-append  openvpn.log
  42. verb 3
  43. explicit-exit-notify 1
复制代码

1.2 静态指定ip服务端设置协议

  1. #################################################
  2. # Sample OpenVPN 2.0 config file for            #
  3. # open up this port on your firewall.
  4. port 27118
  5. # TCP or UDP server?
  6. proto tcp
  7. # "dev tun" will create a routed IP tunnel,
  8. # "dev tap" will create an ethernet tunnel.
  9. # the firewall for the TUN/TAP interface.
  10. dev tun
  11. ca ca.crt
  12. cert server.crt
  13. key server.key  # This file should be kept secret
  14. dh dh.pem
  15. ifconfig-pool-persist ipp.txt
  16. server 10.8.0.0 255.255.252.0  
  17. push "route 192.168.0.0 255.255.255.0" # 关键 路由
  18. push "route 10.8.0.0 255.255.255.0" # 关键
  19. push "dhcp-option DNS 114.114.114.114"
  20. push "dhcp-option DNS 223.5.5.5"
  21. #client-config-dir ccd
  22. # 路由
  23. #route 192.168.0.0 255.255.255.0 10.8.0.2  # *********静态固定ip 这两个可以不再需要
  24. #route  192.168.0.0 255.255.255.0 10.8.0.1 # 动态ip路由  这两个可以不再需要 注释即可
  25. # 分配固定ip地址段
  26. client-config-dir ccd  # ccd文件夹下/client文件,无后缀名
  27. route 10.8.0.0 255.255.255.0  # *********分配ip地址段 10.8开头
  28. #push "redirect-gateway def1 bypass-dhcp"
  29. client-to-client
  30. duplicate-cn
  31. keepalive 10 120
  32. tls-auth ta.key 0 # This file is secret
  33. cipher AES-256-CBC
  34. comp-lzo
  35. ;user openvpn
  36. ;group openvpn
  37. persist-key
  38. persist-tun
  39. status openvpn-status.log
  40. ;log         openvpn.log
  41. ;log-append  openvpn.log
  42. verb 3
  43. explicit-exit-notify 1
复制代码

2、ccd目次下client设置

config目次下创建一个ccd文件夹,在文件夹下创建无后缀文件,文件名与客户端证书名逐一对应,文件内输入子网段及指定隧道ip如下图所示: 
只设置ifconfig即可


3、客户端设置

  1. 在客户端电脑config目录下创建client.ovpn 名字可自定义
  2. 以下为参数
  3. client
  4. dev tun
  5. proto tcp
  6. remote 域名或ip 27118 #服务器端IP或者ddns域名 端口
  7. resolv-retry infinite
  8. nobind #不绑定本机发起端口,配置了即使用随机端口作为源端口
  9. ;user nobody
  10. ;group nobody
  11. persist-key
  12. persist-tun
  13. cipher AES-256-CBC
  14. ;http-proxy-retry # retry on connection failures
  15. ;http-proxy [proxy server] [proxy port #]
  16. mute-replay-warnings
  17. ca ca.crt                  #配置ca,如果文件和配置文件在同一个目录,则直接写文件名,不在同目录,则对应改掉。
  18. cert client.crt            #客户端证书  如上解释
  19. key client.key             #如上解释
  20. auth-nocache             #;不缓存用户名密码
  21. ;ns-cert-type server
  22. tls-auth ta.key 1        ##TLS认证密钥 防止DODS gongji,UDP淹没等恶意gongji,服务器端配置为0 客户端配置为1
  23. remote-cert-tls server
  24. comp-lzo
  25. verb 3
复制代码

4、开启网络共享

开启网络共享,保证可利用服务端ip192进行访问,将网络共享至tap虚拟网卡即可,这样就可以利用电脑的内网ip进行访问端口的服务,同时你也可以管理路由器了。

           末了要确认ip路由转发是否成功开启,在cmd里执行ipconfig/all命令确认路由转发是否开启,编辑注册表来开启路由转发。客户端就不仅可以利用openvpn-tap的ip地址访问服务器资源,也可以利用物理网卡的ip进行访问。
          举例:服务器的本地ip是192.168.0.11,安装openvpn后虚拟tap网卡出来,openvpn的server-ip是10.11.12.0/24,默认服务器openvpn利用10.8.0.1,客户端好比自动分配的是10.8.0.2,那么在客户端可以利用192.168.0.11访问alist,如果不开启路由转发,是不可以利用192.168.0.11访问的,只可以利用10.8.0.1访问
  windows默认是没有开启IP转发的,因此需要编辑注册表来开启
  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
复制代码
选择下面的项目:IPEnableRouter,默认是0,改为1启用,然后重启系统,在ipconfig/all可以看到否变成了是。
客户端所需证书,下列证书都在easy-rsa目次下,将其打包即可,分发到安卓端,安卓app是选中所有的证书进行安装

 安卓端可从官网下载。
末了,最关键的一点,运行openvpn利用管理员方式运行,切记。

   总结:本次进程是一个菜鸡新手想要搞一搞这方面的内容,以是初步进行了尝试,踩了许多坑,迷迷糊糊,以是记录一下成功过程,有错误的地方还望大佬们指正,谢谢! 
  部分内容参考泉源 : 如果有什么不懂的,可以再去下面各个博客去学习,末了一个收获也很大。
   openvpn2.5.x最新版本在windows下部署服务端支持IPV6(仅技术学习记录)_木子燚的技术博客_51CTO博客OpenVPN Windows 平台安装部署教程 - 枫叶落
  openvpn:如何实现双网互通_网易订阅
  Windows 10 平台搭建 OpenVPN
  爱陆通5G工业VPN网关自建OPENVPN专网实战干货分享_Openvpn_证书_文件

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

灌篮少年

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表