凌峰创科服务平台

RouterOS VPN服务器怎么搭建?

我会为你详细介绍其中最常用、最安全的两种方案:L2TP/IPsecOpenVPN


L2TP/IPsec over NAT (最常用,兼容性最好)

这种方案结合了 L2TP 的隧道封装和 IPsec 的加密,是目前 Windows、macOS、iOS、Android 等操作系统原生支持的标准 VPN 协议,它可以在 NAT(网络地址转换)环境下工作,适合大多数家庭或小型办公室场景。

优点:

  • 原生支持:无需安装第三方客户端,所有主流操作系统都内置支持。
  • 配置相对简单:RouterOS 上的配置步骤清晰。
  • 安全性高:使用 IPsec 进行加密。

缺点:

  • 性能一般:相比 OpenVPN,在处理大量数据时性能稍弱。
  • 端口易被封锁:使用 UDP 端口 500 (IPsec NAT-T) 和 1701 (L2TP),在某些网络(如公司、酒店)可能被限制。

详细配置步骤:

假设环境:

  • RouterOS 的 WAN(外网)接口:ether1
  • RouterOS 的 LAN(内网)网段:168.88.0/24
  • 你想让 VPN 客户端获得的 IP 网段:168.99.0/24

步骤 1:配置 IPsec 模板 (IKEv2)

这是最核心的加密部分,定义了 VPN 客户端和服务器之间的安全策略。

  1. 进入 /ip ipsec 菜单。

  2. 创建一个新的 Proposal(加密提议):

    /ip ipsec proposal
    add name=vpn-proposal pfs-group=none enc-algorithms=aes-256-cbc, aes-128-cbc \
    hash-algorithms=sha256, sha1 dh-group=modp2048
    • enc-algorithms: 加密算法,aes-256-cbc 是安全且高效的选择。
    • hash-algorithms: 哈希算法,sha256sha1 更安全。
    • dh-group: 密钥交换组,modp2048 是一个安全且广泛兼容的选择。
  3. 创建一个 Address List,用于标识 VPN 客户端将访问的本地网络:

    /ip firewall address-list
    add list=vpn-local-network address=192.168.88.0/24
    • 请将 168.88.0/24 替换为你自己的 LAN 网段。
  4. 创建一个 Policy(策略),定义哪些流量需要通过 VPN 加密:

    /ip ipsec policy
    add proposal=vpn-proposal dst-address=0.0.0.0/0 \
    src-address=192.168.99.0/24 template=yes
    • dst-address=0.0.0.0/0: 表示所有来自 VPN 客户端的流量都通过 IPsec 加密。
    • src-address=192.168.99.0/24: 这是我们为 VPN 客户端规划的 IP 网段。
    • template=yes: 这意味着这是一个模板,会自动应用到符合条件的新连接上。

步骤 2:配置 L2TP 服务器

  1. 进入 /ppp 菜单。
  2. 创建一个 Secret(VPN 账号密码):
    /ppp secret
    add name=your_username service=l2tp+ipsec password=your_strong_password \
    profile=default local-address=192.168.99.1 remote-address=192.168.99.2-192.168.99.100
    • name: 你的 VPN 登录用户名。
    • password: 你的 VPN 登录密码。
    • local-address: L2TP 服务器的 IP 地址,通常是网关。
    • remote-address: 分配给 VPN 客户端的 IP 地址池,请确保这个网段不要与你的 LAN 网段冲突。

步骤 3:配置防火墙

这是最容易被忽略但至关重要的一步,用于允许 VPN 流量通过。

  1. 进入 /ip firewall filter 菜单。
  2. 允许已建立的、相关的、无状态的 IPsec 和 L2TP 流量:
    /ip firewall filter
    add chain=input protocol=udp dst-port=500,4500 action=accept comment="Allow IKE (IPsec)"
    add chain=input protocol=udp dst-port=1701 action=accept comment="Allow L2TP"
    add chain=input protocol=esp action=accept comment="Allow ESP (IPsec)"

    这三条规则分别允许 IKE (IPsec NAT-T)、L2TP 和 ESP (IPsec 数据包) 的流量进入路由器。

步骤 4:配置 NAT (如果需要)

如果你的 RouterOS 没有开启 NAT,并且你想让 VPN 客户端通过服务器访问互联网,你需要配置 NAT。

  1. 进入 /ip firewall nat 菜单。
  2. 添加一个源 NAT 规则,将来自 VPN 客户端的流量伪装成路由器的 WAN IP:
    /ip firewall nat
    add chain=srcnat out-interface=ether1 src-address=192.168.99.0/24 \
    action=masquerade comment="VPN clients to WAN"
    • out-interface=ether1: 替换为你的 WAN 接口名称。
    • src-address=192.168.99.0/24: 替换为你的 VPN 客户端 IP 网段。

