如何在 MikroTik 上设置 VPN:一份综合指南

如何在 MikroTik 上设置 VPN:一份综合指南

探索如何使用 L2TP/IPsec、OpenVPN、WireGuard 以及用于站点到站点连接的 IPsec 等各种协议,在 MikroTik 路由器上实现安全的 VPN 连接。

53 min read

简介

虚拟专用网络 (VPN) 已成为企业和个人保护互联网连接、访问远程网络和保护敏感数据的必备工具。MikroTik 路由器以其强大的功能集和成本效益而闻名,提供多种 VPN 实现选项,可满足不同的安全需求和使用场景。

在这份综合指南中,我们将引导您完成在 MikroTik 路由器上设置各种 VPN 解决方案的过程。无论您是希望建立安全的站点到站点连接的网络管理员,还是希望远程访问家庭网络的个人,本文都将为您提供在 MikroTik 设备上成功实现 VPN 服务的知识和分步说明。TildaVPS 提供经过优化的 MikroTik 服务器,非常适合实施本指南中讨论的 VPN 解决方案,确保您的网络连接可靠且安全。

第 1 节:了解 MikroTik 上的 VPN 类型

MikroTik 上可用的 VPN 选项

MikroTik RouterOS 支持多种 VPN 协议,每种协议都有其自身的优势和理想的使用场景。在深入配置之前,了解哪种协议最适合您的需求至关重要。

OpenVPN 是一种开源 VPN 协议,在安全性与性能之间取得了良好的平衡。它使用 SSL/TLS 进行密钥交换,并可同时在 UDP 和 TCP 上运行。OpenVPN 具有高度可配置性,可以绕过大多数防火墙,使其成为许多场景下的多功能选择。

IPsec (Internet Protocol Security) 通过对每个 IP 数据包进行身份验证和加密来提供安全的 IP 通信。它在不同平台上得到广泛支持,被认为是高度安全的,非常适合分支机构之间的站点到站点 VPN 连接。

L2TP/IPsec 将第二层隧道协议与 IPsec 加密相结合。该协议得到大多数操作系统(包括 Windows、macOS、iOS 和 Android)的本地支持,方便进行远程访问 VPN。

PPTP (Point-to-Point Tunneling Protocol) 是最古老的 VPN 协议之一。虽然它易于设置并提供快速连接,但其安全性已受到威胁,因此仅适用于安全性要求不高、便利性优先于安全性的非敏感应用。

SSTP (Secure Socket Tunneling Protocol) 使用 SSL 通过 TCP 端口 443,使其能够通过大多数防火墙和代理服务器。它提供良好的安全性,但主要在 Windows 平台上受支持。

WireGuard 是一种较新的协议,以其简洁、高性能和现代密码学而闻名。MikroTik 已在 RouterOS v7 中添加了对 WireGuard 的支持,这使其成为运行最新固件的用户的绝佳选择。

在 MikroTik 上使用 VPN 的好处

增强安全性: VPN 加密您的数据,保护其免受窃听和中间人攻击,尤其是在使用公共 Wi-Fi 网络时。

远程访问: 从世界任何地方安全地访问您的家庭或办公室网络资源。

站点到站点连接: 通过互联网安全地连接多个办公地点,创建一个统一的网络。

绕过地理限制: 通过连接到不同地理位置的 VPN 服务器来访问受区域限制的内容。

网络分段: 在您的组织内为不同的部门或目的创建安全、隔离的网络分段。

选择合适的 VPN 协议

适用于您的 MikroTik 设置的最佳 VPN 协议取决于您的具体要求:

  • 对于设备间的最大兼容性:L2TP/IPsec
  • 对于企业环境中的最高安全性:IPsec
  • 对于灵活性和良好的安全-性能平衡:OpenVPN
  • 对于现代、高性能需求:WireGuard (RouterOS v7+)
  • 对于Windows 客户端的简单设置:SSTP

迷你常见问题解答

哪个 VPN 协议在 MikroTik 上提供最佳性能?

WireGuard 通常提供最佳性能,因为它设计轻巧且加密高效,其次是使用 UDP 的 OpenVPN。但是,性能会因您的具体硬件和网络条件而异。

我可以在 MikroTik 路由器上同时运行多个 VPN 协议吗?

是的,MikroTik RouterOS 允许您同时运行多个 VPN 协议。这对于支持不同的客户端设备或在一个协议被阻止时提供备用选项很有用。

第 2 节:设置 MikroTik VPN 的先决条件

硬件和软件要求

在 MikroTik 路由器上设置 VPN 之前,请确保您已具备以下先决条件:

硬件要求:

  • 具有足够处理能力以进行 VPN 加密/解密的 MikroTik 路由器。对于大量 VPN 使用,请考虑使用多核处理器型号,例如 RB4011 或 CCR 系列。
  • 足够的 RAM(建议至少 256MB 以支持多个 VPN 连接)
  • 稳定的互联网连接,具有足够的带宽以满足您的 VPN 需求

软件要求:

  • 与您选择的 VPN 协议兼容的 RouterOS 版本(建议 v6.45+,WireGuard 建议 v7+)
  • 更新到最新的稳定版本以确保应用了安全补丁
  • 支持您选择的 VPN 协议的有效许可证级别(大多数 VPN 功能至少需要 Level 4 许可证)

网络要求:

  • 公共 IP 地址(首选静态)或正确配置的 DDNS 服务
  • 如果您的 MikroTik 位于另一台路由器之后,则需要适当的端口转发
  • 正确配置的防火墙规则以允许 VPN 流量

初始路由器配置

在实施 VPN 之前,请确保您的 MikroTik 路由器具有基本的安全配置:

  1. 将 RouterOS 更新到最新的稳定版本
  2. 更改默认管理员密码
  3. 为所有接口配置适当的 IP 地址
  4. 设置基本防火墙规则以保护您的网络
  5. 配置 DNS 设置
  6. 确保 NTP(网络时间协议)已正确配置,因为准确的时间对于 VPN 身份验证至关重要

