. 文档概述

       本文档基于 openEuler 官方安全基线规范,旨在修复系统默认安全风险、规避恶意攻击、提升系统机密性、完整性、可用性,适配等保2.0、企业服务器安全运维规范、日常安全合规自查。

. 加固前置准备

2.1 实验环境

  1. 操作系统:openEuler 22.03 SP3
  2. 实验平台:天枢一体化虚拟仿真平台

2.2 系统信息核查

加固前先确认系统版本、内核、运行状态,确保加固适配性:

# 查看openEuler版本
cat /etc/openEuler-release
# 查看内核版本
uname -r
# 查看系统运行状态、开机自启服务
systemctl list-unit-files --type=service
# 查看已开放端口
ss -tulnp

2.3 配置备份

所有系统核心配置文件修改前,统一备份,备份文件保留修改时间戳,便于故障回滚:

  • 本实验环境,有初始模版暂不需要进行备份操作,如中途有操作备份也可以使用平台的快照功能保存配置。
  • 生产环境:加固前创建服务器快照/镜像,规避配置错误导致系统故障
  • 确认加固窗口为业务低峰期,记录业务进程、端口、数据库状态,便于异常恢复
  • 禁止业务高峰期执行内核参数、SSH、账号权限等核心加固操作

. 账号与口令安全加固

3.1 清理无效账号

核查系统所有账号,删除闲置、无效、测试账号,锁定无用系统账号:

# 查看所有系统账号
cat /etc/passwd
# 查看所有可登录账号
grep /bin/bash /etc/passwd
# 删除无效普通账号(示例)
userdel -r test
userdel -r temp
# 锁定系统无用账号(禁止登录)
usermod -L adm
usermod -L lp
usermod -L sync
usermod -L shutdown
usermod -L halt

加固标准:仅保留业务必需账号、root账号,无闲置、匿名、测试账号。

3.2 配置口令复杂度策略

通过 PAM 模块强制口令复杂度,杜绝弱口令,适配官方安全基线要求:

# 安装PAM口令校验组件(系统默认已安装,缺失则执行)
yum install pam_pwquality -y
# 编辑PAM认证配置
vi /etc/pam.d/system-auth

添加/修改如下配置:

password    required    pam_pwquality.so retry=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 enforce_for_root

参数说明:

  • minlen=8:口令最小长度8位
  • dcredit=-1:至少包含1个数字
  • ucredit=-1:至少包含1个大写字母
  • lcredit=-1:至少包含1个小写字母
  • ocredit=-1:至少包含1个特殊字符
  • retry=3:输错3次退出修改
  • enforce_for_root:root账号同样生效,不豁免

3.3 口令有效期与修改策略

修改登录配置文件,规范口令生命周期,避免长期不更换弱口令:

vi /etc/login.defs

修改如下参数:

PASS_MAX_DAYS   90    # 口令最大有效期90天
PASS_MIN_DAYS   0     # 口令最小修改间隔0天(可随时修改)
PASS_WARN_AGE   7     # 过期前7天弹窗提醒修改

3.4 登录失败锁定策略

防止暴力破解登录,配置登录失败锁定机制(openEuler 默认基础锁定,优化强化):

vi /etc/pam.d/sshd
vi /etc/pam.d/login

文件末尾添加:

# 连续输错3次锁定账号,锁定600秒
auth    required    pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=600

解锁账号命令:

pam_tally2 --reset -u 用户名

3.5 限制 su 权限

仅允许 root 及 wheel 组用户执行 su 切换权限,杜绝普通用户越权切换 root:

vi /etc/pam.d/su

开启如下配置(取消注释):

auth    required    pam_wheel.so use_uid

加固效果:非 wheel 组普通用户无法执行 su 切换 root 账号。

. SSH 服务安全加固

SSH 为远程登录核心服务,是攻击高频入口,需全面加固,禁用弱算法、高危配置。

4.1 禁止 root 直接 SSH 登录

vi /etc/ssh/sshd_config

修改参数:

PermitRootLogin no

加固说明:禁止 root 账号远程直接登录,需通过普通用户登录后切换 root,降低爆破风险。

4.2 配置登录超时与最大会话数

vi /etc/ssh/sshd_config

添加/修改如下参数:

