📁 一、文件下载清单

FortiCare 下载页面有 12+ 个文件,名字很像但用途完全不同。以下是分类说明:

💡 关键区分逻辑

文件名格式:forticlientems_7.4.7.2194.M_dependencies_{OS}_{ARCH}.tar.gz

✅ 必须下载(4个文件,共 ~1.4GB)

forticlientems_7.4.7.2194.M.amd64.bin
761,747 KB (~744 MB)
主安装程序(Linux x86_64)。这是 EMS 本体,所有平台通用。
必须
forticlientems_7.4.7.2194.M_dependencies_rhel9_amd64.tar.gz
666,829 KB (~651 MB)
RHEL 9 依赖包(含 Python、PostgreSQL 客户端、lxml 等)。OS 和架构必须匹配。
必须
forticlientems_7.4.7.2194_pg_extension_rhel.tar
7 KB
pgAgent SQL 扩展。包含 pgagent 的 SQL 定义文件,需要在 RDS 上执行创建扩展。注意这个包里全是 SQL 文件(不是 .so),所以可以在 RDS 上直接用。
必须
forticlient-ems-7.4.7-release-notes.pdf
535 KB
Release Notes,包含已知问题、兼容性说明。部署前必读。
必须

⚠️ 条件下载(根据你的场景)

forticlientems_7.4.7.2194.M_migration_tool.zip
40,823 KB (~40 MB)
仅从 7.2.x Windows 迁移时需要。迁移工具,导出旧 EMS 配置导入新实例。如果是全新部署,不需要。
条件
CSB-260410-1-FCTEMS-746-747-Upgrade.pdf
84 KB
仅从 7.4.6 升级时需要。Critical Security Bulletin,说明 7.4.6→7.4.7 修复的安全问题。
条件
FortiClientEMSADConnector_7.4.7.msi
63,932 KB (~62 MB)
仅需要 AD 集成时下载。AD Connector 安装在 Windows 域控上,用于同步 AD 用户/组到 EMS。纯 Linux 部署不用。
条件

❌ 不需要下载的文件

文件大小为什么不需要
forticlientems_7.4.7.2194.M.arm64.bin565 MBARM64 架构,阿里云 ECS 用 amd64
*_dependencies_rhel9_arm64.tar.gz297 MBRHEL 9 + ARM64,架构不匹配
*_dependencies_ubuntu22_amd64.tar.gz751 MBUbuntu 22,你用 RHEL 9
*_dependencies_ubuntu22_arm64.tar.gz297 MBUbuntu 22 + ARM64,双重不匹配
*_dependencies_ubuntu24_amd64.tar.gz950 MBUbuntu 24,你用 RHEL 9
*_dependencies_ubuntu24_arm64.tar.gz779 MBUbuntu 24 + ARM64,双重不匹配
forticlientems_7.4.7.2194.M_docker_compose.zip10 KBDocker Compose 部署方式的配置文件,本手册用原生安装
forticlientems_7.4.7.2194.M_helm.zip12 KBKubernetes Helm Chart,不用 K8s 就不需要
forticlientems_7.4.7.2194.M_postgres-ha.tar.gz133 MBPostgreSQL HA 镜像,你用阿里云 RDS
MIB/SNMP MIB 文件,用于 SNMP 监控集成

🏗️ 二、架构概览

┌─────────────────────────────────────────────────────┐
│                   阿里云 VPC                          │
│  ┌──────────────────┐    ┌──────────────────────┐   │
│  │   ECS 实例         │    │   RDS PostgreSQL 18   │   │
│  │  RHEL 9           │    │  1vCPU / 2GB RAM      │   │
│  │  2vCPU / 4GB RAM  │◄──►│  40GB ESSD            │   │
│  │  100GB SSD        │    │  内网地址:rm-xxx.pg.rds│   │
│  │                   │    │  端口:5432            │   │
│  │  FortiEMS 7.4.7   │    │  pgAgent 扩展         │   │
│  └──────┬───────────┘    └──────────────────────┘   │
│         │                                            │
│    ┌────┴────┐                                       │
│    │ 安全组   │                                       │
│    │ 443/HTTPS│                                       │
│    │ 8013     │                                       │
│    │ 10443    │                                       │
│    └─────────┘                                       │
└─────────────────────────────────────────────────────┘

为什么选 RHEL 9 + RDS PostgreSQL 18

方案优点缺点
RHEL 9 + RDS PG18(推荐 ✅)企业级长期支持;RDS 自动备份/高可用/监控;Fortinet 官方支持;pgAgent 扩展兼容好RDS 有额外费用;RHEL 镜像许可费用
Ubuntu 22 + RDS免费镜像;社区资源丰富Fortinet 官方依赖包需独立下载
ECS + 本地 PostgreSQL省钱需自行维护备份、高可用、升级;RHEL 9 上本地 PG 有多个已知 bug

🖥️ 三、阿里云资源规划

3.1 ECS 实例配置

