安全加固需分三步:选最小化镜像(如minimal/netinst,避live/desktop)、安装时禁第三方软件与云初始化、首登后立即封端口、锁root、启防火墙、改ssh配置、同步时间并留存日志。

选对最小化镜像是安全加固的第一步,不是越小越好,而是要兼顾精简、可控与可维护性;安装后必须立即关闭默认开放端口、禁用无用服务、配置基础防火墙和非root管理机制。
选镜像:认准“minimal”或“netinstall”,避开“live”和“desktop”
官方最小化镜像通常命名为 xxx-minimal.iso 或 xxx-netinst.iso(如 Debian 的 debian-12.6.0-amd64-netinst.iso,CentOS Stream 的 CentOS-Stream-9-latest-x86_64-boot.iso)。这类镜像不带图形界面、不预装办公/浏览器等冗余软件,仅含内核、基础工具(bash、coreutils、systemd)和包管理器。
- 拒绝使用 “Live CD” 镜像——它为临时运行设计,硬盘安装后仍残留大量调试组件和自动服务
- 跳过所有带 “Desktop”、“GNOME”、“KDE” 字样的镜像——即使选了“minimal install”选项,底层仍会拉取数百MB图形依赖
- 优先选长期支持(LTS)版本,如 Ubuntu 22.04 LTS、Debian 12 “Bookworm”、AlmaLinux 9——更新节奏稳定,安全补丁及时
安装时:关图形、关云初始化、只开必要分区
安装过程本身即安全起点。以 Debian/Ubuntu 的 live installer 或 CentOS 的 Anaconda 文本模式为例:
- 全程选择 “Install” 而非 “Try without installing”;进入安装后,取消勾选 “Install third-party software” 和 “Download updates while installing”(避免不可控网络行为)
- 分区阶段,至少划分
/(根)、/boot(若需单独挂载)、swap(或使用 swapfile),不创建 /home 单独分区——防止用户目录权限失控影响系统完整性 - 跳过 “Configure cloud-init” 提示(如有);若系统自动启用 cloud-init(常见于云镜像),安装后立即执行:
sudo systemctl disable --now cloud-init cloud-init-local
首登系统后5分钟:封端口、锁账户、起防火墙
首次 SSH 登录(推荐用密钥+禁密码方式),立刻执行以下操作:
- 更新并清理:
sudo apt update && sudo apt upgrade -y && sudo apt autoremove --purge -y(Debian/Ubuntu)
或sudo dnf update -y && sudo dnf autoremove -y(RHEL/CentOS/Alma) - 查监听端口:
ss -tlnp | grep -E ':(22|25|80|443)'—— 确保只有 sshd 运行;若发现 exim/postfix(25)、nginx/apache(80/443),立即停用:sudo systemctl stop exim4 && sudo systemctl disable exim4 - 启用 UFW(Debian/Ubuntu)或 firewalld(RHEL系):
sudo ufw default deny incoming && sudo ufw allow OpenSSH && sudo ufw enable
或sudo firewall-cmd --permanent --default-zone=drop && sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload - 锁定 root 并建管理账户:
sudo passwd -l root && sudo useradd -m -s /bin/bash admin && sudo usermod -aG sudo admin(Ubuntu)
或sudo usermod -s /sbin/nologin root && sudo useradd -m -s /bin/bash admin && sudo usermod -aG wheel admin(RHEL系)
加固进阶:SSH 三改 + 时间同步 + 日志留存
完成基础防护后,建议在10分钟内追加以下配置:
- 改 SSH 配置(
/etc/ssh/sshd_config):
→ 改端口:Port 2222(避开扫描高峰)
→ 关密码登录:PasswordAuthentication no
→ 限用户登录:AllowUsers admin - 重启 SSH:
sudo systemctl restart sshd(Debian/Ubuntu)或sshd(RHEL系) - 启用 NTP 时间同步(防证书/日志时间漂移):
sudo timedatectl set-ntp true - 确保日志持久化(尤其/var/log/journal):
sudo mkdir -p /var/log/journal && sudo systemd-journalctl --rotate && sudo systemd-journalctl --vacuum-time=30d










