tinc是一个虚拟专用网络 (VPN) 守护程序,它使用加密隧道在Internet 上的主机之间建立安全的专用网络。tinc是自由软件,根据GNU 通用公共许可证第2版或更高版本获得许可。因为VPN在IP级别的网络代码上表现为普通的网络设备,不需要对现有的任何软件进行适配,允许VPN 站点通过Internet相互共享信息,而不会将任何信息暴露给其他人。tinc具有以下特点:
- 加密、认证和压缩:所有流量都可选使用zlib或LZO进行压缩,使用LibreSSL或 OpenSSL加密流量。
- 自动全网状路由:无论如何设置tinc来进行相互连接,VPN 流量始终(如果可能)直接发送到目的地,而无需通过中间跃点。
- NAT穿越:只要VPN中的一个节点允许公共 IP地址上的传入连接(即使它是动态 IP 地址),tinc 就能够进行NAT穿越,从而允许对等点之间的直接通信。
- 轻松扩展:当需要添加新节点时,只需添加一个额外的配置文件。
- 可以桥接以太网段:可以将多个以太网段链接在一起,像单个网段一样工作。
- 支持IPv6:在各种主流平台上支持IPv6的应用。
pfSense提供了对tinc的良好支持,可以通过安装tinc插件的方法进行配置和使用,下面以pfSense plus 22.01为例,介绍在两台防火墙之间通过tinc建立VPN隧道的过程。
网络配置
防火墙A(深色截图): 防火墙B(浅色截图):
WAN IP:202.10X.XX.XX 117.4X.XX.XX
LAN IP:192.168.11.1/24 192.168.12.1/24
安装tinc
首先在两台防火墙上安装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站点至站点隧道配置完成。
tinc vpn是不是对端都要公网ip啊
是的