# 客户端心跳检测,300秒无响应断开
ClientAliveInterval 300
ClientAliveCountMax 3
# 最大并发登录会话数
MaxSessions 10
# 仅支持SSH2协议
Protocol 2

同时配置全局字符界面超时,统一闲置退出规则:

echo "export TMOUT=300" >> /etc/profile
source /etc/profile

4.3 禁用弱加密算法,启用强加密套件

禁用 CBC、MD5、SHA1 等不安全算法,仅保留高强度加密算法,适配 openEuler 官方安全配置:

vi /etc/ssh/sshd_config

添加如下配置:

Ciphers aes128-ctr,aes192-ctr,aes256-ctr
MACs hmac-sha2-256,hmac-sha2-512
KexAlgorithms diffie-hellman-group-exchange-sha256

4.4 关闭 SSH 弱特性

vi /etc/ssh/sshd_config

修改关闭高危配置:

# 禁止空密码登录
PermitEmptyPasswords no
# 禁止密码登录(可选,生产环境建议开启密钥登录后关闭)
# PasswordAuthentication no
# 关闭反向解析,提升登录速度、规避解析攻击
UseDNS no

4.5 重启 SSH 服务生效

systemctl restart sshd
systemctl enable sshd

注意:修改加密算法后,低版本 Xshell、PuTTY 可能无法登录,需使用 5.0 及以上版本客户端。

. 内核参数安全加固

通过优化内核参数,防范端口扫描、SYN 洪水、ICMP 攻击、路由欺骗等网络攻击,提升系统网络安全防护能力。

5.1 统一加固配置

vi /etc/sysctl.conf

清空原有冗余配置,添加如下标准加固参数:

# 关闭IP转发,防止路由劫持
net.ipv4.ip_forward = 0
# 禁止转发ICMP重定向报文
net.ipv4.accept_redirects = 0
net.ipv6.accept_redirects = 0
# 禁止源路由
net.ipv4.accept_source_route = 0
# 防范SYN洪水攻击
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
# 忽略ICMP广播报文,防范Smurf攻击
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 禁止响应非法ICMP请求
net.ipv4.icmp_ignore_bogus_error_responses = 1
# 限制TCP连接超时
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
# 提升端口范围,规避端口占用风险
net.ipv4.ip_local_port_range = 1024 65535
# 关闭内核Dump,防止敏感信息泄露
kernel.core_pattern = 0
# 禁止非root用户查看内核日志
kernel.dmesg_restrict = 1
# 防范地址随机化绕过
kernel.randomize_va_space = 2

5.2 生效配置并核查

# 生效所有内核参数
sysctl -p
# 核查所有加固参数是否生效
sysctl -a | grep 加固参数名

. 文件系统与权限安全加固

6.1 配置默认 UMASK 权限

修改系统默认权限掩码,确保新建文件、目录权限最小化,防止权限过宽:

vi /etc/profile
vi /etc/bashrc

添加/修改:

umask 077

生效后新建文件默认权限600、目录默认权限700,仅属主可读写执行。

source /etc/profile
source /etc/bashrc

6.2 关键文件权限锁定

系统核心配置文件仅允许 root 读写,禁止其他用户访问、修改:

# 关键权限加固
chmod 600 /etc/shadow
chmod 644 /etc/passwd
chmod 600 /etc/gshadow
chmod 644 /etc/group
chmod 600 /etc/ssh/sshd_config
chmod 700 /root

# 锁定文件禁止修改(防止篡改)
chattr +i /etc/shadow
chattr +i /etc/passwd

6.3 临时目录安全挂载加固

加固 /tmp、/var/tmp、/dev/shm 临时目录,禁止执行恶意程序、SUID 提权:

vi /etc/fstab

添加如下挂载参数:

tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev 0 0
tmpfs /var/tmp tmpfs defaults,noexec,nosuid,nodev 0 0
tmpfs /dev/shm tmpfs defaults,noexec,nosuid,nodev 0 0

重新挂载生效:

mount -o remount /tmp
mount -o remount /var/tmp
mount -o remount /dev/shm

6.4 清理 SUID/SGID 高危权限文件

SUID/SGID 文件易被利用提权,清理无用高危权限文件:

# 查找所有SUID文件
find / -type f -perm -4000 2>/dev/null
# 查找所有SGID文件
find / -type f -perm -2000 2>/dev/null