配置项推荐值说明
实例规格ecs.c7.xlarge(4vCPU 8GB)Fortinet 推荐最低 4vCPU/8GB。小规格会导致安装失败或运行缓慢
操作系统Red Hat Enterprise Linux 9 64位与 RHEL 9 dependencies 包匹配
系统盘100GB ESSD PL0EMS 安装+日志+数据库缓存。最低 50GB,推荐 100GB
网络VPC 专有网络与 RDS 同 VPC 同交换机,内网互通
公网 IP弹性公网 IP(EIP)用于 EMS Web 管理和 Endpoint Agent 连接
安全组见下方规则表

3.2 安全组规则

方向协议端口源/目标用途
入方向TCP4430.0.0.0/0(或限定IP)EMS Web 管理 + Agent 通信(HTTPS)
入方向TCP80130.0.0.0/0(或限定IP)EMS 内部通信端口
入方向TCP104430.0.0.0/0(或限定IP)EMS Fabric Agent 端口
出方向TCP5432RDS 内网地址连接 RDS PostgreSQL
出方向TCP4430.0.0.0/0EMS 联网激活 + FortiGuard 更新

3.3 RDS PostgreSQL 配置

配置项推荐值说明
引擎PostgreSQL 18EMS 7.4.7 支持 PG 18,选择最新稳定版
实例规格rds.pg.s2.medium(1vCPU 2GB)起步先用最低档,不够再在线升配。EMS 管理端点不是数据库密集型应用
存储40GB ESSD PL0初始 40GB 足够,后期可在线扩容
网络同 VPC 同交换机与 ECS 内网互通,延迟 <1ms
账号高权限账号(初始账号)EMS 安装时需要创建数据库,必须用高权限账号
白名单添加 ECS 内网 IPRDS 默认拒绝所有连接,必须加白名单
备份自动备份(推荐每天)RDS 自动备份,无需手动操作
⚠️ RDS 注意事项

🔧 四、逐步骤安装操作

⚠️ 前置条件
1
购买并配置 RDS PostgreSQL 18

在阿里云 RDS 控制台创建 PostgreSQL 18 实例:

  • 选择 PostgreSQL 18 引擎
  • 实例规格:rds.pg.s2.large(2vCPU 4GB)
  • 存储:100GB ESSD PL0
  • VPC 和交换机:与 ECS 相同
  • 创建高权限账号(记住用户名和密码,后面要用)

RDS 参数调优(可选)

大部分参数用 RDS 默认值就行。以下仅作参考,不是必须改的

参数推荐值说明
max_connections1092Fortinet 官方推荐值。如果 RDS 默认值太小(如 100)才需要改大
shared_buffers❌ RDS 托管参数,不能手动改,平台自动管理
effective_cache_size1536MB查询规划器参数,可以改
work_mem5MB可以改
⚠️ 不要改 wal_level 和 max_wal_senders

RDS 自带主备高可用,内部依赖 wal_levelmax_wal_senders 做同步。改成 minimal / 0破坏 RDS 高可用。这些参数留给 RDS 平台管理,不要动。

配置白名单

RDS 控制台 → 数据安全性白名单设置 → 添加 ECS 的内网 IP(不是公网 IP)。

2
在 RDS 上创建 pgAgent 扩展

pg_extension 包内容全是 SQL 文件(不是 .so),所以 RDS 完全兼容:

# 在 ECS 上解压 pg_extension 包看看内容
tar tf forticlientems_7.4.7.2194_pg_extension_rhel.tar
# 输出:
# usr/pgsql-18/share/extension/pgagent--4.2.sql
# usr/pgsql-18/share/extension/pgagent.control
# ...(全部是 SQL 定义文件)

在 RDS 上创建扩展。用 ECS 连接 RDS:

# 先在 ECS 上安装 PostgreSQL 客户端
sudo dnf install -y postgresql

# 连接 RDS(用高权限账号)
psql -h rm-xxx.pg.rds.aliyuncs.com -U postgres -d postgres

# 在 psql 中执行:
CREATE EXTENSION IF NOT EXISTS pgagent;
⚠️ 如果 RDS 不支持直接 CREATE EXTENSION

阿里云 RDS 可能不在白名单里支持 pgagent。如果报错,有两个替代方案:

  • 方案 A:手动执行 SQL — 解压 pg_extension 包,把 pgagent--4.2.sql 的内容直接在 psql 中执行
  • 方案 B:跳过这步 — 你之前本地安装也没手动装 pgAgent,EMS 的 postinst 可能自己处理了。先跳过,看 EMS 启动后有没有报错再决定
3
上传安装文件到 ECS

将 4 个文件上传到 ECS 的 /root/ 目录:

# 在本地终端执行
scp forticlientems_7.4.7.2194.M.amd64.bin root@<ECS公网IP>:~/ems/
scp forticlientems_7.4.7.2194.M_dependencies_rhel9_amd64.tar.gz root@<ECS公网IP>:~/ems/
scp forticlientems_7.4.7.2194_pg_extension_rhel.tar root@<ECS公网IP>:~/ems/
scp forticlient-ems-7.4.7-release-notes.pdf root@<ECS公网IP>:~/ems/

