VM镜像拉起EMS
VM镜像拉起EMS
安装说明
在客户单台设备的情况下,需要安装独立的EMS,目前Fortinet为EMS提供了定制化的Ubuntu镜像,可以在不同的虚拟化平台上使用,极大减少了EMS部署的复杂性。
从FortiClient EMS 7.4.3 起,Fortinet提供了以下格式的镜像 :
| 安装包名称 | 适用的虚拟化平台 |
|---|---|
| forticlientems_vm.7.4.3.1926.ova.zip forticlientems_vm.7.4.4.2034.F.ova.zip | VMware vSphere - ESXi Hypervisor |
| forticlientems_vm.7.4.3.1926.qcow2.zip forticlientems_vm.7.4.4.2034.F.qcow2.zip | Linux KVM (Kernel-based virtual machines) |
| forticlientems_vm.7.4.3.1926.vhdx.zip forticlientems_vm.7.4.4.2034.F.vhdx.zip | Microsoft Hyper-V |
| forticlientems_vm.7.4.3.1926.vmdk.zip forticlientems_vm.7.4.4.2034.F.vmdk.zip | Oracle VirtualBox |
注
以上镜像都是针对于X86_64架构的芯片组,不针对ARM架构
并针对EMS的底层操作系统(Ubuntu)进行了相关的优化与安全性的增强,如:
删除了一些不必要的用户:games、man、news、uucp、proxy、backup、list、irc、gnats、uuidd、mail、lp、nobody、tss、landscape、fwupd-refresh、usbmux、lxd,以防止攻击者针对这类地址的渗透;
针对运行EMS的用户“forticlientems”,并没有登录权限;
只有用户“ems”存在SSH的远程访问权限;
开启了Ubuntu的防火墙,默认放行且只放行以下入向端口:
| 协议 | 端口号 | 用途 |
|---|---|---|
| TCP | 22 | 用来通过SSH远程到EMS的服务器底层 |
| TCP | 4001 | 向移动客户端发送ZTNA证书 |
| TCP | 8013 | 零信任遥测 |
| TCP | 8015 | 向FortiOS发送更新 |
| TCP | 8443 | 为Chromebooks提供配置文件 |
| TCP | 8871 | 连接远端AD连接器 |
| TCP | 80 | 用于GUI/ACME/API接入 |
| TCP | 443 | 用于GUI/ACME/API接入 |
| TCP | 10443 | 用于GUI/ACME/API接入 |
| TCP | 9443 | 用于GUI/ACME/API接入 |
- 第一次登录时,要求用户“ems”修改密码。
重要
在7.4.4以后的版本VM模板, Shell解释器不再公开给用户,在进入EMS后强制使⽤EMSCLI,不再赋予底层⽂件的修改权限,也就是说,正常配置linux的⽅法将不再⽣效。
先决条件
- 需要准备对应的虚拟化框架,且可用资源满足EMS安装需求
- 需要有网络能访问到EMS
安装过程
1. 获取EMS的镜像文件
可以从https://support.fortinet.com上获取到,以7.4.3为例:
在网页: https://support.fortinet.com/Download/FirmwareImages.aspx
需要注意不同平台使用的镜像名:

下载后需要解压压缩包,以提取其中的镜像。
2. 在宿主机中部署虚拟机
该部分针对不同的虚拟化平台进行不同的操作, 以VMware和KVM为例简述:
VMware ESXi/vSphere
- 选择
创建/注册VM; - 选择
从OVF或者OVA模板部署虚拟机,以启用向导; - 将对应的ova文件拖拽至创建向导中,并完成向导。
- 根据实际情况修改系统资源。
KVM/QEMU
把对应的qcow2文件通过scp/sftp等工具上传到/var/lib/libvirt/images/目录下;
使用以下命令:
sudo virt-install --name EMS_VM --memory 4096 --vcpus 2 --disk path=/var/lib/libvirt/images/forticlientems_vm.7.4.3.XXXX.qcow2,format=qcow2 --import --os-variant generic --network bridge=virbr0 --graphics noneforticlientems_vm.7.4.3.XXXX.qcow2更换成镜像名也可以使用KVM的图形用户界面加载
实际情况请根据具体的虚拟化平台判断。
注意:虚拟化平台操作不在Fortinet TAC支持范围内。
3. 启动EMS
在虚拟化平台中启用点击开启电源/运行虚拟机按钮以启动EMS,并进入EMS的后台。下面展示了服务器底层的显示:

