企业级 Linux 服务器安全基线规范(全生命周期落地版)
好的,我现在需要帮用户总结一篇文章的内容,控制在100字以内。用户提供的文章内容涉及Linux服务器的安全基线配置,包括上线前的准备、系统安装与加固、账号管理、密码策略以及SSH安全等多个方面。 首先,我需要理解文章的主要结构和每个部分的关键点。文章分为三个主要部分:上线前的基线规划与前置准备、系统安装与初始安全加固、账号与身份认证安全基线。 上线前的准备包括基线适配与合规对齐,确保业务可用性不受影响;安装介质的安全校验,避免恶意镜像带来的风险。系统安装部分涉及磁盘分区的安全配置,引导和启动项的安全加固,如BIOS/UEFI设置和GRUB2加密。账号管理部分强调最小权限原则,清理无用账号,设置强密码策略,并加固SSH远程登录。 接下来,我需要将这些内容浓缩到100字以内。重点应放在关键措施上:合规对齐、介质校验、分区安全、引导加密、账号清理、密码策略和SSH加固。 最后,确保语言简洁明了,不使用复杂的术语,并且直接描述内容,不需要开头语。 </think> 文章详细介绍了企业 Linux 服务器的安全基线配置方法,包括上线前的基线适配与合规对齐、安装介质校验等准备工作;系统安装阶段的磁盘分区安全规划、引导与启动项加固措施;以及账号管理中的最小化管控、强密码策略和 SSH 远程登录安全加固等内容。 2026-2-27 03:44:56 Author: www.freebuf.com(查看原文) 阅读量:2 收藏

一、上线前基线规划与前置准备

1.1 基线适配与合规对齐

企业 Linux 安全基线需先完成业务与合规对齐,避免过度加固影响业务可用性,核心对齐要求如下

1772162469_69a10da5d794623cd7f2e.png!small?1772162470862

1.2 安装介质与前置校验

服务器上线前必须完成安装源的安全校验,杜绝恶意镜像带来的初始入侵风险,核心流程如下:

  1. 仅使用官方渠道下载的系统镜像,校验镜像哈希值(SHA256)与官方发布值一致
    # 示例:CentOS 9 镜像哈希校验
    sha256sum CentOS-Stream-9-latest-x86_64-dvd1.iso
    # 对比官方发布的SHA256值,不一致则禁止使用
    
  2. 禁止使用第三方修改版镜像、Ghost 镜像、带预装软件的镜像
  3. 离线环境需提前准备离线安全源,禁止生产服务器直接连接公网未授权源

1772162510_69a10dce3ad83c4aa33b0.png!small?1772162513762

二、系统安装与初始安全加固

2.1 磁盘分区与挂载安全加固

最小化安装场景下,必须执行分区安全规划,核心原则是关键目录独立分区、限制高危权限、防止磁盘溢出攻击,分区规范与结构如下

1772162535_69a10de7c264b8973cf2d.png!small?1772162538841

配置生效与持久化命令:

# 1. 查看当前挂载参数
mount | column -t

# 2. 修改/etc/fstab,添加对应挂载参数(示例:/tmp分区)
# 编辑配置文件
vi /etc/fstab
# 添加/修改对应行
UUID=xxxx-xxxx /tmp ext4 defaults,nosuid,noexec,nodev 0 0

# 3. 重新挂载生效,无需重启
mount -o remount /tmp

# 4. 验证配置是否生效
mount | grep /tmp

2.2 引导与启动项安全加固

2.2.1 BIOS/UEFI 安全配置

  1. 设置 BIOS/UEFI 管理员密码,禁止无权限人员修改启动项
  2. 禁用 U 盘、光盘、网络 PXE 启动,仅允许系统硬盘优先启动
  3. 开启 Secure Boot 安全启动(适配 UEFI 模式),禁止未签名的内核与驱动加载

2.2.2 GRUB2 引导加密

