适用于: IoT Edge 1.1
重要
IoT Edge 1.1 终止支持日期为 2022 年 12 月 13 日。 请查看 Microsoft 产品生命周期,了解此产品、服务、技术或 API 的受支持情况。 有关更新到最新版本的 IoT Edge 的详细信息,请参阅 更新 IoT Edge。
Azure IoT Edge for Linux on Windows 受益于运行在 Windows Client/Server 主机上的所有安全功能,并确保所有额外组件保持相同的安全原则。 本文提供了有关默认启用的不同安全机制的信息,以及用户可以启用的某些可选的安全机制。
虚拟机安全
IoT Edge for Linux (EFLOW) 特选虚拟机基于 Microsoft CBL-Mariner。 CBL-Mariner 是内部 Linux 发行版,适用于 Microsoft 云基础结构以及边缘产品和服务。 CBL-Mariner 经过设计,为这些设备和服务提供一致的平台,并增强 Microsoft 保持最新 Linux 更新的能力。 有关详细信息,请参阅 CBL-Mariner 安全性。
EFLOW 虚拟机基于三点综合安全平台构建:
- 服务更新
- 只读根文件系统
- 防火墙锁定
服务更新
出现安全漏洞时,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
的数据分区中完成的。 最终结果是用户可以将任何内容写入上述目录。 若要了解关于overlayfs的详细信息,请参阅overlayfs。
分区 | 尺寸 | DESCRIPTION |
---|---|---|
靴子 | 192 MB | 包含引导加载程序 |
RootFS A | 2 GB | 包含根文件系统的两个主动/被动分区之一 |
RootFS B | 2 GB | 包含根文件系统的两个主动/被动分区之一 |
AB 更新 | 2 GB | 保存更新文件。 确保 VM 中始终有足够的空间进行更新 |
数据 | 2 GB 到 2 TB | 用于跨更新存储永久性数据的有状态分区。 根据部署配置可扩展 |
注释
分区布局表示逻辑磁盘大小,不指示虚拟机在主机 OS 磁盘上占用的物理空间。
防火墙
默认情况下,EFLOW 虚拟机使用 iptables 实用工具进行防火墙配置。 Iptables 用于在 Linux 内核中设置、维护和检查 IP 数据包筛选器规则的表。 默认实现仅允许端口 22 (SSH 服务)上的传入流量 ,否则会阻止流量。 可以使用以下步骤检查 iptables 配置:
打开权限提升的 PowerShell 会话
连接到 EFLOW 虚拟机
Connect-EflowVm
列出所有 iptables 规则
sudo iptables -L
受信任的平台模块 (TPM)
受信任的平台模块 (TPM) 技术旨在提供基于硬件的安全性相关的功能。 TPM 芯片是一种安全的加密处理器,旨在执行加密操作。 该芯片包含多个物理安全机制以使其防篡改,并且恶意软件无法篡改 TPM 的安全功能。
EFLOW 虚拟机不支持 vTPM。 但是,用户可以启用/禁用 TPM 直通功能,该功能允许 EFLOW 虚拟机使用 Windows 主机 OS TPM。 这可实现两个主要方案:
- 使用 TPM 技术通过设备预配服务 (DPS) 进行 IoT Edge 设备预配。 有关详细信息,请参阅使用 TPM 为在 Windows 上运行的 Linux 创建和预配大规模 IoT Edge 设备。
- 对存储在 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 地址。
后续步骤
详细了解 Windows IoT 安全基础
随时了解最新的 IoT Edge for Linux on Windows 更新。