nix-mineral:为NixOS系统提供高效硬化方案
项目介绍
nix-mineral 是一个专门为 NixOS 系统设计的模块,旨在为用户提供一种方便快捷的系统硬化方法。不同于以矿物质命名的常见做法,该项目以单词 "mineral" 命名,寓意为系统的安全加固。
项目技术分析
nix-mineral 的设计理念是配置而非安装额外的软件。它主要关注系统硬化,通过一系列预设的安全配置来减少潜在的安全风险。该项目的核心技术包括:
- 硬化 sysctl 和启动参数
- 禁用 systemd-boot 中的编辑器以防止未授权修改启动参数
- 空置 securetty 并启用 pam_securetty.so 以防止在 TTY 上进行 root 登录
- 使用 Whonix machine-id 减少标识符
- 自动关闭不使用的蓝牙以增加隐私保护
- 基于 Kicksecure 和 secureblue 的模块黑名单以减少攻击面
- 对多个关键挂载点进行硬化,如 /home、/tmp、/var、/boot 和 /dev/shm
- 在 /proc 中启用 hidepid 以隐藏用户间进程
- 启用最小防火墙并阻止所有端口上的入站连接
- 在 NetworkManager 中随机化 MAC 地址以增加隐私
- 启用 AppArmor 并杀死所有具有 AppArmor 配置文件但未受限制的进程
- 禁用核心转储
- 增加新密码的哈希轮数
- 要求 wheel 用户使用 su
- 在失败的登录尝试后强制实施 4 秒延迟
- 在 OpenSSH 中禁止 root 登录
- 在 systemd-resolved 中启用并要求 DNSSEC
- 启用 USBGuard 以防止 BadUSB 攻击
- 启用 jitterentropy-rngd 和 jitterentropy 内核模块以增加熵
- 使 /home/$USER 中的所有文件仅对文件所有者可读
- 使 /etc/nixos 中的所有文件仅对 root 可读和可编辑
项目及技术应用场景
nix-mineral 主要针对非政府级别威胁模型的用户,不涉及匿名性的考虑。如果你的安全威胁模型包括国家级别的对手,那么该项目可能不适合你的需求。
该项目适用于以下场景:
- 个人或企业的 NixOS 系统安全加固
- 需要快速部署安全配置的场合
- 对于系统硬化有明确需求,但又不希望安装额外软件的用户
项目特点
nix-mineral 的特点在于:
- 配置而非安装:主要提供一系列配置选项,而不是安装新的软件包。
- 模块化设计:项目采用模块化设计,用户可以根据自己的需求进行自定义和覆盖。
- 易于集成:可以轻松集成到现有的 NixOS 配置中,支持多种部署方式,包括自动安装、使用 flakes 以及手动安装。
- 安全性:提供了一系列的安全配置,包括 sysctl 硬化、防火墙设置、进程隔离等。
- 灵活性:通过提供覆盖选项,允许用户根据不同的环境和需求进行快速调整。
通过以上特点,nix-mineral 成为了一个在 NixOS 系统硬化方面极具价值的开源项目,能够帮助用户在不牺牲自由度的前提下,提高系统的安全性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考