最小化安装是主动收缩攻击面的安全设计,须选用Minimal ISO镜像、禁用非必要服务(如avahi、cups、bluetooth)、卸载冗余包、收敛内核模块、锁定默认账户并强化密码策略。

最小化安装不是“少装几个软件”的取巧操作,而是从系统诞生之初就收缩攻击面的主动设计。它直接决定后续加固的难度和效果——组件越少,漏洞越少;服务越精,暴露越小;权限越窄,失控风险越低。
安装阶段就锁定安全基线
默认安装镜像自带图形界面、打印服务、蓝牙模块、邮件代理等大量非必要组件,它们不参与业务,却持续监听端口、加载内核模块、维持用户会话。必须从源头切断:
- 选用官方提供的 Minimal ISO 镜像(如 Ubuntu Server Minimal、CentOS Stream Minimal、AlmaLinux “Minimal Install”)
- 安装时取消勾选所有可选组件,仅保留 base system、openssh-server(如需远程管理)、systemd-journald(日志)
- RHEL/CentOS 系统执行:yum groupinstall "minimal install",避免使用 yum groupinstall "server with gui" 类组合包
- Debian/Ubuntu 安装后立即运行:sudo apt purge --autoremove $(apt list --installed | grep -E 'apache2|mysql|php|cups|bluetooth|avahi|postfix' | cut -d'/' -f1)
系统初始化后立即清理冗余服务
即使最小化安装,部分服务仍可能被依赖关系自动启用。需人工确认并关停:
- 列出所有开机自启服务:systemctl list-unit-files --state=enabled
- 禁用明确无用项:sudo systemctl disable --now avahi-daemon cups bluetooth rpcbind
- 检查监听端口是否残留:ss -tlnp | grep -v '127.0.0.1\|::1',重点关注非业务端口(如 631/cups、5353/avahi)
- 卸载对应软件包防止配置复活:sudo dnf remove --noautoremove avahi* cups* -y(RHEL系)或 sudo apt purge avahi-daemon cups-daemon -y(Debian系)
收敛内核与运行时能力
容器化或纯服务场景下,宿主机内核无需支持休眠、火线、USB存储等桌面特性,这些模块一旦被利用,可能成为提权跳板:
- 禁用模块自动加载:echo 'kernel.modules_disabled = 1' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- 限制可加载模块路径:echo 'install usb-storage /bin/true' | sudo tee /etc/modprobe.d/disable-usb-storage.conf
- 验证关键安全选项已启用:zcat /proc/config.gz | grep -E "(USER_NS|SECCOMP|CGROUPS)"(若无 config.gz,查 /boot/config-$(uname -r))
- 挂载关键路径为只读:sudo mount -o remount,ro /sys /proc/sys,并写入 /etc/fstab 持久化
账号与权限模型同步重置
最小化安装不等于权限干净。系统仍会预置 lp、sync、games 等默认账户,它们虽无密码,但可能被用于本地提权或服务逃逸:
- 备份账号文件:sudo cp /etc/passwd /etc/passwd.bak.$(date +%s)
- 锁定非交互账户:sudo usermod -s /sbin/nologin lp sync games
- 排查可登录 shell 账户:getent passwd | awk -F: '$7 ~ /bash|sh|zsh/ {print $1}',仅保留运维必需账号
- 强制设置强密码策略(Debian/Ubuntu):sudo apt install libpam-pwquality && sudo sed -i '/pam_pwquality.so/!s/^password.*required.*pam_deny.so/password required pam_pwquality.so retry=3 minlen=12 difok=3/' /etc/pam.d/common-password


