# 验证文件完整性
cd ~/ems/
sha256sum *.bin *.tar.gz
4
ECS 系统准备
# 更新系统
sudo dnf update -y

# 安装基础工具
sudo dnf install -y wget curl unzip tar net-tools

# 设置主机名
sudo hostnamectl set-hostname fortiems-01

# 确认架构和版本
uname -m            # 输出 x86_64
cat /etc/redhat-release  # Red Hat Enterprise Linux release 9.x
💡 关于 codeready-builder

如果某些包装不上,阿里云 RHEL 可能需要手动添加 EPEL 或 PowerTools 仓库。但 EMS 的离线依赖包(--offline_bundle)已经包含了大部分依赖,通常不需要额外 repo。如果 dnf update 也报错,检查阿里云的 repo 文件是否正常(/etc/yum.repos.d/)。

5
运行 EMS 安装(远程 DB 模式)

这是关键步骤。使用 --skip_db_install 告诉安装程序跳过本地 PG 安装,直接连 RDS:

cd ~/ems/

# 添加执行权限
chmod +x forticlientems_7.4.7.2194.M.amd64.bin

# 运行安装(远程 DB 模式)
sudo ./forticlientems_7.4.7.2194.M.amd64.bin -- \
  --db_host "rm-xxx.pg.rds.aliyuncs.com" \
  --db_user postgres \
  --db_pass '<你的RDS高权限账号密码>' \
  --skip_db_install \
  --allowed_hosts '*' \
  --enable_remote_https
💡 远程 DB vs 本地 PG
  • 本地 PG:安装程序自动装 PG18 + 创建数据库,一条命令搞定(实测成功)
  • 远程 DB:用 --skip_db_install 跳过本地 PG,直接连 RDS。更安全,数据与 EMS 分离
6
验证 EMS 运行状态
# 检查 EMS 服务
systemctl --all --type=service | grep -E 'fcems|apache|redis|postgres'

# 检查端口监听
sudo netstat -tlnp | grep -E '443|8013|10443'

# 测试本地 Web 访问
curl -k https://localhost/

# 测试 RDS 连接
psql -h rm-xxx.pg.rds.aliyuncs.com -U postgres -d fcems -c "SELECT version();"
7
Web 界面首次登录

浏览器访问 https://<ECS公网IP>/

  • 忽略 SSL 证书警告(初始是自签名证书)
  • 用户名:admin
  • 密码:安装时设置的 Admin password
  • 首次登录会要求激活(输入 FortiCare 账号或离线激活码)
✅ 首次登录后必做
  • 修改 admin 默认密码
  • 配置 EMS 的 FQDN(如 ems.yourdomain.com
  • 上传正式 SSL 证书(替换自签名证书)
  • 配置邮件通知(SMTP)
  • 创建 Endpoint Profile 和 Deployment Policy

🚨 五、常见问题排查

问题原因解决方法
安装报错 "dependencies not found"依赖包路径不对确认 .tar.gz 用绝对路径指定(--offline_bundle
安装报错 "cannot connect to database"RDS 白名单未添加 ECS 内网 IPRDS 控制台 → 白名单 → 添加 ECS 内网 IP
安装报错 "not a valid .tar.gz"下载不完整或文件损坏验证 sha256sum,重新下载
.bin Permission denied没有执行权限chmod +x forticlientems_*.bin
EMS 启动后 Web 界面打不开安全组未开放 443 端口检查 ECS 安全组入方向规则
EMS 连接 RDS 超时ECS 和 RDS 不在同一 VPC确认两者在同一 VPC 同一交换机
Agent 无法注册到 EMS8013 端口未开放 或 EMS FQDN 未配置检查安全组 + EMS 全局设置中的 FQDN
RDS 上无法 CREATE EXTENSION pgagent阿里云 RDS 白名单不含 pgagent手动执行 SQL 文件,或跳过(EMS 可能不需要)

🔄 六、与现有 7.2.14 的差异

对比项EMS 7.2.14(当前生产)EMS 7.4.7(新部署)
操作系统Windows Server 2019Red Hat Enterprise Linux 9
数据库SQL Server(本地)PostgreSQL 18(阿里云 RDS)
部署方式传统安装原生 Linux + 远程 DB
管理方式RDP 远程桌面SSH + Web
备份手动/SQL Server 作业RDS 自动备份
高可用需手动搭建RDS 自带主备高可用
CVE 修复7.2.x 不受 CVE-2026-35616 影响7.4.7 已修复;内嵌 Django/lxml CVE 待 7.4.8
⚠️ 关于 CVE 修复

TAC 已确认:7.4.7 修复了 CVE-2026-35616(CVSS 9.1,在野利用),但内嵌 Django/lxml 的 CVE 要等 7.4.8 升级到 Django v5。Wiz 扫描出的漏洞属于后一类。可先部署 7.4.7,等 7.4.8 发布后原地升级。

🔗 七、参考文档

← 返回主页