规划您的 VPN 实施

花时间规划您的 VPN 部署,考虑以下因素:

VPN 拓扑:

  • 远程访问 VPN(客户端连接到您的网络)
  • 站点到站点 VPN(连接多个网络)
  • 中心辐射型(中心站点连接到多个分支机构)
  • 网状(所有站点相互连接)

IP 地址方案:

  • 确定 VPN 客户端的 IP 子网
  • 确保本地网络和远程网络之间没有 IP 冲突
  • 规划网络之间的正确路由

身份验证方法:

  • 用户名/密码
  • 基于证书的身份验证
  • 预共享密钥
  • 双因素身份验证

安全注意事项:

  • 加密强度要求
  • 流量隔离需求
  • 访问控制策略

访问您的 MikroTik 路由器

要配置您的 MikroTik 路由器,您需要使用以下方法之一访问它:

  1. WebFig(基于 Web 的配置界面):

    • 通过 Web 浏览器连接到路由器的 IP 地址
    • 使用您的凭据登录
    • 通过菜单导航以配置 VPN 设置
  2. WinBox(Windows GUI 应用程序):

    • 从 MikroTik 网站下载 WinBox
    • 通过 IP 或 MAC 地址连接到您的路由器
    • 使用图形界面配置设置
  3. SSH/Telnet(命令行界面):

    • 使用 SSH 客户端(如 PuTTY)连接
    • 直接在 RouterOS CLI 中输入命令
    • 适用于脚本编写和高级配置
  4. The Dude(网络管理应用程序):

    • 用于管理多个 MikroTik 设备
    • 提供您基础设施的网络范围视图

迷你常见问题解答

我是否需要静态 IP 地址才能在 MikroTik 上设置 VPN 服务器?

虽然静态 IP 是理想选择,但如果您有动态 IP,可以使用 no-ip.com 或 dyn.com 等动态 DNS 服务。MikroTik 支持通过脚本或内置 DDNS 客户端进行自动 DDNS 更新。

我在 MikroTik 上使用 VPN 功能需要什么许可证级别?

大多数 VPN 功能至少需要 Level 4 许可证。但是,基本的 PPTP 和 L2TP 从 Level 3 开始可用。对于高级功能和更好的性能,建议使用 Level 5 或 Level 6,尤其是在企业部署中。

第 3 节:设置 L2TP/IPsec VPN 服务器

L2TP/IPsec 是最广泛支持的 VPN 协议之一,使其成为具有各种客户端设备的环境的绝佳选择。让我们逐步了解如何在 MikroTik 路由器上设置 L2TP/IPsec VPN 服务器。

步骤 1:配置 IPsec 设置

首先,我们需要设置 VPN 的 IPsec 部分,它为 L2TP 隧道提供加密:

  1. 打开 WinBox 并连接到您的 MikroTik 路由器
  2. 导航到 IP → IPsec → Profiles
  3. 单击 + 按钮添加新配置文件
  4. 配置以下设置:
    • 名称 (Name):L2TP-IPsec
    • 哈希算法 (Hash Algorithms):sha256
    • 加密算法 (Encryption Algorithms):aes-256-cbc
    • DH 组 (DH Group):modp2048
    • 提议检查 (Proposal Check):obey
    • 有效期 (Lifetime):1d 00:00:00
  5. 单击 OK 保存配置文件

接下来,创建 IPsec 提议:

  1. 转到 IP → IPsec → Proposals
  2. 单击 + 按钮添加新提议
  3. 配置以下内容:
    • 认证算法 (Auth Algorithms):sha256
    • 加密算法 (Encr Algorithms):aes-256-cbc
    • PFS 组 (PFS Group):modp2048
  4. 单击 OK 保存

现在,设置 IPsec 对等体:

  1. 转到 IP → IPsec → Peers
  2. 单击 + 按钮添加新对等体
  3. 配置以下内容:
    • 名称 (Name):L2TP-Peer
    • 地址 (Address):0.0.0.0/0(接受来自任何 IP 的连接)
    • 配置文件 (Profile):L2TP-IPsec(我们之前创建的配置文件)
    • 交换模式 (Exchange Mode):main
    • 发送初始联系 (Send Initial Contact):yes
    • NAT 穿透 (Nat Traversal):yes
    • 预共享密钥 (Pre-shared Key):YourStrongSecretKey(使用一个强壮、独特的密钥)
  4. 单击 OK 保存

步骤 2:配置 L2TP 服务器

现在,让我们设置 L2TP 服务器:

  1. 在左侧菜单中导航到 PPP
  2. 转到 Profiles 选项卡
  3. 单击 + 按钮添加新配置文件
  4. 配置以下内容:
    • 名称 (Name):L2TP-Profile
    • 本地地址 (Local Address):指定路由器用于 VPN 的 IP(例如,10.0.0.1)
    • 远程地址 (Remote Address):指定客户端的 IP 池(例如,10.0.0.2-10.0.0.254)
    • DNS 服务器 (DNS Server):您首选的 DNS 服务器
    • 使用加密 (Use Encryption):yes
  5. 单击 OK 保存配置文件

接下来,设置 L2TP 服务器:

  1. 转到 Interface 选项卡
  2. 单击 L2TP Server
  3. 配置以下内容:
    • 启用 (Enabled):yes
    • 最大 MTU (Max MTU):1450
    • 最大 MRU (Max MRU):1450
    • 保持连接超时 (Keep Alive Timeout):30
    • 默认配置文件 (Default Profile):L2TP-Profile(我们创建的配置文件)
    • 身份验证 (Authentication):mschap2, mschap1, chap(按此顺序以获得最佳兼容性)
    • 使用 IPsec (Use IPsec):yes
    • IPsec 密钥 (IPsec Secret):YourStrongSecretKey(与 IPsec 对等体配置中的相同)
  4. 单击 OK 保存

步骤 3:创建 VPN 用户

