Ubuntu Server 安装与基础配置指南

Ubuntu Server 24.04 LTS(Noble Numbat)系列仍是当前生产环境的主流选择,其点版本已更新至24.04.3或更高,提供更新的内核补丁、驱动兼容性和bug修复。以下指南聚焦于安装决策背后的技术逻辑与安全原理,并精简操作步骤,强调系统设计层面的考量。

安装阶段的核心技术决策

Ubuntu Server 采用基于Subiquity的文本安装器,与桌面版共享后端逻辑,但去除图形层以降低资源占用和攻击面。安装介质大小通常1.3–1.6 GB,远小于桌面镜像。

1. 引导与早期环境

  • 固件(UEFI优先)加载GRUB2 → 内核(6.8系列)+ initrd
  • initrd包含最小化驱动栈(nvme、ahci、virtio等)、udev、基本工具
  • 根文件系统挂载前不依赖网络,允许离线安装

2. 存储布局原理与选择

Ubuntu 24.04 默认不再强制创建独立swap分区,转而依赖zram或swapfile(动态管理)。

  • 自动分区(推荐生产简单场景):
    • LVM薄池 + ext4(根分区约占总空间的全部或大部分)
    • 逻辑卷动态扩展,无需预留大量未分配空间
    • 无独立swap → 内存压力时优先使用zram(压缩RAM),再fallback到swapfile
  • 手动分区适用场景:
    • /boot/efi(FAT32,512MB–1GB)
    • /boot(ext4,1–2GB,可选加密)
    • LVM物理卷 → 逻辑卷分离 /、/var、/home、/data
    • 加密选项:LUKS(dm-crypt)全盘或分区级,结合TPM可实现自动解锁(需硬件支持)
    • ZFS支持回归(guided install可选),提供快照、压缩、RAID-Z,但增加内存需求(推荐≥8GB)

选择原则:最小化分区数量以简化管理,但生产环境建议将/var/log、/var/lib/docker等高写负载目录分离,避免根分区写满导致系统不可用。

3. 网络与身份初始化

  • 云环境依赖cloud-init从元数据自动获取IP、主机名、SSH密钥
  • 本地安装默认DHCP,静态IP需手动配置(Netplan YAML)
  • 身份阶段支持从GitHub/Launchpad/Ubuntu One导入SSH公钥,优先ed25519曲线(安全性高于rsa-2048,计算效率更高)

4. 软件选择与最小化原则

默认仅安装极简服务器组件(openssh-server、curl、vim等)。 Featured Snaps(如docker、microk8s)可在安装时勾选,但建议post-install通过snap/ apt控制版本,避免安装器阶段引入不必要的依赖。

首次启动后的系统加固理论与实践

1. 更新机制与安全补丁模型

Ubuntu采用分层更新策略:

  • Main/Universe仓库 → 5年免费安全维护
  • Ubuntu Pro(免费个人/小团队30台以内) → 扩展至10年 + Livepatch(内核热补丁无重启) + ESM仓库

首次执行:

Bash
sudo apt update && sudo apt full-upgrade

full-upgrade比upgrade更彻底,可处理依赖变更。

启用无人值守更新(unattended-upgrades):

  • 默认已安装,编辑/etc/apt/apt.conf.d/50unattended-upgrades启用${distro_codename}-security
  • 原理:每日检查安全源,自动安装高危补丁,降低0day暴露窗口

2. 用户与权限模型

避免直接使用root远程登录,遵循最小权限原则(POLP)。 创建专用管理用户并加入sudo组:

  • sudo组通过/etc/sudoers.d/文件实现细粒度控制(可限制命令、白名单主机)
  • 推荐使用adduser而非useradd,自动创建家目录、shell等

3. SSH安全架构

SSH是服务器最主要暴露面,2026年推荐配置:

  • 强制公钥认证(ed25519或ecdsa-nistp521)
  • 禁用密码认证(PasswordAuthentication no)
  • 禁止root登录(PermitRootLogin no)
  • 可选:限制登录用户(AllowUsers user@ip)、更改端口(非安全措施,仅降低噪音)
  • 启用PubkeyAcceptedAlgorithms +ssh-ed25519(禁用旧算法如ssh-rsa)

配置文件/etc/ssh/sshd_config修改后需验证语法:

Bash
sudo sshd -t
sudo systemctl restart ssh

4. 防火墙与网络分层防御

UFW(Uncomplicated Firewall)是对iptables/nftables的简化前端,默认使用nftables后端(24.04已全面切换)。 启用原则:默认拒绝,显式允许。

Bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH   # 或指定端口/来源IP
sudo ufw enable

高级场景可结合:

  • nftables直接规则(更细粒度,如限速、connlimit)
  • fail2ban(监控auth.log,自动封禁暴力破解IP)
  • crowdsec(社区驱动的协作式IPS,支持 bouncer 到防火墙/云API)

5. 其他系统级加固要点

  • AppArmor:默认启用,针对常见服务(如sshd、apache2)提供强制访问控制(MAC)。检查状态:aa-status
  • 自动安全更新 + Livepatch:Pro用户可启用内核实时补丁,消除因补丁重启带来的维护窗口
  • 审计与日志:启用auditd记录关键系统调用;journald持久化(/var/log/journal)
  • 最小安装后清理:apt autoremove、apt autoclean移除无用包
  • 时区与NTP:systemd-timesyncd默认启用,确保时间同步(证书验证、日志关联依赖准确时间)

快速验证清单

  • 内核与包均为最新(apt list --upgradable为空)
  • 时区正确(timedatectl)
  • SSH仅允许密钥,root禁止(sshd -T | grep -i permitroot)
  • UFW启用且策略为deny incoming
  • 普通用户可sudo,无需密码的root登录被禁用
  • unattended-upgrades配置包含security源

完成上述步骤后,系统已具备生产级基础安全姿态,可进一步根据负载安装容器运行时(Docker/Podman)、编排(Kubernetes via MicroK8s)、数据库或Web栈。

后续扩展可关注:

  • Netplan与systemd-networkd的现代网络管理
  • snap vs deb在服务器场景的权衡
  • cis-cat或Ubuntu Security Guide(usg)自动化合规检查

通过这些决策与配置,Ubuntu Server能够在最小资源开销下提供长期稳定与可审计的安全基线。

THE END