ubuntu网络安装版需通过autoinstall机制在安装阶段自动化加固:禁用root登录与密码认证、启用ufw默认拒绝、锁定grub引导参数、禁用非常用服务;预装unattended-upgrades、auditd、aide等安全包;配置pam防暴力破解、ssh密钥直达;清理冗余模块与软件,实现系统级最小化。

Ubuntu网络安装版(如ubuntu-24.04-live-server-amd64.iso)默认精简,安全基线低、关键工具缺失。加固与预装需在安装阶段介入,而非装完再补——否则易遗漏内核参数、引导配置、最小权限策略等底层项。
安装时嵌入自动化加固脚本
利用Ubuntu的autoinstall机制,在user-data中集成安全策略:
- 禁用root登录:设置
chpasswd: {expire: false}并确保ssh_pwauth: false,强制密钥认证 - 启用UFW默认拒绝:通过
early-commands执行ufw --force enable && ufw default deny incoming - 锁定GRUB引导:在
late-commands中运行sed -i 's/GRUB_CMDLINE_LINUX=\"\"/GRUB_CMDLINE_LINUX=\"security=apparmor audit=1 pti=on spectre_v2=on\"/' /target/etc/default/grub,再chroot /target update-grub - 禁用非常用服务:如
systemctl disable snapd.service apport.service ModemManager.service
核心安全与运维包预装清单
避免装完手动apt install——部分包(如unattended-upgrades)需安装时配置才生效。在packages字段中声明:
-
基础加固:
unattended-upgrades, needrestart, faillog, libpam-pwquality, aide(AIDE用于文件完整性校验) -
审计追踪:
auditd, sysstat, rsyslog, logrotate(配合late-commands配置/etc/audit/rules.d/immutable.rules) -
运维支撑:
curl, jq, htop, net-tools, iproute2, nmap, tmux, vim-tiny(不装vim全量版,防依赖引入冗余包) -
容器就绪(可选):
containerd.io, runc, cri-tools(若目标为K8s节点,跳过Docker CE)
SSH与PAM细粒度控制
仅靠sshd_config不够,必须联动PAM限制暴力尝试和会话行为:
- 在
late-commands中写入/target/etc/pam.d/common-auth追加:auth [default=bad success=ok user_unknown=ignore] pam_faildelay.so delay=3000000auth [default=die] pam_tally2.so deny=5 unlock_time=900 onerr=succeed - 覆盖
/target/etc/ssh/sshd_config:禁用PasswordAuthentication、PermitRootLogin、AllowTcpForwarding,启用UsePAM yes和MaxAuthTries 3 - 生成非交互式SSH密钥对并注入
/target/root/.ssh/authorized_keys,确保首次登录即密钥直达
系统级最小化裁剪
Ubuntu Server虽已精简,但仍含桌面残留、蓝牙、打印等无用组件。在late-commands中批量清理:
- 移除非必要内核模块:
rmmod btusb bluetooth bnep rfcomm snd_hda_codec_hdmi(并加入/etc/modprobe.d/blacklist.conf) - 卸载软件组:
apt-get purge -y snapd ubiquity* casper live-boot live-config ubuntu-desktop-minimal - 清理缓存与日志:
apt-get clean && rm -rf /var/log/journal/* /var/lib/apt/lists/* - 设置只读
/boot(可选):mount -o remount,ro /boot并在/etc/fstab中标记ro










