OpenVPN

来自WFilter上网行为管理系统文档和指南
WFilter讨论 | 贡献2018年10月31日 (三) 10:49的版本

跳转至: 导航搜索


1 OpenVPN概述

OpenVPN是一个的基于SSL的VPN系统。该模块可以在您的WFilterNGF中启用OpenVPN服务,从而可以组建site-to-site VPN或者从外网用OpenVPN的客户端拨入内网。 WFilter NGF中的OpenVPN包括“服务端”和“客户端”两个模块。

  • 服务端用于开启VPN服务,供其他客户机联入,支持site-to-site的VPN,以及单个客户机的vpn拨入。
  • 客户端用于主动去连接VPN的服务端,以建立site-to-site的VPN。

2 OpenVPN服务端

2.1 服务端配置

WFilter NGF中的OpenVPN采用“证书认证”和“用户名认证”的两种验证机制。

  • 认证方式:支持“证书认证”和“用户名认证”的两种验证机制。
    • 证书认证:客户端利用服务端创建的证书文件拨入。
    • 用户名认证:客户端使用用户名密码拨入。认证账号必须在“账号管理”中配置的账号,且该账号必须有“VPN”的权限才可以登录VPN。
  • 连接类型和端口:需要和客户端的配置一致。保存后,WFilterNGF的防火墙会自动允许该端口。
  • 通讯网段: WFilterNGF的OpenVPN采用的是子网模式(subnet),OpenVPN单独组建一个网段,该网段不能和现有的内网网段重合。
  • 推送路由:服务端内网网段的定义会被推送到客户机的路由表中,从而让客户机通过VPN来访问服务端内网。格式如:route 192.168.126.0 255.255.255.0

Openvpn settings1.png

2.2 客户端网段

  • 用于定义site-to-site VPN的对端网段。
  • 客户端名称:
    • 对于用户名认证的客户端,客户端名称就是用户名。
    • 证书认证的客户端,可以直接定义客户端名称。
  • 客户端网段用于定义客户端的内网网段,可以为空。格式如:192.168.126.0 255.255.255.0
  • 点击“下载”可以下载客户端证书,供证书认证的客户端导入后连接服务端。用户名认证不需要下载证书文件。
  • 点击“生成配置文件”可以下载客户端所需的配置文件。

Openvpn serverclient01.png

2.3 CA证书

  • CA证书设置,需要把该CA证书导入到客户端才可以连接,您也可以点击“重新生成”来生成新的CA证书。
  • 所有可以互相连接的openvpn都需要有同样的CA证书。

Openvpn settings2.png

3 OpenVPN客户端

OpenVPN客户端用于连接OpenVPN服务端,从而建立site-to-site的VPN隧道。

  • 服务端ID:唯一的ID,只能用数字和字母。
  • 服务端地址:OpenVPN的服务端IP或者域名(支持动态域名。支持多服务端负载均衡和备份,每行一个服务端)。
  • 协议类型和端口:需要与服务端的配置一致。
  • 连接方式:直接连接,或者通过一个HTTP代理来连接VPN服务端。
  • 认证方式:
    • 用户名认证:通过用户名和密码进行认证。
    • 证书认证:通过上传证书进行认证。这个证书就是在服务端中创建的客户端证书。

Openvpn clientsettings1.png

  • CA证书:可以查看并导入CA证书,CA证书必须和服务端一样才可以进行通讯。

Openvpn clientsettings2.png

3.1 导入其他openvpn server的证书

WFilter NGF可以直接导入其他WFilter导出的“CA证书”和“客户端证书”。如果要导入其他openvpn server的证书文件,需要注意证书的文件格式。

  • CA证书:
    • 文件格式必须是tar.gz文件
    • 文件路径:/etc/config/openvpn/ca.crt和/etc/config/openvpn/ca.key
    • 相关命令:

先把ca.crt和ca.key文件拷贝到/etc/openvpn文件夹下,然后执行如下命令

$tar -cvzf /tmp/ca.tar.gz /etc/openvpn/ca.*

  • 客户端证书:
    • 文件格式必须是tar.gz文件
    • 文件路径:/tmp/clientkeys/xxx.crt和xxx.key
    • 相关命令:

$mkdir -p /tmp/clientkeys

$rm -f /tmp/clientkeys/*

$cp -f client1.crt /tmp/clientkeys/

$cp -f client1.key /tmp/clientkeys/

$tar -czf /tmp/client1.tar.gz /tmp/clientkeys/

4 Windows客户端配置

4.1 Windows客户端

  • 安装和下载openvpn客户端:https://openvpn.net/index.php/open-source/downloads.html
  • 在WFilterNGF的“OpenVPN服务端”的“CA证书”中下载证书文件,解压后把ca.crt拷贝到openvpn安装文件夹的config文件夹中。(另存为ca.crt)
  • 点击WFilterNGF的“OpenVPN服务端”的“生成配置文件”,可以生成客户端配置文件。

Openvpn exportconfig.png

4.2 用户名认证

  • 用户名认证的配置文件格式。配置文件需要保存在openvpn的config文件中,格式如下:
client
dev tun
proto udp                   #协议类型,和服务端的配置一致
remote www.imfirewall.com 1194   #服务器的IP地址(或者域名)和端口
nobind
persist-key
persist-tun
ca ca.crt                   #文件名和下载的ca.crt文件名一致
verb 3
auth-user-pass              #用户名认证

4.3 证书认证

  • 证书认证的配置文件格式。配置文件需要保存在openvpn的config文件中,格式如下:
client
dev tun
proto udp                   #协议类型,和服务端的配置一致
remote www.imfirewall.com 1194   #服务器的IP地址(或者域名)和端口
nobind
persist-key
persist-tun
ca ca.crt                   #文件名和下载的ca.crt文件名一致
cert vpnuser.crt            #导出的客户端证书,.crt和.key两个文件。
key vpnuser.key             
verb 3
  • 以管理员身份运行“OpenVPN GUI”程序。输入用户名密码即可登录VPN。如下图:

Openvpn winclient01.png

Openvpn winclient02.png

Openvpn winclient03.png

5 防火墙设置

OpenVPN建立连接后,VPN到内网的访问权限会受到“防火墙策略”的控制。比如,假设您想允许VPN访问所有内网资源,需要在防火墙策略中添加一条允许访问的规则(接口选择“外网”,方向选择“转发”),如:

  • 允许所有到内网的访问

Openvpn firewall01.png

  • 只允许指定内网IP的访问

Openvpn firewall02.png

6 相关链接