现在,为 VPN 访问创建用户帐户:

  1. 在左侧菜单中转到 PPP
  2. 单击 Secrets 选项卡
  3. 单击 + 按钮添加新密钥
  4. 配置以下内容:
    • 名称 (Name):username(VPN 用户的登录用户名)
    • 密码 (Password):password(用户的强密码)
    • 服务 (Service):l2tp
    • 配置文件 (Profile):L2TP-Profile
  5. 单击 OK 保存
  6. 根据需要重复添加其他用户

步骤 4:配置防火墙规则

为了允许 VPN 流量通过您的防火墙:

  1. 导航到 IP → Firewall → Filter Rules

  2. 添加规则以允许 L2TP 和 IPsec 流量:

    对于 IPsec:

    • 添加一条规则以允许 UDP 端口 500 (IKE)
    • 添加一条规则以允许 UDP 端口 4500 (IPsec NAT-T)
    • 添加一条规则以允许 IP 协议 50 (ESP)
    • 添加一条规则以允许 IP 协议 51 (AH)

    对于 L2TP:

    • 添加一条规则以允许 UDP 端口 1701 (L2TP)
  3. 根据需要添加规则以允许来自 VPN 子网的流量访问您网络上的资源

步骤 5:测试 VPN 连接

完成配置后,从客户端设备测试 VPN 连接:

  1. 在 Windows 上:

    • 转到“设置”→“网络和 Internet”→“VPN”
    • 单击“添加 VPN 连接”
    • VPN 提供商:Windows(内置)
    • 连接名称:MikroTik L2TP
    • 服务器名称或地址:您的 MikroTik 公共 IP 或 DDNS
    • VPN 类型:带有预共享密钥的 L2TP/IPsec
    • 预共享密钥:YourStrongSecretKey(您配置的密钥)
    • 用户名和密码:您在 PPP 密钥中创建的凭据
  2. 在 Android/iOS 上:

    • 转到“设置”→“VPN”
    • 添加新 VPN 连接
    • 选择 L2TP/IPsec
    • 输入您的 MikroTik 公共 IP 或 DDNS
    • 输入预共享密钥、用户名和密码

迷你常见问题解答

为什么我的 L2TP/IPsec VPN 连接无法建立?

常见问题包括预共享密钥不正确、防火墙阻止 VPN 端口、NAT 问题或不兼容的加密设置。检查“System → Logs”下的路由器日志以获取具体的错误消息来排除故障。

我的 MikroTik 路由器可以支持多少个并发 L2TP/IPsec VPN 用户?

这取决于您的路由器的硬件功能。入门级型号可能可以处理 5-10 个并发用户,而像 CCR 系列这样的高端型号可以支持数十甚至数百个连接。CPU 使用率是主要限制因素,因为加密会产生开销。

第 4 节:设置 OpenVPN 服务器

OpenVPN 是一种高度可配置且安全的 VPN 解决方案,可在不同平台上良好运行。在 MikroTik 上设置它需要创建证书并正确配置服务器。让我们逐步完成整个过程。

步骤 1:创建证书

OpenVPN 使用证书进行身份验证。我们需要创建一个证书颁发机构 (CA)、一个服务器证书和一个客户端证书:

  1. 导航到 System → Certificates

  2. 首先,创建证书颁发机构 (CA):

    • 单击 Add 按钮
    • 设置 名称 (Name):CA
    • 设置 通用名称 (Common Name):MikroTik-CA
    • 设置 密钥大小 (Key Size):2048
    • 设置 有效天数 (Days Valid):3650(10 年)
    • 勾选 密钥用途 (Key Usage):crl sign, key cert sign
    • 单击 Apply,然后单击 Sign
    • 在新对话框中,选择 CA 作为证书,然后单击 Sign
  3. 创建服务器证书:

    • 单击 Add 按钮
    • 设置 名称 (Name):Server
    • 设置 通用名称 (Common Name):MikroTik-Server
    • 设置 密钥大小 (Key Size):2048
    • 设置 有效天数 (Days Valid):3650
    • 勾选 密钥用途 (Key Usage):digital signature, key encipherment, tls server
    • 单击 Apply,然后单击 Sign
    • 在新对话框中,选择 CA 作为证书颁发机构,然后单击 Sign
  4. 创建客户端证书:

    • 单击 Add 按钮
    • 设置 名称 (Name):Client1
    • 设置 通用名称 (Common Name):Client1
    • 设置 密钥大小 (Key Size):2048
    • 设置 有效天数 (Days Valid):3650
    • 勾选 密钥用途 (Key Usage):tls client
    • 单击 Apply,然后单击 Sign
    • 在新对话框中,选择 CA 作为证书颁发机构,然后单击 Sign
    • 根据需要为其他客户端重复此步骤

步骤 2:配置 OpenVPN 服务器

现在,让我们设置 OpenVPN 服务器:

  1. 在左侧菜单中导航到 PPP
  2. 转到 Profiles 选项卡
  3. 单击 + 按钮添加新配置文件
  4. 配置以下内容:
    • 名称 (Name):OVPN-Profile
    • 本地地址 (Local Address):指定路由器用于 VPN 的 IP(例如,10.1.0.1)
    • 远程地址 (Remote Address):指定客户端的 IP 池(例如,10.1.0.2-10.1.0.254)
    • DNS 服务器 (DNS Server):您首选的 DNS 服务器
    • 使用加密 (Use Encryption):yes
  5. 单击 OK 保存配置文件

接下来,设置 OpenVPN 服务器:

  1. 在左侧菜单中转到 PPP
  2. 单击 Interface 选项卡
  3. 单击 OVPN Server 按钮
  4. 配置以下内容:
    • 启用 (Enabled):yes
    • 端口 (Port):1194
    • 模式 (Mode):ip
    • 协议 (Protocol):tcp
    • 子网掩码 (Netmask):24
    • 最大 MTU (Max MTU):1500
    • 默认配置文件 (Default Profile):OVPN-Profile
    • 证书 (Certificate):Server(我们创建的服务器证书)
    • 身份验证 (Auth):sha1
    • 密码 (Cipher):aes256
    • 需要客户端证书 (Require Client Certificate):yes
  5. 单击 OK 保存

