本检查单面向需要部署和维护供多用户共享的 Linux 服务器(如实验室、学生社团、小型科研集群等)的系统管理员。
若你按此清单完成配置与排查,即可获得一个基本可用、安全可靠、易于调试的服务器环境,并有效防范常见安全风险。


一、系统安装

  • 选择稳定发行版
    使用 Debian stable 或其他长期支持(LTS)发行版。建议通过 PXE 网络安装U 盘 安装,确保安装过程可控,并预留充足维护时间。

  • 强密码策略
    root 用户及所有具有 sudo 权限的用户设置高强度密码(建议 12 位以上,含大小写字母、数字、符号)。

  • 合理磁盘分区与存储

    • 尽量将系统根文件系统(/)部署在 SSD 上以提升性能与响应速度。

    • 制定合理分区方案(例如://home/var 分离),避免单个目录填满导致系统瘫痪。

    • 若使用 LVM,应提前规划,便于未来扩容。


二、软件安装与管理

  • 使用本地镜像源(中国大陆)
    若服务器位于中国大陆,务必替换默认软件源为国内镜像站(如 USTC、清华、阿里云等),以提升下载速度与安装成功率。

  • 优先使用包管理器

    • 所有系统级软件应优先通过官方包管理器(如 apt)安装。

    • 禁止随意使用源码编译、脚本安装等方式将软件部署到 /usr/local/opt 等系统目录,除非确有必要。

  • 建立非包管理软件台账
    对于必须手动安装的系统级软件(如自研工具、特定版本编译器),管理员需建立台账,记录:

    • 软件名称、版本、安装路径

    • 安装原因、维护人、更新策略

    • 是否存在安全/兼容性风险

  • 提供开发环境指引

    • 在系统目录中预装通用版本的编译与开发工具链(如 GCC、Python、CMake)。

    • 为有特殊需求的用户(如需新版编译器、特定 Python 包),提供在自家目录(~/)中独立配置工具链的文档指引(例如使用 pyenvcondaasdf 等)。

💡 必要但易被忽略的调试与稳定性工具(建议默认安装):

  • earlyoomsystemd-oomd:在内存严重不足时,自动终止占用内存最多的用户进程,防止系统完全卡死。

  • systemd-coredump:自动捕获程序崩溃时的 coredump,便于事后分析。

  • chronysystemd-timesyncd:确保系统时间准确同步(对日志、证书、分布式系统至关重要)。

  • bcc-tools + bpftrace:基于 eBPF 的强大内核/用户态追踪工具,用于性能分析与故障诊断。

  • rasdaemon:收集 CPU、内存等硬件的底层错误日志(如 ECC 内存纠错记录)。

  • 实用监控工具:htop(进程)、iotop(磁盘 I/O)、iftop / bmon(网络流量)、ncdu(交互式磁盘使用分析)。


三、远程管理

  • 启用带外管理(如 IPMI)

    • 若服务器支持 IPMI、iDRAC、iLO 等带外管理功能,务必启用并配置固定 IP 地址

    • 设置强密码,并通过独立管理网络或 VLAN 接入。

    • 带外管理可在系统崩溃、内核 panic、网络中断等极端情况下提供远程开关机、控制台访问能力,大幅提升节假日或无人值守期间的可用性

  • 正确配置 SSH

    • SSH 是远程管理的主要且应唯一入口

    • 确保 sshd 服务启用、配置合理、日志完整。

    • (详见后续《SSH 安全配置指南》)


四、系统安全

  • 强制强密码
    所有用户(至少包括 rootsudo 用户)必须使用高强度密码。可配合 PAM 模块(如 libpam-pwquality)强制密码复杂度。

禁用 SSH 密码登录(推荐)
/etc/ssh/sshd_config 中设置:

c

仅允许通过 SSH 密钥认证登录,这是防范暴力破解的最有效手段。

  • 若必须启用密码登录

绝对禁止 root 用户通过密码登录

PermitRootLogin prohibit-password   # 或 no

如需为个别用户开启密码登录,使用 Match 块精确控制:

Match User alice,bob
    PasswordAuthentication yes

五、网络安全

  • 数据库服务仅监听本地
    MySQL、PostgreSQL、Redis 等数据库服务默认不应监听公网或局域网 IP,应配置为仅绑定:

    • 127.0.0.1(IPv4)

    • ::1(IPv6)

    • 或使用 Unix socket(如 /var/run/postgresql/.s.PGSQL.5432

防火墙兜底防护
即使服务配置正确,也应配置主机防火墙(如 ufwnftables)或网络层防火墙,明确拒绝外部对敏感端口的访问,例如:

# 阻止所有外部访问数据库端口
ufw deny 3306/tcp   # MySQL
ufw deny 5432/tcp   # PostgreSQL
ufw deny 6379/tcp   # Redis

“最小开放原则”:只开放业务必需的端口。


结语

这份检查单不是终点,而是安全、可靠、可维护服务器的起点
随着服务复杂度提升,你可能还需要考虑:自动备份、日志集中收集、入侵检测、配置管理(如 Ansible)等进阶实践。

但请记住:再复杂的架构,也始于一台配置得当的单机
从今天开始,用这份清单,打造你值得信赖的服务器环境。