# 移除无用文件的SUID权限(示例)
chmod u-s /usr/bin/chfn
chmod u-s /usr/bin/chsh
chmod u-s /usr/bin/newgrp

. 系统服务与开机自启加固

7.1 关闭无用高危服务

关闭系统默认闲置、高危服务,减少攻击面:

# 关闭打印、蓝牙、邮件等无用服务
systemctl stop cups.service
systemctl disable cups.service
systemctl stop bluetooth
systemctl disable bluetooth
systemctl stop postfix
systemctl disable postfix

# 关闭telnet、rlogin等高危明文服务
systemctl stop telnet.socket
systemctl disable telnet.socket

7.2 管控定时任务权限

限制普通用户使用 crontab、at 任务,防止恶意定时任务植入:

# 仅允许root使用定时任务
touch /etc/cron.allow
touch /etc/at.allow
chmod 600 /etc/cron.allow
chmod 600 /etc/at.allow
chown root:root /etc/cron.allow
chown root:root /etc/at.allow

# 禁止普通用户
rm -f /etc/cron.deny
rm -f /etc/at.deny

. 日志审计安全加固

8.1 开启系统完整审计日志

安装并启用 audit 审计服务,记录系统关键操作,满足合规追溯需求:

yum install audit audit-libs -y
systemctl start auditd
systemctl enable auditd

8.2 配置日志留存与轮转策略

vi /etc/audit/auditd.conf

修改参数:

# 日志文件大小2048M
max_file_size = 2048
# 保留10个历史日志文件
num_logs = 10
# 日志满后轮转,不阻塞系统
disk_full_action = ROTATE
# 禁止日志被篡改
immutable = yes

8.3 加固系统日志权限

所有日志文件仅 root 可读写,防止普通用户篡改、删除日志:

chmod 600 /var/log/*.log
chmod 600 /var/log/messages
chmod 600 /var/log/secure
chown root:root /var/log/*

openEuler 安全加固工具日志默认存储于 /var/log/openEuler-security.log,需定期巡检。

. GRUB 引导加固

防止恶意人员修改系统引导参数、破解 root 密码、篡改启动项,openEuler 默认 GRUB 密码为 openEuler#12,必须修改。

9.1 生成加密 GRUB 密码

# 生成SHA-512加密密码
grub2-mkpasswd-pbkdf2

输入自定义密码,复制生成的加密密文。

9.2 配置 GRUB 密码保护

vi /etc/grub.d/40_custom

添加如下内容(粘贴上述加密密文):

set superusers="root"
password_pbkdf2 root 生成的加密密文

9.3 生效 GRUB 配置

# BIOS服务器
grub2-mkconfig -o /boot/grub2/grub.cfg
# UEFI服务器
grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg

加固效果:修改引导参数、进入单用户模式必须输入 GRUB 密码。

. 防火墙与端口安全加固

10.1 启用 firewalld 防火墙

systemctl start firewalld
systemctl enable firewalld
# 设置默认拒绝所有流量
firewall-cmd --set-default-zone=drop

10.2 仅放行业务必需端口

# 放行SSH端口(自定义端口需同步修改)
firewall-cmd --permanent --add-port=22/tcp
# 放行业务端口(根据实际业务补充)
# firewall-cmd --permanent --add-port=80/tcp
# firewall-cmd --permanent --add-port=443/tcp

# 重载生效
firewall-cmd --reload
# 查看已放行端口
firewall-cmd --list-ports

十一. 安全加固验收标准与核查命令

所有加固完成后,逐项核查,确保100%合规,以下为核心验收命令:

11.1 账号口令核查

# 核查口令有效期
grep PASS /etc/login.defs
# 核查登录锁定策略
grep pam_tally2 /etc/pam.d/sshd
# 核查root远程登录状态
grep PermitRootLogin /etc/ssh/sshd_config

11.2 内核参数核查

sysctl -a | grep tcp_syncookies
sysctl -a | grep ip_forward
sysctl -a | grep core_pattern

11.3 文件权限核查

ls -l /etc/shadow /etc/passwd
umask
mount | grep tmpfs

11.4 服务与端口核查

systemctl list-unit-files | grep disable
ss -tulnp
firewall-cmd --list-all

11.5 加固工具日志核查

cat /var/log/openEuler-security.log

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