步骤 3:配置防火墙规则

为了允许 OpenVPN 流量通过您的防火墙:

  1. 导航到 IP → Firewall → Filter Rules

  2. 添加一条规则以允许 OpenVPN 流量:

    • 单击 + 按钮
    • 设置 链 (Chain):input
    • 设置 协议 (Protocol):tcp
    • 设置 目标端口 (Dst. Port):1194
    • 设置 动作 (Action):accept
    • 添加注释,例如“Allow OpenVPN”
    • 单击 OK 保存
  3. 根据需要添加规则以允许来自 VPN 子网的流量访问您网络上的资源

步骤 4:导出客户端证书并创建客户端配置

要将客户端连接到您的 OpenVPN 服务器,您需要导出证书并创建客户端配置文件:

  1. 导出 CA 证书:

    • 转到 System → Certificates
    • 选择 CA 证书
    • 单击 Export
    • 选择 导出类型 (Export Type):PEM
    • 单击 Export 并将文件保存为 ca.crt
  2. 导出客户端证书和密钥:

    • 选择 Client1 证书
    • 单击 Export
    • 选择 导出类型 (Export Type):PEM
    • 单击 Export 并将文件保存为 client1.crt
    • 再次单击 Export
    • 选择 导出类型 (Export Type):key
    • 如果要为密钥设置密码保护,请输入 导出密码 (Export Passphrase)
    • 单击 Export 并将文件保存为 client1.key
  3. 创建一个客户端配置文件 (client.ovpn),其中包含以下内容:

plaintext
client
dev tun
proto tcp
remote your-mikrotik-public-ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
cipher AES-256-CBC
auth SHA1
verb 3
key-direction 1

<ca>
# 将 ca.crt 的内容粘贴到此处
</ca>

<cert>
# 将 client1.crt 的内容粘贴到此处
</cert>

<key>
# 将 client1.key 的内容粘贴到此处
</key>

步骤 5:将客户端连接到 OpenVPN

