你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

IoT Edge for Linux on Windows 安全性

适用于:IoT Edge 1.5 复选标记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 虚拟机使用四点综合安全平台:

  1. 服务更新
  2. 只读根文件系统
  3. 防火墙锁定
  4. 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 上的数据分区,以提供写入访问权限。 通过此设置,可以写入这些目录。 若要了解覆盖的详细信息,请参阅覆盖

EFLOW CR 分区布局

分区 大小 说明
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 配置:

  1. 打开权限提升的 PowerShell 会话

  2. 连接到 EFLOW 虚拟机

    Connect-EflowVm
    
  3. 列出所有 iptables 规则

    sudo iptables -L
    

    EFLOW iptables 默认

已验证的启动

EFLOW 虚拟机支持通过包含的设备映射器-verity (dm-verity) 内核功能进行验证启动,该功能提供块设备的透明完整性检查。 dm-verity 有助于防止可以保留根特权和入侵设备的持久性 rootkit。 此功能可确保虚拟机基础软件映像相同且不会更改。 虚拟机使用 dm-verity 功能检查特定的块设备、文件系统的基础存储层,并查看它是否与其预期配置匹配。

默认情况下,此功能在虚拟机中处于禁用状态,但你可以将其打开或关闭。 有关详细信息,请参阅 dm-verity

受信任的平台模块 (TPM)

受信任的平台模块 (TPM) 技术旨在提供基于硬件的安全性相关的功能。 TPM 芯片是安全加密处理器,旨在执行加密操作。 该芯片包含多个物理安全机制以使其防篡改,并且恶意软件无法篡改 TPM 的安全功能。

EFLOW 虚拟机不支持 vTPM。 但是,可以启用或禁用 TPM 直通功能,该功能允许 EFLOW 虚拟机使用 Windows 主机 OS 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 更新