在国产化替代的大背景下,越来越多的企业将业务系统迁移到红旗Linux等国产操作系统上运行。当内网资源需要通过零信任架构对外提供访问时,HashiCorp的Boundary就成为了一个常见的选择。Boundary通过会话代理机制,让用户无需直接暴露内网地址,只需连接到Boundary控制器,就能借助Worker节点中转访问目标资源。本文将以红旗Linux服务器为例,完整演示Boundary客户端的安装、认证以及会话代理的配置过程。

一、在红旗Linux上安装Boundary CLI
Boundary官方提供了Linux平台的二进制发行包,红旗Linux基于Linux内核,兼容性良好。可以直接从官方下载源获取对应版本的压缩包。假设我们使用命令行下载并解压到本地:
# 下载 Boundary CLI(版本号请根据实际发布情况选择) wget https://releases.hashicorp.com/boundary/0.16.0/boundary_0.16.0_linux_amd64.zip # 解压到 /usr/local/bin 目录 unzip boundary_0.16.0_linux_amd64.zip -d /usr/local/bin/ # 赋予可执行权限 chmod +x /usr/local/bin/boundary # 验证安装结果 boundary version
如果系统提示缺少unzip工具,可以先用sudo yum install unzip补齐依赖。对于ARM架构的国产化整机(如飞腾、鲲鹏平台),下载时务必选择linux_arm64版本的包,否则执行时会报二进制文件格式错误。
安装完成后建议执行boundary version确认客户端版本与服务器端兼容。Boundary的客户端和控制器版本差异过大时,可能出现协议协商失败的问题,生产环境中尽量保持版本一致或客户端版本略新。
二、配置认证信息与环境变量
Boundary的每次操作都需要指定认证相关的参数。为了不用在每个命令里重复输入,推荐使用环境变量进行统一配置:
# 设置Boundary控制器地址(替换为实际地址) export BOUNDARY_ADDR=https://boundary.example.ipipp.com:9200 # 可选:配置认证方式 export BOUNDARY_AUTH_METHOD_ID=ampw_1234567890 # 将上述命令写入 profile 持久化 echo 'export BOUNDARY_ADDR=https://boundary.example.ipipp.com:9200' >> ~/.bashrc source ~/.bashrc
接下来执行认证命令获取用户的访问令牌:
# 交互式输入用户名密码完成认证 boundary authenticate password \ -login-name=opsuser
认证成功后,Boundary CLI会将Keyring存储的令牌写入本地(默认路径为~/.config/boundary),后续命令会自动复用该令牌。需要注意的是,如果红旗Linux以最小化方式安装,图形化Keyring服务不存在,CLI会回退到内存模式,此时令牌在终端关闭后失效,建议在自动化脚本中通过BOUNDARY_TOKEN环境变量显式传递令牌。
三、建立会话代理连接目标资源
认证完成后,就可以针对某个目标(Target)发起会话。假设目标ID为ttcp_1234567890,执行以下命令:
# 发起会话连接 boundary connect -target-id=ttcp_1234567890
更常用的方式是代理转发。比如目标资源是一台SSH主机,可以用Boundary直接包装SSH命令:
# 通过Boundary代理执行SSH连接 boundary connect ssh -target-id=ttcp_1234567890 \ -username opsuser -host-id=host_1
这条命令的原理是:Boundary CLI在本地随机监听一个端口,将发往该端口的流量通过Worker加密转发到目标主机,再由目标主机上的Worker代理进程连接真实的22端口。整个过程对SSH客户端完全透明,用户无需感知内网拓扑。
如果需要访问的是数据库或Web服务,可以使用connect -listen-port指定固定本地端口:
# 固定监听本地15432端口,转发到PostgreSQL目标 boundary connect postgres -target-id=ttcp_pg_98765 \ -listen-port=15432 # 另开终端使用psql连接 psql -h 127.0.0.1 -p 15432 -U dbuser -d appdb
四、常见问题排查思路
配置过程中最常见的问题大致分为三类。第一类是网络不通,表现为连接控制器超时,此时应检查红旗Linux的防火墙设置,确认9200端口(控制器API)和9202端口(Worker代理)是否放行:
# 使用firewalld放行端口 sudo firewall-cmd --permanent --add-port=9200/tcp sudo firewall-cmd --permanent --add-port=9202/tcp sudo firewall-cmd --reload
第二类是TLS证书校验失败。企业内部部署的Boundary常用自签证书,客户端会报证书不受信任的错误。如果确认网络环境可信,可以临时通过_TLS_INSECURE=1前缀变量绕过校验,但生产环境正确做法是把内部CA证书安装到系统的信任列表中,路径一般为/etc/pki/ca-trust/source/anchors/,导入后执行update-ca-trust生效。
第三类是令牌过期导致的401错误,Boundary默认的令牌有效期为有限时长,长时间挂着的代理会话可能中途断开。可以在任务脚本中先判断认证状态,必要时重新执行boundary authenticate刷新令牌,或者采用更稳妥的做法,由管理员为自动化场景创建专用的Scope和Token,避免人工干预。
总体来说,在红旗Linux上配置Boundary会话代理的流程并不复杂,核心在于安装正确的二进制包、配好环境变量与认证令牌、选择合适的connect子命令。掌握这些要点后,无论是SSH登录、数据库访问还是HTTP服务的端口转发,都可以通过统一的零信任通道完成,显著提升内网资源访问的安全性和可审计性。