保姆级教程:手把手教你用VMware UAG 21.11.1配置Horizon外网访问(含防火墙映射与连接服务器指纹配置)
Horizon UAG网关服务器全流程配置实战指南
开篇:为什么需要UAG网关
在虚拟桌面基础架构(VDI)的实际部署中,安全远程访问一直是企业IT团队面临的核心挑战。传统直接将连接服务器暴露在公网的方式不仅存在安全隐患,还缺乏必要的流量优化和负载均衡能力。这正是VMware Unified Access Gateway(UAG)的价值所在——它作为Horizon环境的安全缓冲层,既能对外提供加密接入点,又能对内保护核心连接服务器。
想象一下这样的场景:一家跨国企业的员工需要从全球各地访问内部虚拟桌面,但IT部门既不能开放所有防火墙端口,又无法为每个分支机构部署专用连接服务器。UAG的多协议代理和智能流量路由功能恰好解决了这一痛点。通过本文,您将掌握从零开始部署UAG 21.11.1的全套方法论,包括:
- 网络架构设计:如何规划内外网端口映射
- 证书指纹机制:理解并配置双向认证
- 服务状态监控:快速诊断连接问题
- 高可用方案:多UAG节点的负载均衡策略
提示:建议在实验环境完成首次配置后,再在生产环境实施。所有操作需在维护窗口期进行。
1. 环境准备与OVF部署
1.1 硬件与网络规划
在导入UAG OVF模板前,需要明确以下网络参数:
| 配置项 | 示例值 | 说明 |
|---|---|---|
| 内网IP | 192.168.230.44 | UAG管理接口地址 |
| 公网IP | 115.237.109.73 | 客户端访问地址 |
| 管理端口 | 9443/TCP | Web配置端口 |
| 服务端口 | 443,8443/TCP | Horizon客户端连接端口 |
| DNS服务器 | 192.168.230.2 | 必须能解析连接服务器FQDN |
关键准备步骤:
- 在防火墙上创建DNAT规则:
- 将公网IP的9000端口映射到UAG内网IP的443端口
- 将公网IP的9001端口映射到UAG内网IP的8443端口
- 确保vCenter集群有足够资源:
- 至少2vCPU/4GB内存/50GB存储
- 推荐配置4vCPU/8GB内存
1.2 OVF模板导入
通过vSphere Client执行以下操作序列:
# 验证OVF文件完整性 md5sum euc-unified-access-gateway-21.11.1.0-19072784_OVF10.ova- 右键目标集群 → 选择"部署OVF模板"
- 上传本地OVA文件时,注意选择精简置备模式
- 网络配置建议:
- 单臂模式:1张网卡(需配置策略路由)
- 双栈模式:2张网卡(分离管理流量与业务流量)
注意:时区设置必须在首次启动时完成,后期修改需要重启服务。
2. UAG核心服务配置
2.1 管理界面初始化
通过浏览器访问https://<UAG_IP>:9443进入配置向导,关键配置项包括:
- Edge服务:启用Horizon代理
- 连接服务器地址:填写FQDN格式(如
horizon01.corp.com) - 指纹验证:必须与连接服务器证书匹配
获取指纹的快速方法:
1. 浏览器访问连接服务器URL 2. 点击锁图标 → 查看证书 → 详细信息 3. 复制SHA-256指纹值(如示例中的83:4F:C6...)典型问题排查:
- 服务状态显示红色:检查防火墙规则和DNS解析
- 证书错误:确认时间同步(NTP服务必须正常)
2.2 高可用配置
对于生产环境,建议部署至少2台UAG实例:
- 在每台UAG配置相同的连接服务器列表
- 使用负载均衡器(如F5)分发流量
- 配置健康检查路径:
/portal/info.jsp
3. 连接服务器对接
3.1 安全策略调整
在连接服务器上创建locked.properties文件:
# 路径:C:\Program Files\VMware\VMware View\Server\sslgateway\conf\ checkOrigin=false enableCORS=false allowOrigin=*执行服务重启命令:
Restart-Service -Name "VMware Horizon View Security Gateway"3.2 UAG注册流程
- 登录Horizon控制台 → 服务器 → 网关
- 点击"注册"并输入UAG主机名
- 关键步骤:取消勾选"默认网关"选项
4. 验证与优化
4.1 端到端测试方案
客户端测试矩阵:
| 测试项目 | 预期结果 | 验证方法 |
|---|---|---|
| HTML Access | 能加载登录页面 | Chrome访问https://公网IP:9000 |
| PCoIP连接 | 建立远程桌面会话 | Horizon Client直连测试 |
| 双因素认证 | 弹出二次验证界面 | 配置RSA/SMS认证测试 |
4.2 性能调优建议
- 内核参数调整:
# 修改/etc/sysctl.conf net.core.somaxconn = 2048 net.ipv4.tcp_tw_reuse = 1 - 日志监控:
- 关键日志路径:
/opt/vmware/gateway/logs/ - 使用命令实时监控:
tail -f esmanager-std-out.log | grep -i error
- 关键日志路径:
5. 进阶配置技巧
5.1 证书管理最佳实践
- 使用企业CA颁发证书(避免自签名)
- 证书SAN需包含:
- UAG主机名
- 公网访问域名
- 可能的负载均衡器VIP
5.2 网络隔离方案
对于高安全环境,建议采用三网卡架构:
- 管理网络:带外管理接口
- DMZ网络:面向公网的服务端口
- 内网网络:连接后端Horizon组件
防火墙规则配置示例:
# DMZ到内网规则 允许 TCP 443 → 连接服务器IP 允许 TCP 8443 → 连接服务器IP 拒绝所有其他Horizon相关端口6. 故障诊断手册
6.1 常见错误代码
| 错误代码 | 可能原因 | 解决方案 |
|---|---|---|
| 503 | UAG服务未启动 | 检查edge服务状态 |
| 525 | SSL握手失败 | 验证证书链完整性 |
| 302 | 重定向循环 | 检查locked.properties配置 |
6.2 数据包捕获方法
在UAG上运行tcpdump:
tcpdump -i any -w /tmp/uag_debug.pcap host <连接服务器IP> and port 443分析工具推荐:
- Wireshark(图形化分析)
- tshark(命令行过滤):
tshark -r uag_debug.pcap -Y "ssl.handshake"
7. 版本升级策略
- 备份关键配置:
tar -czvf /tmp/uag_backup_$(date +%F).tar.gz /opt/vmware/gateway/conf/ - 采用滚动升级方式:
- 先升级备用节点
- 测试通过后切换流量
- 最后升级主节点
升级后必须验证:
- 所有服务状态为绿色
- 现有会话保持不中断
- 新连接功能正常
8. 安全加固措施
8.1 访问控制清单
在UAG配置页面设置:
系统配置 → 访问控制 → 添加允许的IP段8.2 密码策略
修改默认admin密码
启用定期更换策略(建议90天)
配置账户锁定机制:
连续5次失败登录 → 锁定30分钟
9. 监控与告警
9.1 SNMP配置
- 启用SNMPv3:
系统配置 → 监控 → SNMP设置 - 配置团体名和访问权限
9.2 Prometheus指标
暴露的监控端点:
/metrics:基础系统指标/health:服务健康状态
Grafana仪表板示例查询:
sum(rate(uag_connections_total[5m])) by (protocol)10. 备份与恢复
10.1 配置导出
通过API获取完整配置:
curl -k -u admin:password https://localhost:9443/rest/v1/config/export -o uag_config.json10.2 灾难恢复步骤
- 部署新UAG实例
- 导入备份的JSON配置
- 验证服务状态
11. 性能基准测试
11.1 压力测试工具
使用JMeter模拟用户登录:
<ThreadGroup> <numThreads>100</numThreads> <rampUp>60</rampUp> <loopCount>10</loopCount> </ThreadGroup>11.2 关键指标
| 指标 | 达标值 |
|---|---|
| 登录响应时间 | <3秒 |
| 并发会话数 | ≥500 |
| 资源利用率 | CPU<70% |
12. 客户端优化建议
12.1 HTML5参数调整
在UAG配置中增加:
blast.maxBandwidth=20000 pcoip.maxBandwidth=5000012.2 客户端策略
推荐组策略设置:
- 启用UDP传输
- 禁用打印机重定向
- 限制剪贴板操作
13. 多站点部署架构
13.1 全局负载均衡
DNS配置示例:
horizon.company.com → - 地理位置1: uag01-site1 (权重60%) - 地理位置2: uag01-site2 (权重40%)13.2 配置同步方案
使用Ansible批量管理:
- hosts: uag_nodes tasks: - name: Deploy base config template: src: uag_config.j2 dest: /opt/vmware/gateway/conf/server.xml14. 容器化部署探索
14.1 Docker运行示例
FROM photon:4.0 COPY uag-21.11.1.rpm /tmp RUN rpm -ivh /tmp/uag-21.11.1.rpm EXPOSE 443 8443 944314.2 Kubernetes注意事项
- 需要hostNetwork模式
- 配置livenessProbe检查9443端口
- 建议使用StatefulSet保持持久化存储
15. 自动化运维实践
15.1 API调用示例
获取服务状态:
import requests response = requests.get( "https://uag01:9443/rest/v1/monitor", auth=("admin", "password"), verify=False ) print(response.json()['edgeStatus'])15.2 Terraform部署
resource "vsphere_virtual_machine" "uag" { name = "uag-prod-01" resource_pool_id = data.vsphere_resource_pool.pool.id datastore_id = data.vsphere_datastore.datastore.id num_cpus = 4 memory = 8192 guest_id = "vmwarePhoton64Guest" network_interface { network_id = data.vsphere_network.network.id } }16. 网络拓扑设计
16.1 典型部署架构
[互联网] │ ├── [防火墙] → [UAG DMZ] → [内网连接服务器] │ └── [全球负载均衡器] ├── 区域A UAG集群 └── 区域B UAG集群16.2 流量路径分析
- 客户端 → UAG(443) → 防火墙NAT → 连接服务器
- PCoIP数据 → UAG(4172) → 安全网关 → 桌面代理
17. 证书轮换流程
17.1 无中断更新步骤
- 上传新证书到UAG
- 配置为次要证书
- 测试新证书有效性
- 切换为主要证书
- 移除旧证书
17.2 OCSP配置
在Nginx反向代理添加:
ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 valid=300s;18. 合规性检查
18.1 PCI-DSS要求
- 启用TLS 1.2+
- 禁用弱密码套件
- 配置严格的CSP头
18.2 审计日志配置
log.retention.days=90 log.rotation.size=100MB syslog.server=192.168.100.10:51419. 带宽管理
19.1 QoS策略
在UAG配置限速:
每个会话最大带宽:10Mbps 突发流量允许:15Mbps/30秒19.2 流量整形
使用tc命令:
tc qdisc add dev eth0 root tbf rate 100mbit burst 1mbit latency 50ms20. 移动端优化
20.1 触摸体验增强
在UAG配置中启用:
gestureSupport=true touchOptimizationLevel=high20.2 客户端缓存设置
调整Blast参数:
imageCacheSize=200 glyphCacheSize=50