内核安全加固需依次完成五步:确认Lockdown LSM已编译(CONFIG_SECURITY_LOCKDOWN_LSM=y);启用confidentiality模式并更新initramfs;永久关闭kptr_restrict=2;黑名单禁用ipmi_msghandler等危险模块;通过USPI策略禁用USB存储。

确认内核安全加固参数生效前提
统信UOS V20(含1070u1及后续版本)默认启用USPI安全接口与内核级防护机制,但部分关键加固参数需手动启用并验证是否被内核实际加载。若跳过此阶段直接修改配置,【/etc/default/grub中添加的参数可能因initramfs未更新而完全不生效】。
打开终端,执行:uname -r 确认当前运行内核版本(如 5.10.0-amd64-desktop-1070u1),再执行:zcat /proc/config.gz 2>/dev/null | grep CONFIG_SECURITY_LOCKDOWN_LSM,输出 CONFIG_SECURITY_LOCKDOWN_LSM=y 表示内核已编译锁定模块——这是后续所有加固操作的基础支撑。
启用Lockdown LSM强制模式
Lockdown是Linux内核提供的底层安全子系统,可阻止用户空间绕过内核保护机制。UOS V20内核已内置该功能,但默认为“integrity”模式,仅拦截代码签名异常;需升级为“confidentiality”模式才能禁用kexec、禁写/sys/kernel/debug等高危操作。
编辑GRUB配置:sudo nano /etc/default/grub
找到 GRUB_CMDLINE_LINUX_DEFAULT 行,在引号内末尾追加:security=lockdown lockdown=confidentiality。注意不要删除原有参数(如 splash quiet),否则可能导致图形界面无法启动。
执行:sudo update-grub && sudo update-initramfs -u。这一步不可省略——【仅运行update-grub会导致新参数写入grub.cfg但initramfs仍按旧内核配置加载,Lockdown不会激活】。
重启系统后,运行:cat /sys/kernel/security/lockdown。若输出含 confidentiality: enabled,即表示生效。
关闭内核地址空间布局随机化(KASLR)调试接口
虽然KASLR本身是安全特性,但其调试接口(如 /sys/kernel/debug/kallsyms)会泄露内核符号地址,成为提权攻击链的关键跳板。UOS默认保留该接口用于运维诊断,生产环境必须关闭。
方法一:临时关闭(重启失效)
执行:echo 0 | sudo tee /proc/sys/kernel/kptr_restrict
方法二:永久关闭(推荐)
创建配置文件:
sudo tee /etc/sysctl.d/99-disable-kptr.conf <<'EOF'<br>kernel.kptr_restrict = 2<br>EOF
然后执行:
sudo sysctl --system。值设为2比1更严格:不仅隐藏符号地址,还拒绝非特权进程读取/proc/kcore等内存镜像文件。
禁用危险内核模块自动加载
统信UOS为兼容老旧硬件,默认允许通过modprobe自动加载部分高风险模块(如 ipmi_msghandler、usb-storage)。攻击者可利用udev规则或物理接入触发加载,进而开展内核漏洞利用。
第一步:生成黑名单列表
执行:printf "install %s /bin/true\n" ipmi_msghandler usb-storage firewire-core > /tmp/module-blacklist.conf
第二步:合并至系统模块配置
执行:sudo cp /tmp/module-blacklist.conf /etc/modprobe.d/99-uos-critical-blacklist.conf
第三步:立即卸载已加载的危险模块
执行:sudo modprobe -r ipmi_msghandler 2>/dev/null || true → sudo modprobe -r usb-storage 2>/dev/null || true。注意:若提示“Module … is in use”,说明有服务正依赖该模块,需先停用对应服务(如 sudo systemctl stop ipmievd)再重试。
最后执行:sudo depmod -a 更新模块依赖关系缓存,确保下次启动时黑名单规则即时生效。
启用USPI内核级设备管控策略
统信自研的USPI接口(由permission-manager服务提供)支持在内核层拦截设备访问请求,比传统udev规则更早介入、不可绕过。此功能需配合策略包使用,且仅对V20 1070u1及以上版本有效。
① 检查USPI服务状态:sudo systemctl is-active permission-manager,返回 active 才可继续。
② 下载设备管控策略包:wget https://mirrors.uniontech.com/uos-security-policies/device-control-v1.2.0.uosp
③ 安装策略:sudo uosp install device-control-v1.2.0.uosp
④ 启用USB存储设备全局禁用策略:sudo permission-manager set device.usb-storage.enabled false
⑤ 验证结果:lsusb 仍可识别设备,但插入U盘后执行 dmesg | tail -5 应出现 usb-storage: disabled by USPI policy 字样。

















