你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
IoT Edge for Linux on Windows 安全性
适用于:IoT Edge 1.4
重要
Azure IoT Edge 1.5 LTS 和 IoT Edge 1.4 是受支持的版本。 IoT Edge 1.4 LTS 将于 2024 年 11 月 12 日终止服务。 如果你使用的是较低的版本,请参阅更新 IoT Edge。
Azure IoT Edge for Linux for Windows 受益于运行在 Windows Client/Server 主机上的所有安全产品,并确保所有额外组件保持相同的安全本地。 本文提供有关默认启用的不同安全本地的信息,以及用户可能启用的某些可选本地。
虚拟机安全
IoT Edge for Linux (EFLOW) 特选虚拟机基于 Microsoft CBL-Mariner。 CBL-Mariner 是内部 Linux 发行版,适用于 Microsoft 云基础结构以及边缘产品和服务。 CBL-Mariner 经过设计,为这些设备和服务提供一致的平台,并增强 Microsoft 保持最新 Linux 更新的能力。 有关详细信息,请参阅 CBL-Mariner 安全性。
EFLOW 虚拟机基于四点综合安全平台构建:
- 服务更新
- 只读根文件系统
- 防火墙锁定
- DM-Verity
服务更新
出现安全漏洞时,CBL-Mariner 使最新的安全修补程序和修补程序可用于通过 ELOW 每月更新提供服务。 虚拟机没有包管理器,因此无法手动下载和安装 RPM 包。 所有虚拟机更新都使用 EFLOW A/B 更新机制进行安装。 有关 EFLOW 更新的详细信息,请参阅更新 IoT Edge for Linux on Windows。
只读根文件系统
EFLOW 虚拟机由两个主要分区 rootfs 和数据组成。 rootFS-A 或 rootFS-B 分区可互换,其中一个分区作为只读文件系统安装在 /
,这意味着在此分区中存储的文件不允许更改。 另一方面,安装在 /var
的数据分区是可读和可写的,允许用户修改分区内的内容。 此分区上存储的数据不受更新过程操作,因此不会在更新过程中修改。
由于你可能需要对特定用例具有对 /etc
、/home
、/root
和 /var
的写入访问权限,因此这些目录的写入访问权限是通过将这些目录覆盖到指定给目录 /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。 此功能可确保虚拟机基础 fotware 软件映像相同且未更改。 虚拟机使用 dm-verity 功能检查特定的块设备、文件系统的基础存储层,并确定它是否与预期配置匹配。
默认情况下,此功能在虚拟机中处于禁用状态,并且可以打开或关闭。 有关详细信息,请参阅 dm-verity。
受信任的平台模块 (TPM)
受信任的平台模块 (TPM) 技术旨在提供基于硬件的安全性相关的功能。 TPM 芯片是安全加密处理器,旨在执行加密操作。 该芯片包含多个物理安全机制以使其防篡改,并且恶意软件无法篡改 TPM 的安全功能。
EFLOW 虚拟机不支持 vTPM。 但是,用户可以启用/禁用 TPM 直通功能,该功能允许 EFLOW 虚拟机使用 Windows 主机 OS TPM。 这可实现两个主要方案:
- 使用 TPM 技术通过设备预配服务 (DPS) 进行 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 虚拟机之间运行,而无需使用网络。 这会限制 SSH 服务的访问,仅限制到Windows 主机 OS 的连接。 有关详细信息,请参阅 Hyper-V 套接字。
后续步骤
详细了解 Windows IoT 安全本地
随时了解最新的 IoT Edge for Linux on Windows 更新。