OpenVPN的安全模型是基于SSL的,SSL是通过互联网进行安全通信的行业标准。OpenVPN使用SSL/TLS协议实现OSI第2层或第3层安全网络扩展。
OpenVPN已经移植到各种平台,包括Linux和Windows,它的配置在这些系统上都是类似的,所以它更容易支持和维护。OpenVPN可以在用户数据报协议(UDP)或传输控制协议(TCP)传输上运行,在单个TCP/UDP端口上复用创建的SSL隧道。OpenVPN是少数几个可以使用代理的VPN协议之一,这有时可能很方便。
目前,不支持的OpenVPN功能:
OpenVPN用户名不超过27个字符,密码不超过233个字符。
财产 | 描述 |
---|---|
add-default-route(是的|没有;默认值:没有) | 是否添加OVPN远端地址作为缺省路由。 |
身份验证(md5|sha1|零|sha256|sha512;默认值:sha1) | 允许的身份验证方法。 |
证书(字符串|没有一个;默认值:没有一个) | 客户端证书的名称 |
密码(零|aes128-cbc|aes128-gcm|aes192-cbc|aes192-gcm|aes256-cbc|aes256-gcm|blowfish128;默认值:blowfish128) | 允许密码。为了使用GCM类型的密码,“auth”参数必须设置为“null”,因为如果使用GCM密码,也负责“auth”。 |
评论(字符串;默认值:) | 项目的描述性名称 |
连接到(知识产权;默认值:) | OVPN服务器的远程地址。 |
禁用(是的|没有;默认值:是的) | 接口是否被禁用。缺省情况下是关闭的。 |
mac地址(MAC;默认值:) | OVPN接口的Mac地址。如果未指定,将自动生成。 |
max-mtu(整数;默认值:1500) | 最大传输单元。OVPN接口在不产生数据包碎片的情况下能够发送的最大数据包大小。 |
模式(知识产权|以太网;默认值:知识产权) | 三层或二层隧道模式(可选tun、tap) |
名字(字符串;默认值:) | 接口的描述性名称。 |
密码(字符串;默认值:”“) | 鉴权密码。 |
港口(整数;默认值:1194) | 要连接的端口。 |
配置文件(名字;默认值:默认的) | 指定建立隧道时使用哪一种PPP配置文件。 |
协议(tcp|udp;默认值:tcp) | 指示与远程端点连接时使用的协议。 |
verify-server-certificate(是的|没有;默认值:没有) | 根据“connect-to”参数检查证书CN或SAN。IP或主机名必须出现在服务器的证书中。 |
tls版本(任何|只有- 1.2;默认值:任何) | 指定允许哪些TLS版本 |
use-peer-dns(是的|没有;默认值:没有) | 是否将OVPN服务器提供的DNS服务器加入到IP/DNS配置中。 |
route-nopull(是的|没有;默认值:没有) |
指定是否允许OVPN服务器向OVPN客户端实例路由表中添加路由。 |
用户(字符串;默认值:) | 用于认证的用户名。 |
此外,还可以从. OVPN配置文件导入OVPN客户机配置。这样的文件通常由OVPN服务器端提供,并且已经包含了配置,因此您只需要担心几个参数。
/interface/ovpn-client/import-ovpn-configuration ovpn-password=securepassword \ key-passphrase=certificatekeypassphrase ovpn-user=myuserid skip-cert-import=no
为每一条与给定服务器建立的隧道创建一个接口。在OVPN服务器的配置中有两种类型的接口
动态接口在用户连接时出现,一旦用户断开连接就消失,因此不可能在路由器配置中(例如在防火墙中)引用为该用途创建的隧道,因此如果需要为该用户创建持久规则,请为他/她创建静态条目。否则,可以安全地使用动态配置。
在这两种情况下,都必须正确配置PPP用户,静态表项不能替代PPP配置。
财产 | 描述 |
---|---|
身份验证(md5|sha1|零|sha256|sha512;默认值:sha1、md5、sha256 sha512) | 服务器将接受的身份验证方法。 |
证书(名字|没有一个;默认值:没有一个) | OVPN服务器使用的证书名称。 |
密码(零|aes128-cbc|aes128-gcm|aes192-cbc|aes192-gcm|aes256-cbc|aes256-gcm|blowfish128;默认值:aes128-cbc, blowfish128) | 允许密码。 |
默认的配置(名字;默认值:默认的) | 要使用的默认配置文件。 |
启用(是的|没有;默认值:没有) | 定义是否启用OVPN服务器。 |
协议(tcp|udp;默认值:tcp) | 指示与远程端点连接时使用的协议。 |
keepalive-timeout(整数|禁用;默认值:60) | 定义路由器每秒钟开始发送keepalive报文的时间间隔(单位为秒)。如果在这段时间内(即2 * keepalive-timeout)没有流量和keepalive响应,则未响应的客户端被宣布断开连接 |
mac地址(MAC;默认值:) | 服务器自动生成的MAC地址。 |
max-mtu(整数;默认值:1500) | 最大传输单元。OVPN接口在不产生数据包碎片的情况下能够发送的最大数据包大小。 |
模式(知识产权|以太网;默认值:知识产权) | 三层或二层隧道模式(可选tun、tap) |
子网掩码(整数;默认值:24) | 客户端应用的子网掩码。 |
港口(整数;默认值:1194) | 运行服务器的端口。 |
require-client-certificate(是的|没有;默认值:没有) | 如果设置为yes,则服务器检查客户端证书是否属于同一证书链。 |
redirect-gateway(def1|禁用|ipv6;默认值:禁用) | 指定OVPN客户端必须添加到路由表中的路由类型。
|
enable-tun-ipv6(y西文|没有;默认值:没有) | 指定该OVPN服务器是否可以使用IPv6 IP隧道模式。 |
ipv6-prefix-len(整数;默认值:64) | 在服务器端生成OVPN接口时使用的IPv6地址前缀长度。 |
tun-server-ipv6(IPv6前缀;默认值:::) | 在服务器端生成OVPN接口时使用的IPv6前缀地址。 |
此外,还可以为OVPN客户端准备一个. OVPN文件,以便在终端设备上轻松导入。
/接口/ ovpn-server /服务器/ export-client-configuration ca证书= myCa。CRT \ client-certificate=client1。crt client-cert-key = client1。关键服务器地址= 192.168.88.1
路由器上的日期必须在安装证书的过期日期范围内,这一点非常重要。要克服任何证书验证问题,请启用国家结核控制规划服务器和客户端的日期同步。
假设办公室的公网IP地址为2.2.2.2,我们希望两个远程OVPN客户端能够访问办公室网关后面的10.5.8.20和192.168.55.0/24网络。
所有证书都可以在RouterOS服务器上通过证书管理器生成。l雷竞技参见示例>>.
对于最简单的设置,您只需要一个OVPN服务器证书。
第一步是创建一个IP池,将从中分配客户机地址和一些用户。
/ip pool add name=ovpn-pool range=192.168.77.2-192.168.77.254 /ppp配置文件add name=ovpn local-address=192.168.77.1 remote-address=ovpn-pool /ppp secret add name=client1 password=123 profile=ovpn add name=client2 password=234 profile=ovpn
假设已经创建了服务器证书并命名为“server”
/interface ovpn-server server set enabled=yes certificate=server
由于Routl雷竞技erOS不支持路由推送,你需要手动添加你想通过隧道访问的网络。
/interface ovpn-client add name=ovpn-client1 connect-to=2.2.2.2 user=client1 password=123 disabled=no /ip route add st-address=10.5.8.20 gateway=ovpn-client1 add st-address=192.168.55.0/24 gateway=ovpn-client1 /ip firewall add chain=srcnat action=masquerade out-interface=ovpn-client1