在这里输入默认用户名和初始密码
默认用户名:ems
初始密码:ems
输入完成后会要求更改密码:

更改密码需要输入当前密码(ems), 然后输入新密码并重新输入新密码。输入完成后密码更改成功,进入操作EMS的后台:
- EMS 7.4.3显示如下:
ems@fctems-server:~$

- EMS 7.4.4 + 显示如下:

4. 检查EMS服务状态
使用命令检查EMS是否能够正常运行:
- EMS 7.4.3使用命令:
sudo emscli service get --all- EMS 7.4.4+使用命令:
service get --all下面是EMS主机参考结果:

5. 修改EMS服务器的网络配置
在启动设备完成后,需要配置网络,保证EMS服务可达。
因为EMS7.4.3版本和EMS7.4.4以上版本修改了接⼊的解释器,所以不同的版本配置不尽相同。下⾯将分别针对不同的版本进⾏配置:
EMS 7.4.3 版本
因为当前设备使用的是Ubuntu,使用netplan来配置网络接口,用YAML文件定义网络设置。EMS里安装了vim和nano作为文本编辑器,用户可以按需使用。
因为没有安装NetworkManager,所以不能使用nmcli或nmtui命令来配置网络。
netplan文件位于:/etc/netplan/*.yaml
下面是具体配置方法:
- 使用
ip a或者ip link命令确认网卡信息,主要是为了确认网卡名:
ems@fcems-server:~$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:1e:28:38 brd ff:ff:ff:ff:ff:ff
altname enp3s0
ems@fcems-server:~$可以看到当前使用的网卡名为:ens160
- 通过编辑器,编辑yaml文件,可以使用命令:
sudo vim /etc/netplan/*.yaml
ems@fcems-server:~$ sudo ls /etc/netplan/
50-cloud-init.yaml
ems@fcems-server:~$ sudo vim /etc/netplan/50-cloud-init.yaml
--->进入编辑器--->修改yaml文件:
重要
YAML文件对格式的要求十分严格。请用空格来严格保持缩进。否则配置文件不能使用
参考配置如下:
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
ens160:
addresses:
- 10.234.12.150/24
nameservers:
addresses: [223.5.5.5, 223.6.6.6]
routes:
- to: default
via: 10.234.12.1
version: 2- 使用
netplan try命令确认是否正常配置,
ems@fcems-server:~$ sudo netplan try
Do you want to keep these settings? <----如果出现该输出说明yaml文件格式没有问题
Press ENTER before the timeout to accept the new configuration <----该命令会允许你两分钟内退回配置,如果配置正常。请点击ENTER键。
Changes will revert in 115 seconds
Configuration accepted.
ems@fcems-server:~$- 使用
ip a命令确认地址更改正确
ems@fcems-server:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:1e:28:38 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 10.234.12.150/24 brd 10.234.12.255 scope global ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe1e:2838/64 scope link
valid_lft forever preferred_lft foreverEMS 7.4.4+版本
因为当前设备使⽤的是独⽴的命令⾏,所以需要以下步骤部署:
注
命令不能被补全,需要完整敲入命令
- 使⽤
system get info命令查看当前设备的⽹卡信息:
$> system get info
EMS Version: 7.4.4.2034 Feature
FIPS Enabled: no
OS Version: Ubuntu 24.04.3 LTS
Hostname: fcems-server
Linux Kernel: 6.8.0-79-generic
RAM: 7.8GiB (33.91% used)
CPU: 4 Cores
Disk(s):
\-> /run (tmpfs) 795M (1% used)
\-> / (/dev/mapper/ubuntu--vg-ubuntu--lv) 77G (15% used)
\-> /dev/shm (tmpfs) 3.9G (1% used)
\-> /run/lock (tmpfs) 5.0M (0% used)
\-> /boot (/dev/sda2) 2.0G (6% used)
\-> /run/user/1000 (tmpfs) 795M (1% used)
IP(s):
\-> lo: 127.0.0.1/8
\-> ens160: 10.234.12.15/24
Air-gapped: no可以看到当前使⽤的⽹卡名为: ens160
- 使⽤
system set network ip命令修改ip地址、默认⽹关以及DNS:
详细命令为:
system set network ip --adapter ens160 --ip 10.234.12.150/24 --gateway 10.234.12.1 --dns 223.5.5.5,223.6.6.6其中:
--adapter代表⽹卡--ip代表ip地址和掩码--gateway代表默认⽹关--dns代表dns地址
参考结果如下:
$> system set network ip --adapter ens160 --ip 10.234.12.150/24 --gateway 10.234.12.1 --dns 223.5.5.5,223.6.6.6
Successfully updated netplan YAML file /etc/netplan/50-cloud-init.yaml.
Updated netplan will be applied and some remote connections can be dropped...
IP 10.234.12.150/24 has been set to adapter 'ens160'.- 再次使⽤
system get info命令查看⽹卡是否设置正确:
$> system get info
EMS Version: 7.4.4.2034 Feature
FIPS Enabled: no
OS Version: Ubuntu 24.04.3 LTS
Hostname: fcems-server
Linux Kernel: 6.8.0-79-generic
RAM: 7.8GiB (24.58% used)
CPU: 4 Cores
Disk(s):
\-> /run (tmpfs) 795M (1% used)
\-> / (/dev/mapper/ubuntu--vg-ubuntu--lv) 77G (16% used)
\-> /dev/shm (tmpfs) 3.9G (1% used)
\-> /run/lock (tmpfs) 5.0M (0% used)
\-> /boot (/dev/sda2) 2.0G (6% used)
\-> /run/user/1000 (tmpfs) 795M (1% used)
IP(s):
\-> lo: 127.0.0.1/8
\-> ens160: 10.234.12.123/24
\-> gateway=10.234.12.1
\-> dns(s)=223.5.5.5,223.6.6.6
Air-gapped: no
$>可以看到地址被修改完成。
- 检查⽹络连通性:
可以使⽤ execute ping 命令, 使⽤CTRL+C组合键以中断检查:
参考结果如下:
$> execute ping support.fortinet.com.cn
Use CTRL+C to stop output.
PING support.fortinet.com.cn (39.105.115.226) 56(84) bytes of data.
64 bytes from 39.105.115.226: icmp_seq=1 ttl=49 time=30.2 ms
64 bytes from 39.105.115.226: icmp_seq=2 ttl=49 time=30.2 ms
64 bytes from 39.105.115.226: icmp_seq=3 ttl=49 time=30.2 ms
64 bytes from 39.105.115.226: icmp_seq=4 ttl=49 time=29.6 ms
64 bytes from 39.105.115.226: icmp_seq=5 ttl=49 time=30.1 ms
^C初始化设置EMS
1. 进入欢迎界面
在浏览器中访问https://[EMS的IP] ,会显示证书错误。 在跳过证书错误后,即能够进入EMS的欢迎界面,这里会显示出设备的硬件ID(Hardware ID),在这里点击Copy ID按钮可以复制该ID。

复制完成后会显示Copied Hardware ID in clipboard
2. 进入Support Portal门户以更新License
进入网页:https://support.fortinet.com/asset/#/views/products,在登录/注册完成后,找到需要激活的EMS设备,并点击进入设备详细页面

进入设备后在Product Information中,点击编辑按钮:

将刚刚复制的Hardware ID输入进去,点击Save。

填写完成后,license显示允许下载。

3. (有网环境)EMS激活许可
回到EMS的登录管理界面,如果EMS可以连接到公网,那么点击Go to FortiCloud之后,Start Journey按钮就会亮起。

此时回到EMS页面后可以看到Start Journey按钮可以正常点亮,点击该按钮以进入同步账户页面。

进入连接FortiCloud account的页面,输入账户和密码,然后点击Next按钮;

如果设备是通过Flex激活的设备,需要一并打开
Activate license through Flex-VM并输入Flex token
在输入完成后,页面会显示验证账户信息中。

随后会显示许可的信息,点击Next按钮后继续。

4. (无网环境)上传license以激活许可
在Support Portal中点击Download按钮以下载license:

在环境界面中点击下方的Is this an airgapped system?即可进入离线激活模式:

在进入离线激活模式后点击Click to select or drop file here以上传license文件。

在上传完成后点击Next按钮以激活许可。
5. 更改系统设置
在激活license之后,会显示当前的主机名以及更新设备主机名。在设定完新的主机名后点击Next按钮以继续

更新主机名之后显示更改用户名的界面,填写新的用户名(本示例使用fortinet作为用户名),并点击Next按钮以继续
用户名创建规则:
- 不能和admin重复
- 不少于5位字符

在设置完用户名后要求输入新的密码,这里填写新的密码后,点击Finish按钮完成设置
强制密码复杂性规则:
- 密码总长度不小于8位
- 以下四个选项中至少包含三个选项
- 至少有一个大写字母
- 至少有一个小写字母
- 至少有一位数字
- 至少有一个特殊符号

在设置完成后会显示保存登录凭据的选项,完成后会自动进入界面。

进入EMS的Dashboard

至此EMS安装完成。
扩容的相关方法
目前EMS是使用lvm逻辑磁盘挂载为根(/),所以支持在线扩容。
如果需要其他的安装方式,建议通过bin文件安装EMS,而不是直接拉起虚拟机镜像,详细请参考:EMS 7.4 8
假设物理磁盘已经扩容完成150G(该磁盘扩容行为请在虚拟化平台处理),请参考以下流程、按照以下方法扩容:
EMS 7.4.3版本
- 使用
lsblk命令确认物理磁盘已经扩容完成
ems@fcems-server:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 150G 0 disk <----大小已经被修改成150GB
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 78G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 78G 0 lvm /
sr0 11:0 1 1024M 0 rom
ems@fcems-server:~$这里可以看到sda磁盘的大小已经变成了150G。
- 使用
df -h命令确认当前的文件系统和大小
ems@fcems-server:~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 795M 1.4M 793M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 77G 9.6G 64G 14% / <----确认到lvm逻辑卷
tmpfs 3.9G 1.3M 3.9G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 96M 1.7G 6% /boot
tmpfs 795M 12K 795M 1% /run/user/1000
ems@fcems-server:~$可以看到当前根目录(/)下使用了逻辑卷(lvm)
- 使用
growpart命令扩展磁盘分区
详细命令:sudo growpart /dev/sda 3
ems@fcems-server:~$ sudo growpart /dev/sda 3
CHANGED: partition=3 start=4198400 old: size=163571712 end=167770111 new: size=310374367 end=314572766
ems@fcems-server:~$可以看到原来的/dev/sda3分区,原来的分区大小 163571712 个扇区扩展到 310374367 个扇区,从原来的结束扇区号 167770111扩展到 314572766。
- 用
pvresize让 LVM 识别出新增空间:
详细命令:sudo pvresize /dev/sda3
ems@fcems-server:~$ sudo pvresize /dev/sda3
Physical volume "/dev/sda3" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
ems@fcems-server:~$确认到物理卷成功识别到扩容,1个物理卷已经识别完成。
- 使用
lvextend命令将扩容的物理卷中的逻辑卷完全扩展:
详细命令:sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
ems@fcems-server:~$ sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <78.00 GiB (19967 extents) to <148.00 GiB (37887 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized. <----确认到逻辑卷扩容成功
ems@fcems-server:~$可以看到逻辑卷扩容成功
- 使用
resize2fs命令扩展逻辑卷中的文件系统(ext4)
详细命令:sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
ems@fcems-server:~$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 10, new_desc_blocks = 19
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 38796288 (4k) blocks long. <----确认到文件系统扩容成功
ems@fcems-server:~$确认到文件系统扩容完成。
- 再次使用
df -h命令确认当前的文件系统和大小
ems@fcems-server:~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 795M 1.4M 793M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 146G 9.4G 130G 7% /
tmpfs 3.9G 1.3M 3.9G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 2.0G 96M 1.7G 6% /boot
tmpfs 795M 12K 795M 1% /run/user/1000
ems@fcems-server:~$可以看到上面逻辑卷已经变成146G。扩容完成。
EMS 7.4.4+ 版本
- 在物理硬盘扩容后使⽤
system get info命令查看当前硬盘⽤量:
$> system get info
EMS Version: 7.4.4.2034 Feature
FIPS Enabled: no
OS Version: Ubuntu 24.04.3 LTS
Hostname: fcems-server
Linux Kernel: 6.8.0-79-generic
RAM: 7.8GiB (16.42% used)
CPU: 4 Cores
Disk(s):
\-> /run (tmpfs) 795M (1% used)
\-> / (/dev/mapper/ubuntu--vg-ubuntu--lv) 77G (16% used)
\-> /dev/shm (tmpfs) 3.9G (1% used)
\-> /run/lock (tmpfs) 5.0M (0% used)
\-> /boot (/dev/sda2) 2.0G (6% used)
\-> /run/user/1000 (tmpfs) 795M (1% used)
IP(s):
\-> lo: 127.0.0.1/8
\-> ens160: 10.234.12.123/24
\-> gateway=10.234.12.1
\-> dns(s)=223.5.5.5,223.6.6.6
Air-gapped: no
$>- 使⽤
execute lvm info命令查看磁盘以及逻辑驱动器信息,这⾥可以看到磁盘名为sda:
$> execute lvm info
Disk: sda, <-------磁盘名
\->Total Size=148.0G,
\->Partitioned=78.0G-Disk can be expanded. <-------代表磁盘可以扩展
Volume: <-------逻辑驱动器
\->Allocated=78.0G,
\->Free=0.0G- 使⽤ execute lvm expand-disk命令扩容磁盘:
详细命令: execute lvm expand-disk --disk.name sda,其中 --disk.name代表磁盘名。
$> execute lvm expand-disk --disk.name sda
Disk sda partition size has grown from 78.0G to 148.0G <-------磁盘扩展完成
$>使⽤ execute lvm info命令查看磁盘以及逻辑驱动器信息可以看到磁盘已经扩展完成。
$> execute lvm info
Disk: sda,
\->Total Size=148.0G, <-------磁盘已扩展
\->Partitioned=148.0G
Volume:
\->Allocated=78.0G,
\->Free=70.0G-Volume can be expanded. <-------代表逻辑驱动器可以扩展- 使⽤ execute lvm expand-disk命令扩容逻辑驱动器:
详细命令:execute lvm expand-volume --grow.free,其中 --grow.free代表剩余容量全部扩展。
- 也可以使用
--grow.gb float可选项⾃定义扩展⼤⼩。
$> execute lvm expand-volume --grow.free
Volume has grown from 78.0 to 148.0 <-------逻辑驱动器已扩展完成使⽤ execute lvm info命令确认到逻辑驱动器已经扩展完成。
$> execute lvm info
Disk: sda,
\->Total Size=148.0G,
\->Partitioned=148.0G
Volume:
\->Allocated=148.0G,
\->Free=0.0G <-------已没有未扩展的空闲空间- 使⽤ system get info命令查看当前硬盘⽤量已经扩展完成。
$> system get info
EMS Version: 7.4.4.2034 Feature
FIPS Enabled: no
OS Version: Ubuntu 24.04.3 LTS
Hostname: fcems-server
Linux Kernel: 6.8.0-79-generic
RAM: 7.8GiB (33.08% used)
CPU: 4 Cores
Disk(s):
\-> /run (tmpfs) 795M (1% used)
\-> / (/dev/mapper/ubuntu--vg-ubuntu--lv) 146G (9% used) <-------逻辑驱动器已经扩展完成
\-> /dev/shm (tmpfs) 3.9G (1% used)
\-> /run/lock (tmpfs) 5.0M (0% used)
\-> /boot (/dev/sda2) 2.0G (6% used)
\-> /run/user/1000 (tmpfs) 795M (1% used)
IP(s):
\-> lo: 127.0.0.1/8
\-> ens160: 10.234.12.123/24
\-> gateway=10.234.12.1
\-> dns(s)=223.5.5.5,223.6.6.6
Air-gapped: no可以看到上⾯逻辑卷已经变成146G。扩容完成。
更新历史
| Ver | Description | Author | Rev | Date |
|---|---|---|---|---|
| 1.4 | Add EMS 7.4.4 grammar | ysheng | tanga | 2025.10.13 |
| 1.2 | Add LVM Extend Procedure | ysheng | tanga | 2025.07.13 |
| 1.1 | Renew Install Procedure | ysheng | tanga | 2025.07.09 |
| 1.0 | First Complete | ysheng | tanga | 2025.07.09 |