防止单用户模式修改 root 密码、篡改内核启动参数,必须设置 GRUB2 密码保护,配置流程如下:

1772162567_69a10e07ca0558b139153.png!small?1772162571517

可直接执行的配置命令:

# 1. 生成GRUB2加密密码(RPM系与DEB系通用)
grub2-mkpasswd-pbkdf2
# 输入密码后,复制生成的PBKDF2哈希串,格式为grub.pbkdf2.sha512.xxxx

# 2. 修改GRUB配置文件
# RPM系(CentOS/RHEL)
vi /etc/grub.d/00_header
# DEB系(Ubuntu/Debian)
vi /etc/grub.d/40_custom

# 3. 文件末尾添加以下内容,替换为生成的哈希串
cat << EOF
set superusers="root"
password_pbkdf2 root 你生成的PBKDF2哈希串
EOF

# 4. 更新GRUB配置文件,持久化生效
# RPM系
grub2-mkconfig -o /boot/grub2/grub.cfg
# DEB系
update-grub

# 5. 风险提示:配置完成后重启验证,必须输入密码才能修改GRUB启动参数

2.2.3 禁用不必要的 TTY 与串口

限制虚拟终端数量,减少攻击面:

# 1. 查看默认开启的TTY数量
systemctl list-unit-files | grep getty@

# 2. 禁用多余TTY,仅保留1-2个(示例:禁用tty3-tty6)
systemctl mask --now [email protected] [email protected] [email protected] [email protected]

# 3. 验证配置
systemctl list-unit-files | grep getty@ | grep enabled

三、账号与身份认证安全基线

账号安全是 Linux 入侵防御的核心防线,核心原则是最小权限原则、账号全生命周期管控、强身份认证

1772163443_69a11173c0efb5768f85a.png!small?1772163445108

3.1 系统账号清理与最小化管控

3.1.1 禁用 / 删除无用默认账号

可直接执行的配置命令:

# 1. 查看系统所有账号,筛选可登录账号
cat /etc/passwd | grep -v /sbin/nologin | grep -v /bin/false

# 2. 禁用非必需系统账号(示例,根据业务需求调整)
usermod -s /sbin/nologin adm
usermod -s /sbin/nologin lp
usermod -s /sbin/nologin sync
usermod -s /sbin/nologin shutdown
usermod -s /sbin/nologin halt
usermod -s /sbin/nologin news
usermod -s /sbin/nologin uucp
usermod -s /sbin/nologin operator
usermod -s /sbin/nologin games
usermod -s /sbin/nologin gopher

# 3. 锁定长期不使用的账号
usermod -L 账号名
# 解锁账号命令:usermod -U 账号名

# 4. 排查UID=0的账号,正常仅root一条结果
awk -F: '$3==0 {print $1}' /etc/passwd
# 如发现非root账号UID=0,立即删除或修改UID
userdel 违规账号名

# 5. 风险提示:禁止禁用root、bin、daemon、ssh等系统核心运行必需账号

3.2 密码策略强管控

通过 PAM 模块与系统配置实现密码全生命周期强管控,符合等保三级要求,RPM 系与 DEB 系配置路径有差异,需严格区分,PAM 认证流程与策略配置逻辑如下:

1772162656_69a10e609d8b5bb379140.png!small?1772162657303

可直接执行的配置命令:

3.2.1 密码复杂度配置

# ========== RPM系(CentOS/RHEL 7+) ==========
# 1. 编辑PAM认证配置文件
vi /etc/pam.d/system-auth
vi /etc/pam.d/password-auth

# 2. 找到password requisite pam_pwquality.so行,修改为以下配置
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
# 参数说明:
# minlen=12:密码最小长度12位
# lcredit=-1:至少1个小写字母
# ucredit=-1:至少1个大写字母
# dcredit=-1:至少1个数字
# ocredit=-1:至少1个特殊字符
# retry=3:密码错误3次锁定
# enforce_for_root:root用户也强制遵守该规则

