tinc 是一个虚拟专用网络(VPN)守护程序,它使用加密隧道在互联网上的主机之间建立安全的专用网络。tinc 是自由软件,基于 GNU 通用公共许可证第 2 版或更高版本授权。由于 VPN 在 IP 级别以普通网络设备的形式呈现,无需调整任何现有软件,站点可通过互联网相互共享信息,不会将信息暴露给他人。tinc 具有以下特点:
- 加密、认证和压缩: 所有流量可选使用 zlib 或 LZO 压缩,并使用 LibreSSL 或 OpenSSL 加密。
- 自动全网状路由: 无论节点之间如何配置连接,VPN 流量始终(如果可能)直接发送到目的地,无需经过中间跳转。
- NAT 穿越: 只要 VPN 中有一个节点允许来自公共 IP 地址的入站连接(即使是动态 IP),tinc 即可实现 NAT 穿越,使节点之间直接通信。
- 轻松扩展: 添加新节点时,只需增加一个额外的配置文件。
- 可桥接以太网段: 可以将多个以太网段链接在一起,像单个网段一样工作。
- 支持 IPv6: 在主流平台上支持 IPv6。
pfSense 对 tinc 提供了良好支持,可以通过安装 tinc 插件进行配置和使用。下面以 pfSense Plus 22.01 为例,介绍在两台防火墙之间建立 tinc VPN 隧道的过程。
网络配置
防火墙 A(深色截图):
WAN IP:202.10X.XX.XX
LAN IP:192.168.11.1/24
防火墙 B(浅色截图):
WAN IP:117.4X.XX.XX
LAN IP:192.168.12.1/24
安装 tinc
首先在两台防火墙上安装 tinc 插件。导航到 系统 > 插件管理,在 可用插件 选项卡中搜索 tinc,找到后点击右侧的 安装 按钮进行安装。安装完成后即可进行隧道配置。
防火墙上的 tinc 隧道配置分为三部分:隧道设置、远程主机设置和防火墙规则添加。
隧道设置
导航到 VPN > tinc,在 设置 选项卡中配置参数。
SITEA:
- 启用 Tinc VPN:选中
- 名称:SITEA
- 本地 IP:192.168.11.1
- 本地子网:192.168.11.0/24
- VPN 掩码:255.255.0.0
- 地址族:IPv4
- 生成 RSA 密钥对:选中

单击 显示高级选项,在 额外 Tinc 参数 栏输入:
Node=router
Cipher=blowfish
Digest=sha1
SITEB:
- 启用 Tinc VPN:选中
- 名称:SITEB
- 本地 IP:192.168.12.1
- 本地子网:192.168.12.0/24
- VPN 掩码:255.255.0.0
- 地址族:IPv4
- 生成 RSA 密钥对:选中

高级选项中的额外 Tinc 参数与 SITEA 一致。
添加主机
导航到 VPN > tinc 的 主机 选项卡,分别添加对方为远程主机。
SITEA:
- 名称:SITEB
- 地址:SITEB 的 WAN 地址,此处为 117.4X.XX.XX
- 子网:SITEB 的 LAN 子网,此处为 192.168.12.0/24
- 启动时连接:不选(只需一端选中即可)
- RSA 公共密钥:从 SITEB 的 tinc VPN 隧道中复制

保存后主机列表如下:

SITEB:
- 名称:SITEA
- 地址:SITEA 的 WAN 地址,此处为 202.1X.XX.XX
- 子网:SITEA 的 LAN 子网,此处为 192.168.11.0/24
- 启动时连接:选中
- RSA 公共密钥:从 SITEA 的 tinc VPN 隧道中复制

保存后主机列表如下:

添加防火墙规则
需要添加两条防火墙规则:一条允许隧道访问任意网络,另一条在 WAN 接口上放行 tinc 的默认通信端口 655。
在 pkg_tinc 选项卡上添加一条 any to any 规则,允许通过隧道访问任意网络。

在 WAN 选项卡上添加一条放行 TCP 协议 655 端口的规则,并将其置于规则列表首位。

两台防火墙的规则相同,此处仅以 SITEA 为例。
连接测试
配置无误后,应可正常连接。
导航到 状态 > Tinc VPN,可查看隧道连接信息:

在防火墙上使用 ping 测试,可正常 ping 通远程网关:

在客户端电脑上运行 ping,也能正常 ping 通远程网关:

使用 iperf 进行测速,300M 上下行对等企业专线,测得 VPN 隧道速度如下:

至此,pfSense 上的 Tinc VPN 站点到站点隧道配置完成。
觉得内容不错?我要