Ubuntu 22.04 与 24.04 运维基线
运维基线的目的不是把所有服务器配置成完全相同,而是让身份、补丁、网络、日志、时间、备份和安全控制都有明确且可检查的最低标准。22.04 LTS 与 24.04 LTS 的包版本和部分默认行为不同,自动化前应在各版本分别验证。
一、资产与生命周期
lsb_release -a
uname -r
dpkg --print-architecture
systemd-detect-virt
pro status
记录主机用途、负责人、环境、业务等级、安装时间、版本、内核、IP、机房或云区域和维护窗口。升级前检查 Ubuntu 官方发布周期,不要把短期版本当作长期生产基线。
二、账号与 SSH
- 日常运维使用个人账号,通过
sudo提权,避免共享 root 口令。 - 优先使用密钥或组织统一身份认证;私钥必须加密并妥善保管。
- 修改 SSH 配置前先保持一个现有会话,并运行
sshd -t。 - 限制允许登录的用户或组,关闭不需要的转发能力。
- 重要环境启用 MFA、堡垒机、登录审计和来源限制。
不要只根据模板盲目关闭密码登录:必须先确认所有应急账号、自动任务和带外通道可用。
三、补丁与软件源
apt update
apt list --upgradable
unattended-upgrade --dry-run --debug
仅使用可信软件源,记录第三方仓库的用途、签名密钥、负责人和退出方案。安全更新可自动化,但内核、数据库、驱动和关键中间件应结合灰度与重启计划。更新后检查 /var/run/reboot-required,并验证服务而非只看 apt 返回成功。
四、网络与时间
- 使用 Netplan 管理持久网络配置,变更前保存当前文件。
netplan try可降低远程改错导致失联的风险,但仍要准备控制台。- 配置至少两个可靠 DNS 解析路径,并监控解析失败。
- 统一 NTP/chrony 策略,检查来源、层级和偏差。
ip -br addr
ip route
resolvectl status
timedatectl
systemctl status systemd-timesyncd --no-pager
五、防火墙与服务暴露
先通过 ss -lntup 识别监听端口,再决定 UFW、nftables 或云安全组策略。主机防火墙和云侧规则应共同遵循最小开放原则,避免“为了排障临时全开”后忘记恢复。
ss -lntup
ufw status verbose
systemctl --type=service --state=running
六、日志、审计与磁盘
- 统一 Journald 保留策略、日志轮转和远程日志转发。
- 监控根分区、
/var、inode、临时目录和应用日志增长。 - 对登录、sudo、计划任务、服务失败和关键配置变更建立告警。
- 使用 AppArmor 时,区分“策略阻止”与“应用故障”,不要直接全局关闭。
journalctl --disk-usage
df -hT
df -ih
du -xhd1 /var 2>/dev/null | sort -h
aa-status
七、备份与恢复
至少覆盖业务数据、配置、证书、密钥托管信息和自动化清单。备份成功不等于可恢复,应定期在隔离环境恢复,并记录恢复点目标、恢复时间目标和依赖顺序。
八、基线验收
- 无未知管理员账号和不明 SSH Key。
- 安全更新状态、重启需求和软件源可解释。
- 时间、DNS、路由和防火墙符合设计。
- 监听端口均有业务归属,未用服务已关闭。
- 日志、监控和告警可用,磁盘阈值合理。
- 备份完成过真实恢复测试。
- 基线偏差能由 Ansible 或其他配置管理工具定期检测。