# ========== DEB系(Ubuntu/Debian) ==========
# 1. 安装密码复杂度模块
apt update && apt install libpam-pwquality -y

# 2. 编辑PAM配置文件
vi /etc/pam.d/common-password

# 3. 找到password requisite pam_pwquality.so行,修改为上述相同配置

3.2.2 密码生命周期与历史记录管控

# 1. 编辑登录配置文件,全局生效
vi /etc/login.defs

# 2. 修改/添加以下配置
PASS_MAX_DAYS 90    # 密码最大有效期90天
PASS_MIN_DAYS 5     # 密码修改后最小使用天数5天,防止频繁修改绕过历史记录
PASS_MIN_LEN 12     # 密码最小长度,与PAM配置保持一致
PASS_WARN_AGE 7     # 密码过期前7天提醒用户修改

# 3. 配置密码历史记录,禁止使用近5次用过的密码
# RPM系:在/etc/pam.d/system-auth/password-auth中添加
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

# DEB系:在/etc/pam.d/common-password中添加
password [success=1 default=ignore] pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

3.2.3 登录失败锁定策略

# ========== RPM系(CentOS/RHEL 8+,使用pam_faillock) ==========
# 1. 编辑/etc/pam.d/system-auth与password-auth
vi /etc/pam.d/system-auth
vi /etc/pam.d/password-auth

# 2. auth段添加以下配置(放在auth段最上方)
auth required pam_faillock.so preauth silent audit deny=5 unlock_time=1800 even_deny_root root_unlock_time=3600
auth required pam_faillock.so authfail audit deny=5 unlock_time=1800 even_deny_root root_unlock_time=3600

# 3. account段添加以下配置
account required pam_faillock.so

# ========== DEB系(Ubuntu/Debian) ==========
# 1. 编辑/etc/pam.d/common-auth
vi /etc/pam.d/common-auth

# 2. 添加以下配置
auth required pam_faillock.so preauth silent audit deny=5 unlock_time=1800 even_deny_root root_unlock_time=3600
auth required pam_faillock.so authfail audit deny=5 unlock_time=1800 even_deny_root root_unlock_time=3600
account required pam_faillock.so

# 常用命令
faillock --user 用户名  # 查看用户登录失败记录
faillock --user 用户名 --reset  # 解锁被锁定的用户

3.3 SSH 远程登录安全加固

SSH 是 Linux 远程管理的核心入口,也是黑客攻击的首要目标,必须执行最高等级加固,所有配置修改前必须保留一个活跃会话,防止配置错误导致断连,SSH 加固核心流程与配置逻辑如下:

1772162699_69a10e8ba5eef4aa29e65.png!small?1772162700421

可直接执行的配置命令:

# 1. 先备份原有配置文件,必做!
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%Y%m%d)

# 2. 编辑SSH主配置文件
vi /etc/ssh/sshd_config

# 3. 核心加固配置(逐项修改/添加,注释掉原有冲突配置)
# 3.1 基础端口与地址绑定
Port 22222                              # 修改默认22端口,推荐使用10000-65535之间的端口
ListenAddress 0.0.0.0                   # 生产环境建议绑定固定内网IP,禁止0.0.0.0
# 3.2 登录权限管控
PermitRootLogin no                       # 禁止root用户直接远程登录
MaxAuthTries 3                           # 最大认证尝试次数3次
MaxSessions 5                            # 最大并发会话数5个
LoginGraceTime 30s                       # 登录认证超时时间30秒
PermitEmptyPasswords no                  # 禁止空密码登录
# 3.3 认证方式加固
PasswordAuthentication no                 # 生产环境禁用密码登录,仅使用密钥登录
PubkeyAuthentication yes                  # 开启公钥密钥认证
ChallengeResponseAuthentication no        # 禁用挑战应答认证
GSSAPIAuthentication no                   # 禁用GSSA

文章来源: https://www.freebuf.com/articles/network/471739.html
如有侵权请联系:admin#unsafe.sh