你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:IoT Edge 1.5
重要
IoT Edge 1.5 LTS 是受支持的版本。 IoT Edge 1.4 LTS 的生命周期结束日期为 2024 年 11 月 12 日。 如果你使用的是早期版本,请参阅更新 IoT Edge。
适用于 Windows 的 Azure IoT Edge for Linux 使用 Windows 客户端或服务器主机的所有安全功能,并确保所有额外的组件都遵循相同的安全原则。 本文介绍默认启用的不同安全原则,以及可以启用的一些可选原则。
虚拟机安全
IoT Edge for Linux (EFLOW) 特选虚拟机基于 Microsoft CBL-Mariner。 CBL-Mariner 是Microsoft云基础结构、边缘产品和服务的内部 Linux 分发版。 CBL-Mariner 为这些设备和服务提供一致的平台,有助于Microsoft Linux 更新保持最新状态。 有关详细信息,请参阅 CBL-Mariner 安全性。
EFLOW 虚拟机使用四点综合安全平台:
- 服务更新
- 只读根文件系统
- 防火墙锁定
- DM-Verity
服务更新
当安全漏洞出现时,CBL-Mariner 通过 EFLOW 每月更新提供最新的安全补丁和修复。 虚拟机没有包管理器,因此无法手动下载或安装 RPM 包。 EFLOW 使用 A/B 更新机制安装虚拟机的所有更新。 有关 EFLOW 更新的详细信息,请参阅更新 IoT Edge for Linux on Windows。
只读根文件系统
EFLOW 虚拟机有两个主要分区:rootfs和数据。 rootFS-A 或 rootFS-B 分区可互换,其中一个分区装载为只读文件系统 /
,因此无法更改此分区中的文件。 装载在下方/var
的数据分区是可读和可写的,因此可以更改其内容。 更新过程不会更改此分区中存储的数据,因此不会在更新中对其进行修改。
由于特定用例可能需要对 /etc
、/home
、/root
和 /var
进行写入访问,EFLOW 会将这些目录覆盖到 /var/.eflow/overlays
上的数据分区,以提供写入访问权限。 通过此设置,可以写入这些目录。 若要了解覆盖的详细信息,请参阅覆盖。
分区 | 大小 | 说明 |
---|---|---|
BootEFIA | 8 MB | 用于未来 GRUBless 启动的固件分区 A |
BootA | 192 MB | 包含 A 分区的引导加载程序 |
RootFS A | 4 GB | 包含根文件系统的两个主动/被动分区之一 |
BootEFIB | 8 MB | 用于未来 GRUBless 启动的固件分区 B |
BootB | 192 MB | 包含 B 分区的引导加载程序 |
RootFS B | 4 GB | 包含根文件系统的两个主动/被动分区之一 |
日志 | 1 GB 或 6 GB | 在 /logs 下装载的日志特定分区 |
数据 | 2 GB 到 2 TB | 用于跨更新存储永久性数据的有状态分区。 可根据部署配置进行扩展。 |
注意
分区布局表示逻辑磁盘大小,并不指示虚拟机在主机 OS 磁盘上使用的物理空间。
防火墙
默认情况下,EFLOW 虚拟机将 iptables 实用工具用于防火墙配置。 Iptables 在 Linux 内核中设置、维护和检查 IP 数据包筛选器规则的表。 默认实现允许端口 22(SSH 服务)上的传入流量阻止其他流量。 使用以下步骤检查 iptables 配置:
打开权限提升的 PowerShell 会话
连接到 EFLOW 虚拟机
Connect-EflowVm
列出所有 iptables 规则
sudo iptables -L
已验证的启动
EFLOW 虚拟机支持通过包含的设备映射器-verity (dm-verity) 内核功能进行验证启动,该功能提供块设备的透明完整性检查。 dm-verity 有助于防止可以保留根特权和入侵设备的持久性 rootkit。 此功能可确保虚拟机基础软件映像相同且不会更改。 虚拟机使用 dm-verity 功能检查特定的块设备、文件系统的基础存储层,并查看它是否与其预期配置匹配。
默认情况下,此功能在虚拟机中处于禁用状态,但你可以将其打开或关闭。 有关详细信息,请参阅 dm-verity。
受信任的平台模块 (TPM)
受信任的平台模块 (TPM) 技术旨在提供基于硬件的安全性相关的功能。 TPM 芯片是安全加密处理器,旨在执行加密操作。 该芯片包含多个物理安全机制以使其防篡改,并且恶意软件无法篡改 TPM 的安全功能。
EFLOW 虚拟机不支持 vTPM。 但是,可以启用或禁用 TPM 直通功能,该功能允许 EFLOW 虚拟机使用 Windows 主机 OS TPM。 这允许你执行两个主要方案:
- 通过设备预配服务(DPS)使用 TPM 技术进行 IoT Edge 设备预配。 有关详细信息,请参阅使用 TPM 大规模创建和预配 IoT Edge for Linux on Windows 设备。
- 对存储在 TPM 中的加密密钥的只读访问。 有关详细信息,请参阅 Set-EflowVmFeature 以启用 TPM 直通。
安全的主机和虚拟机通信
使用 EFLOW,可以使用 PowerShell 模块与虚拟机进行交互。 详细信息,请参阅适用于 IoT Edge for Linux on Windows 的 PowerShell 函数。 此模块需要提升的会话才能运行,并使用 Microsoft Corporation 证书对其进行签名。
Windows 主机作系统与 PowerShell cmdlet 所需的 EFLOW 虚拟机之间的所有通信都使用 SSH 通道。 默认情况下,虚拟机 SSH 服务不允许使用用户名和密码进行身份验证,并且仅允许证书身份验证。 证书是在 EFLOW 部署过程中创建的,对于每个 EFLOW 安装都是唯一的。 为了帮助防止 SSH 暴力攻击,如果虚拟机尝试每分钟与 SSH 服务建立三个以上的连接,则会阻止 IP 地址。
在 EFLOW 持续发布 (CR) 版本中,SSH 连接传输通道会更改。 最初,SSH 服务在 TCP 端口 22 上运行,同一网络上的任何外部设备都可以使用 TCP 套接字进行访问。 为了安全,EFLOW CR 通过 Hyper-V 套接字而不是常规 TCP 套接字运行 SSH 服务。 通过 Hyper-V 套接字进行的所有通信都保留在 Windows 主机 OS 和 EFLOW 虚拟机之间,而无需使用网络。 此设置通过仅限制与 Windows 主机 OS 的连接来限制 SSH 服务访问。 有关详细信息,请参阅 Hyper-V 套接字。
后续步骤
详细了解 Windows IoT 安全本地
随时了解适用于 Windows 的最新 Linux IoT Edge 更新。