步骤 5:配置 DHCP 服务器 (可选但推荐)

为了让 VPN 客户端自动获取 IP 地址和 DNS,可以在 VPN 网段上运行一个 DHCP 服务器。

  1. 进入 /ip dhcp-server 菜单。

  2. 添加一个 DHCP 网络和服务器:

    /ip dhcp-server network
    add address=192.168.99.0/24 gateway=192.168.99.1
    /ip dhcp-server
    add address-pool=vpn-pool disabled=no interface=bridge name=vpn-dhcp \
    lease-time=1d
    • 你需要先创建一个地址池 /ip pool,名为 vpn-pool,范围与 remote-address 一致。

OpenVPN (更灵活、性能更好)

OpenVPN 是一个开源的 VPN 应用,它使用 SSL/TLS 协议进行加密,非常灵活且安全。

优点:

  • 安全性极高:使用 OpenSSL 加密库,支持多种强加密算法。
  • 性能优秀:通常比 L2TP/IPsec 性能更好。
  • 跨平台:有官方和优秀的第三方客户端(如 OpenVPN Connect, Tunnelblick)。
  • 功能丰富:支持用户证书认证、双因素认证等。

缺点:

  • 需要安装客户端:原生系统不支持,必须安装专用客户端。
  • 配置更复杂:需要在服务器和客户端都进行配置。

RouterOS 端配置步骤 (简化版):

步骤 1:创建 OpenVPN 服务器实例

  1. 进入 /interface ovpn-server 菜单。
  2. 添加一个新的服务器实例:
    /interface ovpn-server server
    set enabled=yes \
    auth=sha256,aes-256-cbc \
    certificate=server-cert \
    ca=ca-cert \
    key=server-key \
    cipher=aes-256-cbc \
    port=1194 \
    mode=ip
    • 注意certificate, ca, key 需要提前在 /system certificate 中创建,你可以使用 RouterOS 的内置工具生成自签名证书,或者使用由受信任 CA 签发的证书。
    • port=1194: OpenVPN 默认端口,可以修改为其他端口(如 443)以绕过封锁。

步骤 2:配置用户认证

OpenVPN 可以使用证书或用户名/密码认证,这里介绍最简单的用户名/密码方式。

  1. 进入 /ppp secret 菜单,添加一个用户(与 L2TP 相同):
    /ppp secret
    add name=openvpn_user password=openvpn_pass profile=default

步骤 3:配置防火墙

  1. 允许 OpenVPN 端口:
    /ip firewall filter
    add chain=input protocol=udp dst-port=1194 action=accept comment="Allow OpenVPN"

步骤 4:配置 NAT (如果需要)

与 L2TP 类似,为 VPN 客户端流量添加 NAT 规则,OpenVPN 默认会创建一个虚拟网卡 ovpn-server-out1,你的客户端 IP 会从这个接口获取。

/ip firewall nat
add chain=srcnat out-interface=ether1 src-address=10.8.0.0/24 action=masquerade comment="OpenVPN clients to WAN"
  • src-address=10.8.0.0/24: OpenVPN 默认的客户端网段,请根据实际情况调整。

客户端连接与测试

  1. 获取连接信息

    • L2TP: 你需要知道 RouterOS 的公网 IP 地址、你设置的用户名密码
    • OpenVPN: 你需要下载 RouterOS 生成的 client.ovpn 配置文件,或者手动配置客户端,包含服务器公网 IP端口证书(如果使用)和用户名/密码
  2. 连接测试

    • 连接成功后,检查你的客户端 IP 地址,看是否从你设置的 IP 池中获得。
    • 尝试访问你内网中的某台设备(如 168.88.1),看是否能连通。
    • 尝试访问 whatismyip.com,看显示的 IP 地址是否是你 RouterOS 的公网 IP,以确认 NAT 是否生效。

安全注意事项

  • 使用强密码:为 VPN 账号设置复杂的密码。
  • 更新固件:保持 RouterOS 固件为最新版本,以修复安全漏洞。
  • 限制访问:如果只允许特定 IP 访问你的 VPN 服务器,可以在防火墙规则中添加 src-address 条件。
  • 禁用不安全的协议:如非必要,避免使用 PPTP,它已被证明不安全。
  • 考虑端口转发:如果你的 RouterOS 在 NAT 之后(如家庭光猫),需要在光猫上做端口转发,将 UDP 500, UDP 4500, UDP 1701 (L2TP) 或 UDP 1194 (OpenVPN) 转发到 RouterOS 的内网 IP。

希望这份详细的指南能帮助你成功搭建 RouterOS VPN 服务器!如果你在某个步骤遇到问题,可以提供具体的错误信息,我会尽力帮你解决。

分享:
扫描分享到社交APP
上一篇
下一篇