禁用不常用文件系统模块可缩小内核攻击面,需先验证模块为可加载形式(config_xxx=m且存在.ko文件),再在/etc/modprobe.d/下创建644权限的.conf文件,写入blacklist xxx与install xxx /bin/false,最后更新initramfs并重启验证。

禁用不常用的文件系统模块,能减少内核攻击面、避免加载存在历史漏洞的驱动(如hfs、minix、udf等),但必须避开核心模块(如ext4、xfs、vfat),否则可能导致系统无法挂载根分区或关键存储设备。
确认目标模块是否可被黑名单影响
先检查模块是否以独立.ko文件形式存在,而非编译进内核:
- 运行
ls /lib/modules/$(uname -r)/kernel/fs/模块名/模块名.ko*,例如ls /lib/modules/$(uname -r)/kernel/fs/hfs/hfs.ko*,有输出说明可禁用 - 运行
grep CONFIG_HFS /boot/config-$(uname -r),若结果为CONFIG_HFS=m(小写m)表示是模块;若为=y则已内置,黑名单无效,只能改GRUB参数
编写正确的黑名单配置
在/etc/modprobe.d/下新建一个以.conf结尾的文件(如fs-security.conf),内容需同时包含两行:
blacklist hfsinstall hfs /bin/false
对其他非必要文件系统模块也照此处理,常见可禁用项包括:hfsplus、minix、udf、iso9660、cifs(若不用SMB)、nfs(若无NFS需求)。注意不要禁用ext4、xfs、btrfs、vfat——这些是主流系统或启动必需的。
避开权限与路径陷阱
配置文件必须满足三个硬性条件,否则modprobe会静默跳过:
- 路径必须是
/etc/modprobe.d/xxx.conf,不能是/etc/modprobe.d/blacklist(无后缀)或/etc/blacklist.conf - 文件名必须以
.conf结尾,fs-blacklist或disable-fs.txt均无效 - 权限必须为
644(即rw-r--r--),执行sudo chmod 644 /etc/modprobe.d/fs-security.conf;若设成664或更宽,modprobe直接忽略
更新 initramfs 并验证生效
仅改配置不会立即生效,必须让新规则进入初始内存盘:
- Debian/Ubuntu 系统:
sudo update-initramfs -u - RHEL/CentOS 7/8:
sudo dracut --force - 重启后验证三步缺一不可:
— 运行modprobe -n -v hfs,输出应含install /bin/false
— 执行lsmod | grep hfs,应无任何输出
— 尝试挂载HFS镜像(如有):sudo mount -t hfs /dev/loop0 /mnt,应报“unknown filesystem type”或“Operation not permitted”











