运维检查单¶
本文仍在编辑中
本节主要提供如单/多台 Linux 服务器供多用户分享的情况下的运维配置和检查清单。
如果遵循本节提供的内容进行设置和排查操作,则可以部署基本可用的服务器环境,并且防范常见的网络安全问题。
系统安装¶
- 使用 PXE 方式或 U 盘安装较稳定且确保适当长度的维护时间的 Linux 发行版
- 安装时对有 root 或有 sudo 权限的用户设置强密码
- 尽量在 SSD 上部署系统 rootfs,并且确认分区方案合理
软件安装¶
- 对于部署在中国大陆地区的服务器,使用镜像站替换软件包管理系统提供的源
- 除非确有需要,不使用除软件包管理系统之外的方法安装软件到
/home
外的位置;对使用非软件包管理系统之外的方法安装到/home
外位置的软件,系统管理员应建立台账 - 对于实验室场合,在系统目录内设置恰当版本的编译和开发环境,并对有额外需求的用户的提供在家目录设置单独工具链的适当指引
TODO: explain
远程管理¶
- 对于带有 IPMI 等带外管理功能的服务器,将其启用,并配置固定 IP 地址和安全的密码后接入网络
正确配置的 IPMI 功能将为服务器崩溃等无法正常登录进入服务器的情况下的重启操作提供方便,可提升如假期等情况下的服务器可靠性。
- 正确设置 SSH,并作为远程管理的主要手段
TODO: add ref to ssh & explain
系统安全¶
- 是否所有用户都(或者至少 root 及有 sudo 权限的用户)具有强密码?
- SSH 的密码登录是否已禁用?(
PasswordAuthentication no
)- 如果有任何原因需要启用密码登录,是否已禁用 root 用户的密码登录?(
PermitRootLogin prohibit-password
) - 或者,仅对有需要的用户启用密码登录?(
Match user <username>
、PasswordAuthentication yes
)
- 如果有任何原因需要启用密码登录,是否已禁用 root 用户的密码登录?(
网络安全¶
- MySQL、PostgreSQL、Redis 等数据库服务是否只监听了本地地址?
- 或者,已经配置了外部防火墙阻断相关端口的入站连接?(MySQL: 3306,PostgreSQL: 5432,Redis: 6379)