windows平台搭建openvpn安装部署教程

OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,可用来实现部分内网打通的功能。

服务端安装部署

openvpn官网 下载对应的版本之后,就可以进行安装了。

  1. 打开安装包进行安装,客户端跟服务器安装方式一样,都需要安装

  2. 接受下一步

  3. 下面两个选项默认不勾选,我们需要勾选证书生成程序 ,不然安装完无法命令行制作证书操作

  4. 选择安装目录

  5. 安装完成

  6. 安装完成后系统会多出一张网卡TAP的 本地连接2

  7. 要想客户端能够通过服务端上网需要调整服务端本地网卡共享

    图片.png

生成配置

OpenVPN支持基于加密证书的双向认证。在OpenVPN中,不管是服务器还是客户端,所有的证书和私钥都需要由服务器端生成,客户端要先获得服务器端分配给它的加密证书和密钥才能成功连接。客户端只需要安装好软件,然后复制服务端生成的配置到客户端即可。

所以直接打开cmd,进入openvpn的安装目录 C:\Program Files\OpenVPN\easy-rsa ,在服务器端运行以下命令:

  1. 运行DOS命令,初始化执行环境。

    1
    2
    3
    init-config     	# init-config 会把 vars.bat.sample 复制为 var.bat
    vars # vars.bat 用来设置一些变量,主要就是配置文件中修改的那部分
    clean-all # 会清掉 C: \Program File\OpenVPN\easy-rsa\keys 目录,再把 index.txt 和 serial 文件放进来。

    由于init-config 会把 vars.bat.sample 复制为 var.bat,所以可以先修改一下这里面的变量,比如说KEY_SIZE表示生成的私钥大小,一般填写为1024或2048。也可以修改证书的注册信息,比如国家、省市、地址、公司名称等。

  2. 创建CA根证书:build-ca、build-dh.bat。

    • build-ca # 生成根证书
    • build-dh.bat # 生成 dh1024.pem 文件,Server 使用 TLS(OpenSSL) 必须要有的文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    C:\Program Files\OpenVPN\easy-rsa>build-ca.bat
    Loading 'screen' into random state - done
    Generating a 1024 bit RSA private key
    .....................++++++
    ...........++++++
    writing new private key to 'keys\ca.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [CN]:
    State or Province Name (full name) [FuJian]:
    Locality Name (eg, city) [FuZhou]:
    Organization Name (eg, company) [FYLUO]:
    Organizational Unit Name (eg, section) [Eagle]:
    Common Name (eg, your name or your server's hostname) [Eagle]:CA
    Name [Eagle]:
    Email Address [eagle@fyluo.com]:
    C:\Program Files\OpenVPN\easy-rsa>
    C:\Program Files\OpenVPN\easy-rsa>build-dh.bat
    Loading 'screen' into random state - done
    Generating DH parameters, 1024 bit long safe prime, generator 2
    This is going to take a long time
    .......+.....+.................................................................+
    ................................................................................
    .........................+................................+.....................
    ................................................................................
    .............................................................+..................
    ................................................................................
    .................+.................................................++*++*++*

    build-ca的时候需要输入一些注册信息。在输入信息的时候,如果你不输入任何信息,就表示采用默认值(前面[]中的内容就是默认值)

  3. 创建服务器端证书:build-key-server server

    如上图所示,命令中的参数server指的是生成的证书文件名称,你可以按照自己的需要进行修改,不过后面的Common Name也应保持一致。第二个红色矩形框中是输入的密码,你也可以根据意愿自行输入。最后程序会询问你是否注册并提交证书,两次均输入y即可。

    1
    2
    3
    4
    5
    build-key-server server # 生成服务端密钥和证书

    # server 是自己定义的参数名,与上相应的就会生成 server.key、server.csr 和 server.crt,也都是保存在 keys 目录里。
    # 这一步像 build-dh.bat 一样有些东西要填写,之后就是该回答 y 的 y 一下,关键就一个:
    # 要生成多个服务端的密钥和证书则继续 build-key-server server02 ......
  4. 创建客户端证书:build-key client,与build-key-server一样要输入一堆东西,这里注意的是 Common Name 不能与执行 build-key-server 时输入的一样,

    要生成其他的客户端密钥和证书,可以继续 build-key client02

  5. 生成ta.key:..\bin\openvpn --genkey --secret keys\ta.key。这一步其实是可选操作,生成的ta.key主要用于防御DoS、UDP淹没等恶意攻击。命令中的第3个参数keys/ta.key表示生成的文件路径(含文件名)。

生成后文件夹下产生如下文件:

服务端配置

把配置文件server.ovpn放到C:\Program Files\OpenVPN\config目录下,把C:\Program Files\OpenVPN\easy-rsa\keys目录下的

ca.crt、ca.key、server01.crt、server01.csr、server01.key、dh2048.pem、ta.key 复制到C:\Program Files\OpenVPN\config目录下。

server.ovpn的文件内容如下。请根据需要进行调整。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
local 0.0.0.0
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 172.31.3.0 255.255.255.0"
push "route 172.31.5.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 114.114.114.114"
push "dhcp-option DNS 223.5.5.5"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
client-to-client
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1

push route表示推送的具体路由,就是这些路由是走VPN,其他流量还是走默认网关,然后就可以启动服务了。

客户端配置

把配置文件client.ovpn放到客户端机器的C:\Program Files\OpenVPN\config目录下,并且把服务器C:\Program Files\OpenVPN\easy-rsa\keys目录下的

client01.crt、client01.csr、client01.key、ca.key、ca.crt、ta.key 文件一起复制到客户端C:\Program Files\OpenVPN\config目录下 (以上文件为服务端生成,客户端需要在服务端拷贝这7个文件过来)。

client.ovpn的配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
client
dev tun
proto tcp

remote 服务端IP 8080
;remote my-server-2 8080

;remote-random

resolv-retry infinite
nobind
user nobody
group nobody
;route 192.168.0.0 255.255.252.0
persist-key
persist-tun

;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

ca ca.crt
cert client.crt
key client.key

ns-cert-type server
tls-auth ta.key 1
comp-lzo
# Set log file verbosity.
verb 4

参考资料

  • 本文作者: wumingx
  • 本文链接: https://www.wumingx.com/others/openvpn-win.html
  • 本文主题: windows平台搭建openvpn安装部署教程
  • 版权声明: 本站所有文章除特别声明外,转载请注明出处!如有侵权,请联系我删除。
0%