现在您可以使用客户端配置文件连接到您的 OpenVPN 服务器:

  1. 在 Windows 上:

    • 安装 OpenVPN 客户端 (来自 openvpn.net)
    • 将 client.ovpn 文件复制到 C:\Program Files\OpenVPN\config\
    • 右键单击系统托盘中的 OpenVPN GUI 图标,然后选择“Connect”
  2. 在 macOS 上:

    • 安装 Tunnelblick (来自 tunnelblick.net)
    • 导入 client.ovpn 文件
    • 使用 Tunnelblick 菜单连接
  3. 在 Linux 上:

    • 安装 OpenVPN 客户端(在 Debian/Ubuntu 上运行 sudo apt install openvpn
    • 运行 sudo openvpn --config client.ovpn
  4. 在 Android/iOS 上:

    • 安装 OpenVPN Connect 应用程序
    • 导入 client.ovpn 文件
    • 使用应用程序连接

迷你常见问题解答

我如何排除 OpenVPN 连接问题?

检查服务器(System → Logs)和客户端日志。常见问题包括证书问题、防火墙阻止或路由问题。通过在配置文件中将“verb”设置为“5”来启用客户端的详细日志记录,以获取更详细的日志。

我可以使用 UDP 而不是 TCP 用于 OpenVPN 吗?

是的,UDP 通常是首选,以获得更好的性能。要使用 UDP,请更改服务器配置和客户端配置文件中的协议设置。UDP 通常更快,但在不稳定的连接上可能不太可靠。

第 5 节:设置 WireGuard VPN (RouterOS v7+)

WireGuard 是一种现代 VPN 协议,以其简洁、高性能和强大的安全性而闻名。它在 RouterOS 7 及更高版本中可用。让我们在您的 MikroTik 路由器上设置 WireGuard VPN 服务器。

步骤 1:创建 WireGuard 接口

首先,让我们在您的 MikroTik 路由器上创建 WireGuard 接口:

  1. 在左侧菜单中导航到 WireGuard(或在较旧的 v7 版本中导航到 Interface → WireGuard
  2. 单击 + 按钮添加新接口
  3. 配置以下内容:
    • 名称 (Name):wireguard1
    • 监听端口 (Listen Port):13231(或您选择的任何其他端口)
    • MTU:1420
  4. 单击 OK 创建接口
  5. 创建后,记下生成的公钥 (Public Key)——您在客户端配置中需要它

步骤 2:为 WireGuard 接口配置 IP 地址

为 WireGuard 接口分配 IP 地址:

  1. 转到 IP → Addresses
  2. 单击 + 按钮添加新地址
  3. 配置以下内容:
    • 地址 (Address):10.10.10.1/24(这将是 VPN 子网)
    • 接口 (Interface):wireguard1
  4. 单击 OK 保存

步骤 3:添加 WireGuard 对等体(客户端)

对于每个将连接到您的 WireGuard VPN 的客户端:

  1. 首先,在客户端设备上生成一个密钥对(我们将在步骤 5 中展示如何操作)
  2. 在您的 MikroTik 路由器中,转到左侧菜单中的 WireGuard
  3. 单击 Peers 选项卡
  4. 单击 + 按钮添加新对等体
  5. 配置以下内容:
    • 接口 (Interface):wireguard1
    • 公钥 (Public Key):(在此处粘贴客户端的公钥)
    • 允许的地址 (Allowed Address):10.10.10.2/32(您要分配给此客户端的 IP 地址)
    • 持久保活 (Persistent Keepalive):25(有助于 NAT 穿透)
  6. 单击 OK 保存
  7. 根据需要重复添加其他客户端,递增 IP 地址(10.10.10.3/32 等)

步骤 4:配置防火墙规则

为了允许 WireGuard 流量通过您的防火墙:

  1. 导航到 IP → Firewall → Filter Rules

  2. 添加一条规则以允许 WireGuard 流量:

    • 单击 + 按钮
    • 设置 链 (Chain):input
    • 设置 协议 (Protocol):udp
    • 设置 目标端口 (Dst. Port):13231(您为 WireGuard 配置的端口)
    • 设置 动作 (Action):accept
    • 添加注释,例如“Allow WireGuard”
    • 单击 OK 保存
  3. 根据需要添加规则以允许来自 WireGuard 子网的流量访问您网络上的资源

  4. 可选,添加伪装规则以允许 VPN 客户端通过 VPN 访问互联网:

    • 转到 IP → Firewall → NAT
    • 单击 + 按钮
    • 设置 链 (Chain):srcnat
    • 设置 源地址 (Src. Address):10.10.10.0/24
    • 设置 动作 (Action):masquerade
    • 添加注释,例如“Masquerade WireGuard clients”
    • 单击 OK 保存

步骤 5:配置 WireGuard 客户端

现在,让我们设置一个客户端以连接到您的 WireGuard VPN:

对于 Windows:

  1. 从 wireguard.com 下载并安装 WireGuard
  2. 打开 WireGuard 应用程序
  3. 单击“Add Empty Tunnel...”
  4. 生成新的密钥对(这会自动发生)
  5. 使用以下模板配置客户端:
plaintext
[Interface]
PrivateKey = (客户端的私钥)
Address = 10.10.10.2/24
DNS = 8.8.8.8, 8.8.4.4

[Peer]
PublicKey = (您的 MikroTik WireGuard 接口的公钥)
AllowedIPs = 0.0.0.0/0
Endpoint = your-mikrotik-public-ip:13231
PersistentKeepalive = 25
  1. 单击“Save”,然后单击“Activate”进行连接

对于 Android/iOS:

  1. 从应用商店安装 WireGuard 应用程序
  2. 点击“+”按钮并选择“Create from scratch”
  3. 输入 VPN 的名称
  4. 使用与上述相同的模板进行配置
  5. 点击“Save”,然后点击开关进行连接

对于 Linux:

  1. 安装 WireGuard(在 Debian/Ubuntu 上运行 sudo apt install wireguard
  2. 生成密钥:wg genkey | tee privatekey | wg pubkey &gt; publickey
  3. 使用上述模板在 /etc/wireguard/wg0.conf 创建配置文件
  4. 使用 sudo wg-quick up wg0 连接

步骤 6:测试连接

设置好服务器和客户端后:

  1. 在客户端设备上激活 WireGuard 连接
  2. 通过 ping 您的 MikroTik 上的 WireGuard 接口 IP (10.10.10.1) 来验证连接性
  3. 尝试访问网络上的其他资源
  4. 通过转到 WireGuard 并查看 Peers 选项卡来检查 MikroTik 上的 WireGuard 状态

迷你常见问题解答

WireGuard 比 OpenVPN 或 IPsec 更安全吗?

WireGuard 使用现代密码学,其代码库比 OpenVPN 或 IPsec 小得多,这可能意味着更少的安全漏洞。然而,这三种协议在正确配置后都被认为是安全的。WireGuard 的主要优点是其简洁性和性能。

我的 MikroTik 路由器可以支持多少个 WireGuard 对等体?

这取决于您的路由器的硬件功能。WireGuard 效率很高,因此即使是入门级 MikroTik 路由器也可以处理数十个对等体。高端型号可以支持数百个连接,对性能影响极小。

第 6 节:使用 IPsec 设置站点到站点 VPN

IPsec 是在分支机构之间或您的主办公室与云环境之间建立安全站点到站点 VPN 连接的绝佳选择。在本节中,我们将使用 IPsec 配置两个 MikroTik 路由器之间的站点到站点 VPN。

步骤 1:规划您的网络拓扑

在配置 IPsec 之前,请规划您的网络拓扑:

站点 A(主办公室):

  • 公共 IP:203.0.113.1(替换为您的实际公共 IP)
  • 本地网络:192.168.1.0/24
  • MikroTik 路由器:192.168.1.1

站点 B(分支办公室):

  • 公共 IP:203.0.113.2(替换为您的实际公共 IP)
  • 本地网络:192.168.2.0/24
  • MikroTik 路由器:192.168.2.1

步骤 2:在站点 A(主办公室)上配置 IPsec

  1. 创建 IPsec 配置文件:

    • 导航到 IP → IPsec → Profiles
    • 单击 + 按钮添加新配置文件
    • 配置以下内容:
      • 名称 (Name):site-to-site
      • 哈希算法 (Hash Algorithms):sha256
      • 加密算法 (Encryption Algorithms):aes-256-cbc
      • DH 组 (DH Group):modp2048
    • 单击 OK 保存
  2. 创建 IPsec 提议:

    • 转到 IP → IPsec → Proposals
    • 单击 + 按钮添加新提议
    • 配置以下内容:
      • 名称 (Name):site-to-site-proposal
      • 认证算法 (Auth Algorithms):sha256
      • 加密算法 (Encr Algorithms):aes-256-cbc
      • PFS 组 (PFS Group):modp2048
    • 单击 OK 保存
  3. 创建 IPsec 对等体:

    • 转到 IP → IPsec → Peers
    • 单击 + 按钮添加新对等体
    • 配置以下内容:
      • 名称 (Name):site-b-peer
      • 地址 (Address):203.0.113.2(站点 B 的公共 IP)
      • 配置文件 (Profile):site-to-site
      • 交换模式 (Exchange Mode):main
      • 发送初始联系 (Send Initial Contact):yes
      • NAT 穿透 (Nat Traversal):yes
      • 预共享密钥 (Pre-shared Key):YourStrongSecretKey(使用一个强壮、独特的密钥)
    • 单击 OK 保存
  4. 创建 IPsec 策略:

    • 转到 IP → IPsec → Policies
    • 单击 + 按钮添加新策略
    • 配置以下内容:
      • 源地址 (Src. Address):192.168.1.0/24(站点 A 的本地网络)
      • 目标地址 (Dst. Address):192.168.2.0/24(站点 B 的本地网络)
      • 协议 (Protocol):all
      • 动作 (Action):encrypt
      • 级别 (Level):require
      • IPsec 协议 (IPsec Protocols):esp
      • 隧道 (Tunnel):yes
      • SA 源地址 (SA Src. Address):203.0.113.1(站点 A 的公共 IP)
      • SA 目标地址 (SA Dst. Address):203.0.113.2(站点 B 的公共 IP)
      • 提议 (Proposal):site-to-site-proposal
    • 单击 OK 保存

步骤 3:在站点 B(分支办公室)上配置 IPsec

在站点 B 的 MikroTik 路由器上重复相同的步骤,但源地址和目标地址相反:

  1. 创建 IPsec 配置文件(与站点 A 相同)

  2. 创建 IPsec 提议(与站点 A 相同)

  3. 创建 IPsec 对等体:

    • 使用站点 A 的公共 IP (203.0.113.1) 进行配置
    • 使用与站点 A 相同的预共享密钥
  4. 创建 IPsec 策略:

    • 源地址 (Src. Address):192.168.2.0/24(站点 B 的本地网络)
    • 目标地址 (Dst. Address):192.168.1.0/24(站点 A 的本地网络)
    • SA 源地址 (SA Src. Address):203.0.113.2(站点 B 的公共 IP)
    • SA 目标地址 (SA Dst. Address):203.0.113.1(站点 A 的公共 IP)
    • 其他设置与站点 A 相同

步骤 4:在两个站点上配置防火墙规则

在两个 MikroTik 路由器上,添加防火墙规则以允许 IPsec 流量:

  1. 导航到 IP → Firewall → Filter Rules

  2. 添加规则以允许 IPsec 流量:

    • 添加一条规则以允许 UDP 端口 500 (IKE)
    • 添加一条规则以允许 UDP 端口 4500 (IPsec NAT-T)
    • 添加一条规则以允许 IP 协议 50 (ESP)
    • 添加一条规则以允许 IP 协议 51 (AH)
  3. 确保防火墙规则允许本地网络之间的流量

步骤 5:配置路由(如果需要)

如果您的任一站点具有包含多个子网的更复杂的网络,您可能需要添加静态路由:

  1. 导航到 IP → Routes
  2. 单击 + 按钮添加新路由
  3. 配置到通过 IPsec 隧道的远程网络的路由
  4. 对任何需要通过隧道进行通信的其他子网重复此操作

步骤 6:测试连接

在两个站点上完成配置后:

  1. 通过转到 IP → IPsec → Active Peers 检查 IPsec 状态

    • 您应该看到两个站点之间已建立连接
  2. 通过 ping 隧道对面的设备来测试连接:

    • 从站点 A 网络中的设备 ping 站点 B 网络中的设备
    • 从站点 B 网络中的设备 ping 站点 A 网络中的设备
  3. 如果 ping 成功,请尝试访问隧道对面的其他服务

步骤 7:监控和故障排除

要监控和排除您的 IPsec 隧道故障:

  1. 检查 IPsec 统计信息:

    • 转到 IP → IPsec → Statistics
    • 查找活动的安全关联 (SA)
  2. 查看日志中与 IPsec 相关的消息:

    • 转到 System → Logs
    • 过滤与 IPsec 相关的条目
  3. 使用 ping 工具和路由选项测试隧道:

    • 转到 Tools → Ping
    • 输入远程站点设备的 IP
    • 源地址 (Src. Address) 设置为您的本地接口 IP

迷你常见问题解答

如果 IPsec 隧道无法建立,我该怎么办?

检查两侧的防火墙规则,确保允许 IPsec 流量。验证预共享密钥是否完全匹配。如果任一路由器位于另一个 NAT 设备之后,请检查 NAT 问题。查看日志以获取具体的错误消息。

我如何验证流量是否真的通过 IPsec 隧道?

使用 IP → IPsec → Statistics 页面查看数据包是否正在加密和解密。您还可以使用 Torch 工具(Tools → Torch)监控接口上的流量,并查看数据包是否正在通过 IPsec 接口流动。

第 7 节:高级 VPN 配置和最佳实践

现在我们已经介绍了基本的 VPN 设置,让我们探讨一些高级配置和最佳实践,以增强 MikroTik VPN 部署的安全性、性能和可管理性。

实施分流隧道

分流隧道允许 VPN 客户端直接访问远程网络和互联网,从而提高互联网流量的性能:

  1. 对于 OpenVPN:

    • 在客户端配置文件中,修改 redirect-gateway 指令或使用特定的 route 语句
    • 示例:route 192.168.1.0 255.255.255.0(仅将流量路由到 192.168.1.0/24 网络通过 VPN)
  2. 对于 WireGuard:

    • 在客户端配置中,修改 AllowedIPs 设置
    • 而不是 0.0.0.0/0(它路由所有流量),使用特定网络:
    • 示例:AllowedIPs = 10.10.10.0/24, 192.168.1.0/24
  3. 对于 L2TP/IPsec:

    • 在 Windows 客户端上,编辑 VPN 连接属性
    • 转到“网络”→“IPv4”→“属性”→“高级”
    • 取消勾选“在远程网络上使用默认网关”

实施双因素身份验证

通过双因素身份验证增强安全性:

  1. RADIUS 身份验证:

    • 设置 RADIUS 服务器(您可以使用 MikroTik 的 User Manager 软件包)
    • 配置您的 VPN 服务器以使用 RADIUS:
      • 在左侧菜单中转到 Radius
      • 为您的 VPN 服务添加新的 RADIUS 客户端
      • 在您的 VPN 服务器设置中,启用 RADIUS 身份验证
  2. 证书 + 密码身份验证:

    • 对于 OpenVPN,同时需要证书和用户名/密码:
      • 在服务器配置中,设置 auth-user-pass-verify 脚本
      • 确保未设置 client-cert-not-required
  3. 基于时间的单次密码 (TOTP):

    • 在您的 MikroTik 上安装 TOTP 软件包
    • 为用户配置 TOTP 密钥
    • 设置您的身份验证以要求 TOTP 代码

优化 VPN 性能

通过这些调整提高 VPN 性能:

  1. 调整 MTU 设置:

    • 使用带有“不分片”标志的 ping 测试找到连接的最佳 MTU
    • 在您的 VPN 接口上设置适当的 MTU
    • 对于 OpenVPN,典型值为 1400-1450
    • 对于 WireGuard,1420 通常是最佳值
  2. 启用硬件加速:

    • 如果您的 MikroTik 型号支持硬件加密:
      • 转到 System → Resources
      • 检查硬件加密是否可用并已启用
      • 对于 IPsec,转到 IP → IPsec → Settings 并启用硬件加速
  3. 选择高效协议:

    • 如果可能,OpenVPN 使用 UDP 而不是 TCP
    • 对于 RouterOS v7+ 上的更好性能,考虑 WireGuard
    • 使用支持硬件加速的现代加密算法

实施故障转移和负载均衡

对于关键任务 VPN 连接,实施故障转移或负载均衡:

  1. 双 WAN 故障转移:

    • 在您的 MikroTik 上配置多个 WAN 连接
    • 使用路由标记和基于策略的路由设置故障转移路由
    • 配置您的 VPN 以在主连接失败时自动重新连接
  2. 站点到站点 VPN 冗余:

    • 使用不同的 WAN 连接在站点之间设置多个隧道
    • 使用路由度量来优先选择主隧道
    • 在 VPN 隧道上配置动态路由协议(OSPF 或 BGP)以实现自动故障转移
  3. 负载均衡:

    • 对于多个远程访问用户,将他们分布到多个 VPN 服务器上
    • 使用 DNS 轮询或负载均衡器来分配连接请求

监控和日志记录 VPN 连接

为您的 VPN 服务设置全面的监控:

  1. 配置详细日志记录:

    • 转到 System → Logging
    • 为 VPN 相关事件添加新的日志记录操作
    • 设置适当的主题(例如,ppp, ipsec, ovpn)
  2. 设置 SNMP 监控:

    • 转到 IP → SNMP
    • 启用 SNMP 服务
    • 配置社区字符串和访问列表
    • 使用 SNMP 监控工具跟踪 VPN 连接和性能
  3. 创建连接跟踪脚本:

    • 使用 RouterOS 脚本跟踪 VPN 连接
    • 为连接失败尝试或隧道中断事件设置电子邮件警报
    • 监控 IPsec 隧道状态并发送警报的示例脚本
plaintext
/system script
add name="monitor-ipsec" source={
    :if ([/ip ipsec policy find where dst-address="192.168.2.0/24" and invalid=yes] != "") do={
        /tool e-mail send to="[email protected]" subject="IPsec Tunnel Down" body="The IPsec tunnel to Branch Office is down."
    }
}

/system scheduler
add interval=5m name="check-ipsec" on-event=monitor-ipsec start-time=startup

迷你常见问题解答

我如何通过 VPN 安全地允许远程管理我的 MikroTik 路由器?

专门为管理访问创建一个单独的 VPN 配置文件,并采用更严格的安全设置。使用防火墙规则仅允许从 VPN 子网进行管理访问 (Winbox, SSH, WebFig)。考虑实施基于 IP 的访问列表和双因素身份验证以增加安全性。

处理站点到站点 VPN 的动态 IP 地址的最佳方法是什么?

使用动态 DNS 服务来跟踪变化的 IP 地址。配置您的 IPsec 或 OpenVPN 以使用主机名而不是 IP 地址。对于 IPsec,您可能需要使用脚本在 IP 地址更改时更新对等体地址。或者,考虑使用 RouterOS 的“mode-config”功能来处理 IPsec 的动态寻址。

结论

在您的 MikroTik 路由器上设置 VPN 可为您的网络资源提供安全的远程访问,并实现多个位置之间的安全站点到站点连接。在本综合指南中,我们涵盖了各种 VPN 实现选项,从广泛兼容的 L2TP/IPsec 到现代高效的 WireGuard 协议。

我们已逐步引导您完成每种 VPN 类型的配置过程,包括必要的证书、加密设置、防火墙规则和客户端配置。我们还探讨了高级配置,如分流隧道、双因素身份验证和性能优化技术,以帮助您构建一个健壮且安全的 VPN 基础设施。

MikroTik 路由器以远低于许多企业解决方案的成本提供卓越的灵活性和强大的 VPN 功能。通过遵循本指南中的说明,您可以利用这些功能创建安全连接,保护您的数据并实现对网络资源的无缝远程访问。

请记住,安全是一个持续的过程,而不是一次性设置。定期更新您的 RouterOS 固件,检查您的 VPN 配置,监控日志中的异常活动,并根据需要调整您的安全设置,以保持强大的安全态势。

对于针对您特定需求的专业 VPN 解决方案,请考虑 TildaVPS 的 MikroTik 服务器产品,它们提供优化的硬件和预配置环境,可在最短的设置时间内运行强大的 VPN 服务。

常见问题 (FAQ)

我应该为我的 MikroTik 路由器选择哪种 VPN 协议?

最佳协议取决于您的具体需求。L2TP/IPsec 提供与大多数设备的广泛兼容性。OpenVPN 在安全性与灵活性之间取得了良好的平衡。WireGuard(在 RouterOS v7+ 中可用)提供最佳性能和简洁性。对于分支机构之间的站点到站点连接,IPsec 通常是首选,因为它具有强大的安全性和广泛的企业采用率。

如何排查 MikroTik 上的 VPN 连接问题?

首先检查日志(System → Logs)以获取具体的错误消息。验证您的防火墙规则是否允许 VPN 流量通过适当的端口。对于基于证书的 VPN(如 OpenVPN),请确保证书已正确签名且未过期。使用 ping 和 traceroute 测试连接,以确定连接在哪里失败。对于 IPsec,通过查看 IP → IPsec → Active Peers 来检查安全关联 (SA) 是否已建立。

我可以在同一台 MikroTik 路由器上运行多个 VPN 服务器吗?

是的,您可以在一台 MikroTik 路由器上同时运行多个 VPN 协议。例如,您可以为移动客户端提供 L2TP/IPsec,为远程工作人员提供 OpenVPN,并为站点到站点连接提供 IPsec。只需确保每项服务使用不同的端口并具有适当的防火墙规则。请注意您路由器的硬件功能,因为运行多个 VPN 服务并连接大量客户端可能会占用大量 CPU。

我如何提高 MikroTik 路由器上的 VPN 安全性?

通过使用强加密算法 (AES-256)、实施双因素身份验证、定期轮换预共享密钥和密码、尽可能使用基于证书的身份验证、实施严格的防火墙规则以仅限制对必要资源的访问,以及将您的 RouterOS 更新到最新的稳定版本以修补安全漏洞来增强 VPN 安全性。

我的 MikroTik 路由器可以支持多少个并发 VPN 用户?

这取决于您路由器的硬件规格,特别是 CPU 功率和可用 RAM。入门级型号(如 hAP 系列)可能可以处理 5-10 个并发用户,中端型号(如 RB4011)可以支持 20-30 个用户,而高端型号(如 CCR 系列)可以处理 50+ 个并发连接。WireGuard 通常比 OpenVPN 或 IPsec 更高效,允许在相同硬件上支持更多并发连接。

我可以从移动设备访问我的 MikroTik VPN 吗?

是的,本指南中讨论的所有 VPN 协议都可以从移动设备使用。L2TP/IPsec 和 IKEv2 在 iOS 和 Android 上都有原生支持。对于 OpenVPN,您可以使用官方的 OpenVPN Connect 应用程序。WireGuard 在这两个平台上都有出色的移动应用程序。为移动设备设置 VPN 时,请考虑实施分流隧道以优化电池寿命和数据使用。

如何在有互联网限制的国家/地区设置 MikroTik 上的 VPN 服务器?

在限制性环境中,标准 VPN 端口通常会被阻止。配置您的 VPN 以使用常用端口,例如 443 (HTTPS) 或 53 (DNS),这些端口很少被阻止。对于 OpenVPN,使用 TCP 而不是 UDP,因为 TCP 更难检测。考虑实施混淆技术,如 stunnel 或 obfsproxy 来伪装 VPN 流量。WireGuard 可以配置为在任何端口上运行,使其在绕过限制方面具有灵活性。

远程访问 VPN 和站点到站点 VPN 有什么区别?

远程访问 VPN 将单个用户连接到网络,允许他们访问资源,就好像他们物理上存在于该位置一样。这非常适合远程工作人员或在旅行时访问您的家庭网络。站点到站点 VPN 将整个网络连接在一起,允许每个位置的所有设备相互通信。这通常用于将分支机构连接到总部或连接到云环境。

如何监控连接到我的 MikroTik VPN 的用户?

对于实时监控,请检查相应 VPN 部分中的活动连接(L2TP 和 PPTP 的 PPP → Active Connections,IPsec 的 IP → IPsec → Active Peers,WireGuard 的 Interface → WireGuard → Peers)。对于历史数据,配置日志记录(System → Logging)以记录连接事件。您还可以使用 SNMP 监控工具或设置自定义脚本来跟踪连接并生成报告。

是否可以限制 VPN 访问到特定的时间或日期?

是的,您可以使用计划程序脚本或防火墙规则实施基于时间的限制。创建基于时间的防火墙规则,仅在特定时间允许 VPN 流量。或者,使用具有时间限制的用户配置文件或编写自定义脚本,根据计划启用/禁用 VPN 服务。这对于强制执行办公时间访问或实施维护窗口非常有用。

主要收获

  • MikroTik 路由器支持多种 VPN 协议,包括 L2TP/IPsec、OpenVPN、WireGuard 和 IPsec,为您提供了选择最适合您特定需求的解决方案的灵活性。

  • WireGuard(在 RouterOS v7+ 中可用)提供最佳性能和简洁性,而 IPsec 为站点到站点连接提供强大的安全性,L2TP/IPsec 提供最广泛的设备兼容性。

  • 正确的防火墙配置对于 VPN 安全至关重要——始终创建特定规则以仅允许必要的 VPN 流量,并为您的网络资源实施适当的访问控制。

  • 分流隧道、双因素身份验证和冗余连接等高级功能可以显著增强您的 VPN 实现的安全性。

  • 定期监控、日志记录和维护您的 VPN 设置对于保持安全性和确保长期可靠的性能至关重要。

词汇表

IPsec (Internet Protocol Security):一组协议,对 IP 数据包进行身份验证和加密,以在网络设备之间提供安全的加密通信。

L2TP (Layer 2 Tunneling Protocol):用于支持 VPN 的隧道协议,通常与 IPsec 结合使用以进行加密。

OpenVPN:一种开源 VPN 协议,使用 SSL/TLS 进行密钥交换,并可同时在 UDP 和 TCP 上运行。

WireGuard:一种现代、更快、更简洁的 VPN 协议,专注于性能和易于实现。

分流隧道 (Split Tunneling):一种 VPN 功能,允许用户通过同一物理网络连接同时访问不同的网络(公共和私有)。

预共享密钥 (Pre-shared Key, PSK):在 VPN 连接中用于身份验证的共享密钥。

证书颁发机构 (Certificate Authority, CA):颁发数字证书的实体,验证特定公钥属于特定实体。

最大传输单元 (Maximum Transmission Unit, MTU):可在单个网络层事务中通信的最大协议数据单元的大小。

NAT 穿透 (NAT Traversal):在网络地址转换器之间建立和维护连接的技术。

双因素身份验证 (Two-factor Authentication, 2FA):一种安全过程,用户提供两个不同的身份验证因素来验证其身份。

Categories:
MikroTik
Tags:
# L2TP# VPN# 网络安全