pfSense 上的 Client Export 与向外发起的 OpenVPN 实例
一个包为其他设备准备配置,另一个让 pfSense 主动发起连接。安装任一之前先确定由谁拨号,然后选择格式。
你装好 Client Export 包,打开它,服务器选择框却是空的。自然的结论是这个包坏了,或者 pfSense 根本不能当 VPN 客户端,而这两种判断都错。选择框为空,是因为 pfSense 上还没有配置远程访问服务器;而这个包从来就不是让防火墙向外拨号的工具。两件不同的事共用一个词,空列表正是其中一件被要求去做它并不做的事时发出的声音。
安装任何东西之前,先确定由谁发起
只问一个问题:哪台设备发起连接?如果出差员工主动连进办公室防火墙,那么 pfSense 是服务器,员工的笔记本是客户端。这种情况下你需要的包,是为笔记本准备材料,因为拨号的是笔记本这一侧。
如果 pfSense 向外连接别人的 VPN 服务,那么防火墙是客户端,对端由远端运营方掌握,你拨号的目标就是它。
两种情形都用了客户端这个词,混淆正是从这里开始。这个词描述的是一次连接中的角色,而不是某一类产品。
导出器是服务器侧的辅助工具
Client Export 取用 pfSense 上已经存在的远程访问服务器,生成连接设备所需的材料。它读取该服务器的设置、证书和隧道选项,再打包供别处使用。
这就是选择框只列出 Remote Access 模式服务器的原因。没有这样的服务器就没有可导出的内容,空列表是准确的报告,不是故障。先建好远程访问服务器,选择框会自己填满。这个先后顺序,比包内任何一项设置都更容易让人栽跟头。
包的参考文档 把这个依赖讲得很清楚。在假设它能替你创建服务器之前,先读一读。
向外发起的实例是另一份配置
让 pfSense 成为另一项服务的客户端,意味着创建一个 OpenVPN 客户端实例,填入该服务商的端点、端口、协议、凭据和信任材料。Netgate 把它与导出包分开记录,因为它在配置里是另一个对象。
安装导出器不会填上这些字段中的任何一个,也没有哪种导出格式会替你生成它们。如果服务商给了配置文件,你要把其中的值导入或抄进自己创建的实例。
把两份配置放进两个分开的脑子里的盒子。一个回答别的设备,另一个向别的服务器要隧道。
选择接收设备真能用的导出格式
导出有内联配置、打包归档,以及面向特定客户端应用的安装程序。选择依据应是接收设备实际能导入什么,而不是哪个下载看起来最全。
内联文件适合接受粘贴配置的客户端。归档携带多个独立文件,适合需要目录的客户端。安装程序则假定某个特定应用在该平台上可以被接受,这既是技术判断,也是政策判断。下载之前先问清接收方团队支持哪个客户端。
有些导出包含证书和私钥,而保护这些密钥材料的口令可能与用户账户口令不同。请通过获批的注册渠道交付材料,而不是把整份导出贴进工单当作配置示例。
站点到站点要的是角色和路由,不是包
分支隧道又是另一种设计。先确定哪一端承担服务器角色、哪一端承担客户端角色,然后在配置之前把两侧的路由网段定义清楚。
Client Export 对分支的路由、转发许可或回程路径没有任何意见,因为准备远程访问客户端材料就是它的全部工作。
先把角色和路由清单写下来,包的问题就自己有了答案。写错了,任何导出格式都救不了设计。回程路径同理:能到达中心、却收不到回应的分支,不是一条能用的隧道。