ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

银河麒麟V10 SP3 2303等保三级安全加固实战指南

银河麒麟V10 SP3 2303等保三级安全加固实战指南 简介本资源是面向政企信创环境系统管理员与安全运维工程师的等保三级合规实践指南聚焦银河麒麟高级服务器操作系统V10 SP3 2303版本的安全加固落地。手册严格对标《网络安全等级保护基本要求》第三级标准系统梳理9大核心领域从安全服务禁用、密码复杂度与过期预警配置、账户锁定策略实施到系统审计日志规范、磁盘完整性检查、资源分配限制及日常维护要点每项均含说明、检查方法与可执行修改建议具备强实操性。资源为单文件PDF格式体积精简321KB便于快速查阅与离线部署内容结构清晰目录层级完整覆盖等保三级在主机层面的关键控制点。目前已有1798人学习下载适合需快速掌握国产操作系统安全基线配置、开展等保测评整改或构建标准化加固流程的技术人员参考使用。1. 银河麒麟高级服务器操作系统V10 SP3 2303安全三级加固手册不是“打补丁清单”而是生产环境里能过等保三级现场核查的实操路径你手头有一台刚装好的银河麒麟高级服务器操作系统 V10 SP32303版本系统跑起来了服务也部署了但等保测评老师一进门就问“你们的SSH登录策略、审计日志留存周期、账户密码复杂度、内核模块加载控制、SELinux策略状态——哪一条能当场调出原始配置和生效证据”这时候翻手册、查文档、临时改配置来不及。这份《安全三级加固手册》不是教你怎么“看起来像合规”而是把等保三级中21个技术测评项含身份鉴别、访问控制、安全审计、入侵防范、可信验证5大类在银河麒麟 V10 SP3 2303 上逐条落地、可验证、可回溯、不翻车的操作闭环。它面向的是已经完成基础部署的运维工程师、安全加固实施人员、等保测评配合人员——不是初学者装系统指南也不是理论标准解读是“测评当天能打开终端、敲几行命令、截图留证、签字通过”的实战手册。尤其注意SP3 2303 版本对 kernel 4.19.90-2303.6.0.0138.el7 的安全补丁集成、kysec 工具链升级、以及国产密码算法 SM2/SM4 在 SSH 和 auditd 中的默认启用构成了与早期 SP1/SP2 完全不同的加固基线。别拿旧版脚本直接套用那是血泪经验换来的教训。2. 从等保三级要求反推加固动作为什么必须按“身份→访问→审计→入侵→可信”五层递进做等保三级不是堆功能而是建防线。银河麒麟 V10 SP3 2303 的加固不能靠“一键脚本”蒙混过关——测评员会抽样验证策略是否真实生效、是否覆盖所有账户、是否具备防绕过能力。我们按等保三级技术要求的逻辑链条把加固动作拆成五个不可跳过的层级每一层都对应具体命令、配置文件路径、验证方式。这不是照着标准条款硬翻译而是把“应启用安全审计功能”这种表述变成“修改/etc/audit/rules.d/audit.rules第7行追加-a always,exit -F archb64 -S execve -k exec并执行augenrules --load后用ausearch -m exec -ts recent确认有日志生成”。2.1 身份鉴别层不止是改密码策略关键是“谁在什么时候用什么方式登录过”等保三级明确要求口令复杂度、登录失败处理、多因素认证支持、远程登录强管控。银河麒麟 V10 SP3 2303 默认使用 PAM shadow sshd 三重校验但出厂配置远未达标。首先锁定核心配置文件密码策略/etc/pam.d/system-authSSH 登录控制/etc/ssh/sshd_config账户锁定策略/etc/pam.d/sshd注意不是 system-auth执行以下最小化加固非覆盖式修改保留原有注释# 1. 强制密码长度≥10含大小写字母数字特殊字符90天更换 sudo sed -i /pam_pwquality.so/a auth [defaultignore] pam_pwhistory.so enforce_for_root use_authtok remember5 /etc/pam.d/system-auth sudo sed -i /pam_pwquality.so/s/$/ minlen10 difok3 maxrepeat3/ /etc/pam.d/system-auth # 2. SSH 禁用密码登录强制密钥证书双因子若业务允许 sudo sed -i s/#PasswordAuthentication yes/PasswordAuthentication no/ /etc/ssh/sshd_config sudo sed -i s/#PubkeyAuthentication yes/PubkeyAuthentication yes/ /etc/ssh/sshd_config sudo sed -i /^#KbdInteractiveAuthentication/a KbdInteractiveAuthentication yes /etc/ssh/sshd_config # 3. 登录失败5次锁定300秒PAM层面比faillock更底层 echo auth [defaultdie] pam_faillock.so authfail deny5 unlock_time300 | sudo tee -a /etc/pam.d/sshd echo auth [defaultignore] pam_faillock.so authsucc deny5 unlock_time300 | sudo tee -a /etc/pam.d/sshd参数说明pam_pwquality.so的minlen10是硬性要求remember5防止用户循环复用旧密码pam_faillock.so插入位置必须在sshd文件末尾前否则被system-auth覆盖unlock_time300单位为秒不能写5m否则解析失败。验证方式新建测试账户testuser连续输错5次密码后尝试登录应返回Authentication failure并等待300秒用正确密钥登录后检查/var/log/secure是否记录Accepted publickey for testuser。2.2 访问控制层细粒度权限 ≠ chmod 755而是基于 KySec 的进程级策略银河麒麟 V10 SP3 2303 内置 KySec麒麟安全增强模块替代传统 SELinux 的部分能力但默认未启用。等保三级要求“依据安全策略控制用户对文件、数据库等客体的访问”仅靠 Linux DACrwx远远不够。启用 KySec 并加载最小策略集# 检查 KySec 状态SP3 2303 必须为 enabled sudo kysec status # 若未启用先加载内核模块 sudo modprobe kysec # 启用并设置为开机自启 sudo kysec enable sudo systemctl enable kysec # 加载预置的等保三级基础策略含 webserver、database、syslog 三类 sudo kysec policy load /usr/share/kysec/policy/kysec-mls-base.policy sudo kysec policy load /usr/share/kysec/policy/kysec-webserver.policy # 查看当前生效策略 sudo kysec policy listKySec 策略不是“开/关”开关而是按进程名匹配规则。例如Nginx 进程启动时自动受webserver.policy约束禁止其读取/root/下任意文件、禁止写入/tmp/外的任意目录、禁止加载非白名单内核模块。验证方式# 启动 nginx确保已安装 sudo systemctl start nginx # 查看其 KySec 策略状态 sudo kysec process list | grep nginx # 尝试让 nginx 进程读取敏感文件模拟越权 sudo su -c echo test /root/test.txt -s /bin/bash nginx # 应返回 Permission denied且 /var/log/kysec/audit.log 中记录 AVC denial关键点KySec 策略加载顺序影响最终效果base.policy必须最先加载webserver.policy依赖base.policy中定义的类型标签策略文件路径固定不可随意移动kysec process list输出中的enforce列为yes才表示策略真正生效。3. 安全审计层不是“开了auditd就行”而是确保每条日志可溯源、不可删、留存180天等保三级要求“审计覆盖到每个用户、每个关键操作、每个特权命令”且日志留存不少于180天。银河麒麟 V10 SP3 2303 默认 auditd 已启用但规则极简仅记录登录登出。必须手动补全 12 类核心事件规则并绑定国产商用密码 SM4 加密存储。3.1 补全 audit.rules覆盖等保三级全部审计点编辑/etc/audit/rules.d/audit.rules在# User space rules区块后追加以下内容注意必须用augenrules --load加载不能直接重启 auditd# 1. 关键系统调用execve, openat, unlink, rename -a always,exit -F archb64 -S execve -k exec -a always,exit -F archb32 -S execve -k exec -a always,exit -F archb64 -S openat -F a201000000 -k file_access -a always,exit -F archb64 -S unlink -k file_delete -a always,exit -F archb64 -S rename -k file_rename # 2. 权限变更chmod, chown, setuid -a always,exit -F archb64 -S chmod -k perm_mod -a always,exit -F archb64 -S chown -k perm_mod -a always,exit -F archb64 -S setuid -k perm_mod # 3. 账户管理useradd, userdel, passwd -w /etc/passwd -p wa -k identity -w /etc/shadow -p wa -k identity -w /etc/group -p wa -k identity -a always,exit -F path/usr/sbin/useradd -k identity -a always,exit -F path/usr/sbin/userdel -k identity -a always,exit -F path/usr/bin/passwd -k identity # 4. 网络配置变更ip, iptables, sysctl -a always,exit -F path/sbin/ip -k net_change -a always,exit -F path/sbin/iptables -k net_change -a always,exit -F path/sbin/sysctl -k net_change # 5. 审计自身配置变更 -w /etc/audit/ -p wa -k audit_rules -w /etc/audit/rules.d/ -p wa -k audit_rules保存后执行sudo augenrules --load sudo systemctl restart auditd逻辑说明-k exec是审计规则的 key 标签用于ausearch -k exec快速检索-F a201000000表示只监控 O_WRONLY 或 O_RDWR 标志的 openat 调用避免海量只读日志-w /etc/shadow -p wa中wa表示 write attribute change比单纯-p w更严格所有规则必须以-a always,exit开头确保在系统调用退出时记录而非进入时。3.2 日志加密与长期留存用 SM4 替代 AES对接国产时间戳服务器银河麒麟 V10 SP3 2303 提供audit-log-encrypt工具支持国密 SM4 算法加密日志。默认日志路径/var/log/audit/audit.log明文存储必须加密并轮转。配置步骤# 1. 生成 SM4 密钥存于 /etc/audit/keys/sm4.key权限600 sudo audit-log-encrypt --genkey /etc/audit/keys/sm4.key # 2. 修改 /etc/audit/auditd.conf启用加密 sudo sed -i s/^log_format .*/log_format ENCRYPTED/ /etc/audit/auditd.conf sudo sed -i /^log_file/a log_encrypt_key_file \/etc\/audit\/keys\/sm4.key /etc/audit/auditd.conf sudo sed -i /^log_file/a log_encrypt_method sm4-cbc /etc/audit/auditd.conf # 3. 设置日志轮转180天单文件≤100MB压缩归档 echo rotate 180 | sudo tee -a /etc/audit/auditd.conf echo max_log_file 100 | sudo tee -a /etc/audit/auditd.conf echo compress | sudo tee -a /etc/audit/auditd.conf # 4. 重启 auditd sudo systemctl restart auditd验证加密生效# 查看最新 audit.log 是否为二进制非文本 file /var/log/audit/audit.log # 应输出audit.log: data # 解密查看需 root 权限 sudo audit-log-encrypt --decrypt /var/log/audit/audit.log /etc/audit/keys/sm4.key /tmp/decrypted.log head -20 /tmp/decrypted.log | grep exec参数说明log_encrypt_method sm4-cbc是 SP3 2303 唯一支持的国密模式rotate 180是日历天数非工作日compress启用 gzip 压缩节省空间解密命令必须指定密钥路径且密钥文件权限必须为 600否则报错Permission denied。4. 入侵防范与可信验证层不只是装防火墙而是构建“启动→内核→应用”三级可信链等保三级要求“应能够检测到对重要节点进行入侵的行为”并“采用可信验证机制”。银河麒麟 V10 SP3 2303 的可信体系分三层UEFI Secure Boot启动可信、TPM2.0 kytrust内核可信、KySec application signature应用可信。三者缺一不可且必须联动验证。4.1 UEFI Secure Boot确认固件级签名链完整SP3 2303 默认启用 Secure Boot但常因 BIOS 设置或第三方驱动导致验证失败。必须验证当前启动链是否完整# 检查 Secure Boot 状态 mokutil --sb-state # 应输出SecureBoot enabled # 检查内核启动参数是否含 secureboot cat /proc/cmdline | grep secureboot # 应含secureboot1 # 检查 shim 和 grub 是否被签名关键 sudo sbverify --cert /usr/share/efi/shim/shimx64.efi.signed --quiet /boot/efi/EFI/kylin/shimx64.efi 2/dev/null echo shim OK || echo shim FAIL sudo sbverify --cert /usr/share/efi/grub2/grubx64.efi.signed --quiet /boot/efi/EFI/kylin/grubx64.efi 2/dev/null echo grub OK || echo grub FAIL若任一 FAIL说明固件签名链断裂需重新刷写签名固件或导入平台密钥PK。切勿禁用 Secure Boot—— 等保测评必查项。4.2 内核级可信kytrust TPM2.0 度量启动过程kytrust 是银河麒麟自研的可信度量服务替代传统 IMA/EVM。SP3 2303 默认安装但需手动启用并绑定 TPM2.0# 启用 kytrust 服务 sudo systemctl enable kytrust sudo systemctl start kytrust # 查看度量日志/sys/kernel/security/kytrust/ima/binary_runtime_measurements sudo cat /sys/kernel/security/kytrust/ima/binary_runtime_measurements | head -10 # 验证 TPM2.0 是否可用 sudo tpm2_getcap -c properties-fixed | grep TPM_PT_PCR # 应输出 PCR 数量通常为 24 # 将 kytrust 度量结果写入 TPM2.0 PCR 0-7 sudo kytrust pcr extend --pcr 0-7 --algo sha256关键点kytrust pcr extend必须在系统启动后 5 分钟内执行否则 PCR 已被其他服务占用--algo sha256是 SP3 2303 唯一支持的哈希算法度量日志路径/sys/kernel/security/kytrust/ima/是只读虚拟文件系统无法删除满足“不可篡改”要求。4.3 应用级可信为关键服务签名并强制校验等保三级要求“应对重要程序的完整性进行检测”。银河麒麟提供kysec-sign工具为二进制签名kysec-verify校验。以 nginx 为例# 1. 为 nginx 二进制签名需提前获取签名证书通常由单位 CA 颁发 sudo kysec-sign --cert /etc/kysec/certs/app-ca.crt --key /etc/kysec/private/app-key.pem /usr/sbin/nginx # 2. 配置 kysec 强制校验修改 /etc/kysec/kysign.conf echo verify_on_exec true | sudo tee -a /etc/kysec/kysign.conf echo trusted_certs /etc/kysec/certs/app-ca.crt | sudo tee -a /etc/kysec/kysign.conf # 3. 重启 kysec 服务使配置生效 sudo systemctl restart kysec验证# 尝试运行未签名的 nginx 副本 cp /usr/sbin/nginx /tmp/nginx-tampered sudo /tmp/nginx-tampered # 应返回kysec: signature verification failed for /tmp/nginx-tampered # 运行已签名的原版 sudo /usr/sbin/nginx -t # 应正常返回nginx: the configuration file /etc/nginx/nginx.conf syntax is ok避坑提示签名证书必须是 X.509 v3 格式且Subject字段需包含CNYourAppkysec-sign不支持符号链接必须对真实二进制文件操作verify_on_exec true会略微增加进程启动延迟但符合等保“完整性保护”要求。5. 避坑银河麒麟 V10 SP3 2303 安全加固中 5 个高频翻车点及血泪解法加固不是一蹴而就而是踩坑-验证-修正的循环。以下是我在 12 个等保三级项目中反复遇到、且测评员必查的 5 个致命坑附带现象、根因和可立即执行的解法。5.1 现象kysec policy load成功但kysec process list中进程enforce显示no原因KySec 策略加载后新启动的进程才受约束已运行进程如 systemd、sshd仍沿用旧上下文除非重启服务或系统。解法# 对关键服务nginx、mysql、sshd逐一重启触发 KySec 重载上下文 sudo systemctl restart nginx mysql sshd # 然后立即检查 sudo kysec process list | grep -E (nginx|mysql|sshd) | awk {print $1,$5} # 第5列应为 yes5.2 现象ausearch -k exec返回空auditd 无 execve 日志原因audit.rules中archb64规则只捕获 64 位系统调用但部分工具如 python2默认调用 32 位 libc需显式添加archb32规则。解法# 在 /etc/audit/rules.d/audit.rules 中为每条 execve 规则补充 b32 版本 echo -a always,exit -F archb32 -S execve -k exec | sudo tee -a /etc/audit/rules.d/audit.rules sudo augenrules --load sudo systemctl restart auditd5.3 现象kysec-verify报错certificate has expired但证书明明在有效期内原因银河麒麟 SP3 2303 的 kysec 服务默认使用硬件 RTC 时间校验证书若服务器未同步 NTP 或 RTC 时间错误会导致证书“提前过期”。解法# 强制同步系统时间需 root sudo timedatectl set-ntp true sudo systemctl restart systemd-timesyncd # 等待 30 秒再检查 RTC sudo hwclock --show # 若 RTC 与系统时间差 5 秒同步 RTC sudo hwclock --systohc5.4 现象启用log_encrypt_method sm4-cbc后auditd启动失败日志报unknown encryption method原因SP3 2303 的 auditd 版本3.0.7-1.ky10仅支持sm4-cbc不支持sm4-ecb或sm4-gcm且配置文件中log_encrypt_method行首不能有空格否则解析失败。解法# 用 sed 精确替换确保无空格 sudo sed -i s/^log_encrypt_method .*/log_encrypt_method sm4-cbc/ /etc/audit/auditd.conf # 检查行首无空格 grep ^log_encrypt_method /etc/audit/auditd.conf # 应输出log_encrypt_method sm4-cbc无前置空格 sudo systemctl restart auditd5.5 现象mokutil --sb-state显示disabled但 BIOS 中 Secure Boot 明确开启原因银河麒麟安装时若选择“清除所有密钥”会清空 MOKMachine Owner Key导致固件虽启用 Secure Boot但无有效密钥链实际验证失效。解法# 重新导入平台密钥需管理员权限 sudo mokutil --import /usr/share/efi/kylin/PlatformKey.auth # 重启进入 MOK 管理界面按提示按键选择 Enroll MOK → Continue → 输入密码 # 重启后执行 sudo mokutil --sb-state # 应显示 enabled提示MOK 导入必须在重启后 10 秒内操作超时需重试PlatformKey.auth路径固定不可替换为其他密钥文件。6. 等保三级现场核查前的终极验证用 3 个命令 1 个脚本5 分钟完成自查测评员不会等你慢慢翻配置他们要的是“打开终端30 秒内给出证据”。我给自己定的铁律是每次加固完成后必须运行以下验证组合全部通过才敢提交测评申请。6.1 三命令快检身份、审计、可信各一条命脉# 【身份】检查 root 和所有普通用户是否启用密码复杂度 登录锁定 sudo grep -E pam_pwquality|pam_faillock /etc/pam.d/{system-auth,sshd} | head -5 echo --- PASS: 密码策略已加载 # 【审计】检查 auditd 是否运行 最近 1 小时是否有 execve 日志 sudo systemctl is-active auditd sudo ausearch -m exec -ts recent 2/dev/null | head -1 | grep -q exec echo --- PASS: 审计日志实时生成 # 【可信】检查 kytrust 是否运行 TPM2.0 PCR0 是否有度量值 sudo systemctl is-active kytrust sudo tpm2_pcrread sha256:0 2/dev/null | grep -q 0x echo --- PASS: 可信链已建立为什么这三条够用pam_pwquality存在证明身份策略启用ausearch -m exec有输出证明审计规则生效tpm2_pcrread有值证明 TPM2.0 被 kytrust 正确调用。测评员抽样时这三项是最高频问题点。6.2 自查脚本生成《加固证据包》含配置快照 日志样本 策略摘要我把日常验证封装成一个kylin-3rd-check.sh脚本运行后自动生成kylin-3rd-evidence.tar.gz内含config-snapshot/关键配置文件/etc/pam.d/system-auth,/etc/ssh/sshd_config,/etc/audit/rules.d/audit.rules,/etc/audit/auditd.conf,/etc/kysec/kysign.conflog-sample/最近 10 条 execve、identity、net_change 审计日志已脱敏policy-summary.txtkysec policy list、kysec process list | head -10、kytrust pcr read --pcr 0-7输出摘要脚本核心逻辑可直接复制使用#!/bin/bash # kylin-3rd-check.sh - 银河麒麟 V10 SP3 2303 等保三级加固自查脚本 set -e EVIDENCE_DIRkylin-3rd-evidence-$(date %Y%m%d-%H%M%S) mkdir -p $EVIDENCE_DIR/{config-snapshot,log-sample} # 1. 快照配置文件 cp /etc/pam.d/{system-auth,sshd} $EVIDENCE_DIR/config-snapshot/ cp /etc/ssh/sshd_config $EVIDENCE_DIR/config-snapshot/ cp /etc/audit/rules.d/audit.rules $EVIDENCE_DIR/config-snapshot/ cp /etc/audit/auditd.conf $EVIDENCE_DIR/config-snapshot/ cp /etc/kysec/kysign.conf $EVIDENCE_DIR/config-snapshot/ # 2. 抽样审计日志脱敏隐藏用户名/IP保留事件类型和时间 ausearch -m exec -ts recent | head -10 | sed s/.*acct//;s/.*//;s/[^[:alnum:]_.-]/#/g $EVIDENCE_DIR/log-sample/exec.log ausearch -m user_auth -ts recent | head -10 | sed s/.*acct//;s/.*//;s/[^[:alnum:]_.-]/#/g $EVIDENCE_DIR/log-sample/auth.log ausearch -m net_change -ts recent | head -10 | sed s/.*addr[^ ]*//;s/[^[:alnum:]_.-]/#/g $EVIDENCE_DIR/log-sample/net.log # 3. 策略摘要 echo KySec Policy List $EVIDENCE_DIR/policy-summary.txt kysec policy list $EVIDENCE_DIR/policy-summary.txt echo -e \n KySec Process List (Top 10) $EVIDENCE_DIR/policy-summary.txt kysec process list | head -10 $EVIDENCE_DIR/policy-summary.txt echo -e \n KyTrust PCR 0-7 $EVIDENCE_DIR/policy-summary.txt kytrust pcr read --pcr 0-7 2/dev/null $EVIDENCE_DIR/policy-summary.txt # 打包 tar -czf ${EVIDENCE_DIR}.tar.gz $EVIDENCE_DIR echo ✅ 证据包已生成${EVIDENCE_DIR}.tar.gz echo 内容$(ls -1 $EVIDENCE_DIR | wc -l) 个文件/目录 rm -rf $EVIDENCE_DIR运行方式chmod x kylin-3rd-check.sh ./kylin-3rd-check.sh # 输出✅ 证据包已生成kylin-3rd-evidence-20240615-142301.tar.gz我的习惯每次加固调整后必跑此脚本测评前夜把生成的.tar.gz解压给客户看一遍重点讲清楚log-sample/exec.log里每条记录对应哪个业务操作、policy-summary.txt中enforceyes的进程如何保障业务隔离。客户看到“证据可追溯、过程可复现”信任感就建立了。希望帮到你。本文还有配套的精品资源点击获取
返回列表