04、Linux主机加固操作手册

Linux 主机加固操作手册(CentOS 7/RHEL 7,含 RHEL 8+ 与麒麟差异):23 项逐条措施——三权分立账户与 nologin 停用、pam_pwquality 复杂度、pam_tally2/pam_faillock 失败锁定、login.defs 口令有效期、桌面剩余信息清理、rpm 消除无关软件、禁用默认路由与多余网络接口、umask 权限、SELinux 安全内核、firewalld 主机防火墙、禁用 bluetooth/cdrom/USB 存储、关闭无用服务与端口、限制远程管理地址、SSH 会话超时与禁止 root 远程登录、远程用户资源限制、日志留存 ≥6 个月、auditd 安全审计、SSH 服务加固,附版本差异速查与测评项对照表。

定位:Linux 主机加固的逐项操作手册(23 项措施):每项按「核查方法 → 加固操作 → 预期现象」组织,覆盖三权分立账户、口令复杂度与有效期、登录失败锁定、剩余信息清理、无关软件消除、路由与网络接口收敛、umask 与 SELinux、主机防火墙、外设与服务端口禁用、远程管理限制、SSH 加固、日志留存与 auditd 审计,文末附版本差异速查。

适用版本:CentOS 7 / RHEL 7(PAM 路径为 system-auth-acsystem-auth;RHEL 8+/麒麟/openEuler 的登录失败模块差异见 03 节与 11 号文章)。 配套文章:11、Linux操作系统加固手册(控制点完整版)、05、Windows操作系统安全加固

每节按「核查方法 → 加固操作 → 预期现象」组织。编辑配置文件统一使用 vi:i 进入编辑模式,Esc 退出编辑,:wq 保存退出,:q! 不保存强制退出。

使用说明:

  • 本文为加固操作手册:所有命令都会修改配置,可能中断服务、断开当前会话或需要重启。实施前必须完成变更审批、确认业务窗口、备份原配置(设备 savecopy running-configbackup startup-configuration,主机备份 /etc、注册表与关键业务数据),并准备可执行的回滚预案
  • 先在测试环境或单台设备灰度验证,确认无业务影响后再批量推广;每完成一项立即用文中「验证」命令核验生效——配置已下发不等于策略已生效(如 H3C 未 password-control enable、Linux 未对存量账户 chage、Windows 未 gpupdate /force)。
  • 示例中的地址、账户名、口令、路径均为演示值(如 PleaseChange@123192.168.10.20admin123),现场须替换为符合本单位口令策略与网络规划的真实值,严禁直接沿用文中示例口令;对外发布或归档时须对个人信息与内网管理地址脱敏。
  • 命令不存在、视图名或参数与本文不一致时,先用 display version / show version / winver 确认版本与部署形态,再查阅对应版本官方文档换用等效命令;版本差异不得直接作为「无法整改」的结论,须给出替代措施并评估其实际效果。
  • 涉及账户、锁定、超时、防火墙与端口收敛的变更存在锁死自身风险:务必保留一条已验证的恢复通道(Console 口、带外管理口、堡垒机会话或另一管理员账户)后再实施。
  • 加固完成后按「16、安全评估加固记录表3.0」逐项留痕(整改前后回显、操作人、时间、验证结论、回退情况),并纳入复测;测评判定口径以 GB/T 28448-2019 与《高风险判定指引》为准,本文的「加固要点」不构成最终测评结论。

不适用标识说明:

  • 使用 【不适用】 明确标记现场可判定为不适用的控制点,并写明判定依据与承载该能力的上位组件。
  • 依据 GB/T 28448-2019「按测评对象实际承载功能与数据处理范围判定」原则:控制能力由统一认证平台、堡垒机、日志审计系统、终端管理系统、虚拟化平台或云托管平台承载时,应注明测评单元边界后判定不适用或转由上位组件核查,不得机械按缺失判不符合。
  • 产品版本确实不提供该能力(如老旧设备无 SNMPv3、无可信根、社区版无审计模块、已停止官方支持的操作系统)时,须核查替代措施并按替代措施的实际效果定档,不得直接判不适用;已停止支持的版本应同时提出升级或补偿控制建议。

01、用户账户配置(三权分立)

对应控制点:GB/T 22239-2019 8.1.4.2 访问控制 a)~g)

加固要点:账户与权限一一对应、默认与多余账户已删除或停用、无共享账户、系统/安全/审计三类管理职责分离、关键文件与目录权限最小化、启用了强制访问控制(SELinux/AppArmor/Windows 完整性级别与 SACL)并达到用户级与文件级粒度 → 符合;有权限划分但存在越权账户、粒度不足或强制访问控制未启用 → 部分符合;统一使用超级账户运维、关键配置文件任意用户可写 → 不符合。

验证方法:账户与组清单、权限查询输出(ls -l/icacls/getfacl)、默认账户处置记录、强制访问控制状态与策略输出、访问控制策略文档与授权审批记录、安全标记配置截图。

核查方法

cat /etc/passwd        # 查看账户列表
cat /etc/group         # 查看组列表

加固操作

# 建立三权账户:系统管理员 / 安全管理员 / 审计管理员
useradd sysadmin && passwd sysadmin
useradd secadmin && passwd secadmin
useradd audadmin && passwd audadmin

# 无用账户改为 nologin(不可登录)
usermod -s /sbin/nologin mail
usermod -s /sbin/nologin games
usermod -s /sbin/nologin news
usermod -s /sbin/nologin sync
usermod -s /sbin/nologin halt
  • 预期现象:三个管理账户存在且口令有效;无用账户 shell 字段为 /sbin/nologin

02、密码复杂度策略

对应控制点:GB/T 22239-2019 8.1.4.1 身份鉴别 a)(身份鉴别信息具有复杂度要求并定期更换)

加固要点:按「复杂度 + 长度 + 老化 + 历史」四要素同时配置:最小长度不低于 8 位(管理账户与三级系统建议 12~16 位)、至少包含大写字母/小写字母/数字/特殊字符中三类、老化时间不超过 90 天、历史口令防重复不少于 5 次;配置后须对存量账户逐个下发生效(Linux chage -M 90 用户名、设备侧用户组或本地用户粒度策略),仅改全局模板不追溯存量账户是现场最高频的整改回退点。三级系统另需核查最高权限账户是否同受复杂度与老化约束(enforce_for_rootpassword policy administrator)。

验证方法:策略配置回显(设备 display password-control / display current-configuration | include password;Linux grep -E "^PASS_" /etc/login.defsgrep pwquality /etc/pam.d/system-auth*;Windows secedit /exportnet accounts)+ 存量账户抽查(chage -l 用户名、设备 display local-user)+ 一次弱口令修改实测记录,证明策略真的拦截而非仅配置存在。

核查方法

grep pam_pwquality /etc/pam.d/system-auth*   # 或 pam_cracklib(老版本)

加固操作

编辑 /etc/pam.d/system-auth-ac(或 system-auth),在 password requisite 行追加参数:

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=5 enforce_for_root minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

参数:ucredit=-1 至少 1 个大写、lcredit=-1 至少 1 个小写、dcredit=-1 至少 1 个数字、ocredit=-1 至少 1 个特殊字符、minlen=8 最小 8 位、retry=5 最多尝试 5 次。

  • 预期现象:新建或修改口令时复杂度校验生效,弱口令被拒绝。

03、账户登录失败锁定

对应控制点:GB/T 22239-2019 8.1.4.1 身份鉴别 b)(提供登录失败处理功能,限制非法登录次数)

加固要点:配置并启用「连续失败 N 次锁定 M 分钟」,N 建议 35 次、M 建议 1030 分钟,且必须覆盖最高权限账户(root / Administrator / super / privilege 15);同时保留紧急恢复通道(Console 口本地登录或带外管理口),避免锁定策略把运维人员一并锁在门外。Linux 按版本选择 pam_tally2(CentOS/RHEL 7 及更早)或 pam_faillock(RHEL 8+/麒麟 V10/openEuler),两套机制不可混配;Windows 须同时设置「账户锁定阈值」「锁定时间」「重置计数器」三项,仅设阈值不设计时器不生效。

验证方法:配置回显(grep -E "tally2|faillock" /etc/pam.d/*display current-configuration | include wrong-passwordsecpol.msc 账户锁定策略截图)+ 一次真实失败登录实测:连续输错至阈值后确认账户被锁定、锁定计时生效、pam_tally2 -u / faillock --user / display password-control blacklist 能查到计数,并验证解锁命令可用;实测记录须含时间、操作人与被锁账户。

核查方法

grep -E "tally2|faillock" /etc/pam.d/system-auth* /etc/pam.d/sshd

加固操作

CentOS 7(pam_tally2):

auth        required      pam_tally2.so onerr=fail deny=5 unlock_time=600 even_deny_root root_unlock_time=600

RHEL 8+ / 麒麟 V10(pam_faillock,改 /etc/security/faillock.conf):

deny = 5
unlock_time = 600
root_unlock_time = 600
  • 预期现象:连续失败 5 次锁定账户 10 分钟(含 root);pam_tally2 -u 用户faillock --user 用户 可查询计数。

04、口令有效期

对应控制点:GB/T 22239-2019 8.1.4.1 身份鉴别 a)(身份鉴别信息具有复杂度要求并定期更换)

核查方法

grep -E "^PASS_" /etc/login.defs

加固操作

编辑 /etc/login.defs

PASS_MAX_DAYS   90    # 最长有效期 90 天
PASS_MIN_DAYS   1     # 两次修改最小间隔
PASS_MIN_LEN    8     # 最小长度 8
PASS_WARN_AGE   10    # 过期前 10 天提示

05、业务用户桌面(剩余信息清理)

对应控制点:GB/T 22239-2019 8.1.4.10 剩余信息保护 a)b)

加固要点:鉴别信息与敏感数据所在存储空间在释放或重新分配前有可验证的清除机制(账户删除即清理其口令散列、磁盘/分区安全擦除、加密卷销毁密钥、虚拟机删除时清理磁盘文件),且备份介质与报废设备纳入清除范围 → 符合;仅有逻辑删除未做清除验证,或备份介质、退役磁盘未纳入 → 部分符合;无任何清除机制 → 不符合。

验证方法:账户删除与口令散列清理验证记录、磁盘擦除工具与操作记录、加密卷密钥销毁流程、虚拟机/存储删除策略截图、报废介质销毁台账。

核查方法:登录业务用户后 ls -a ~/Desktop ~/ 查看是否存在与业务无关的文件。

加固操作

cd ~/Desktop && ls -a
rm -rf 文件名        # 删除无关文件,与业务部门确认后执行

06、消除无关软件

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)(遵循最小安装原则,关闭不需要的系统服务与默认共享)、e)(应能发现可能存在的已知漏洞并及时修补,补丁与软件来源须可控)

加固要点:按业务需要最小化安装组件,卸载或禁用与业务无关的软件包与服务;软件与补丁来源必须可控——优先使用发行版官方仓库或厂商签名包,离线环境搭建本地镜像仓库并校验签名/GPG,禁止从不可信站点下载二进制直接部署;源码编译安装须留存来源、版本与编译参数记录并纳入资产与漏洞台账。卸载前先用 rpm -e --test / apt-get -s remove 预演依赖影响,避免连带移除业务组件。

验证方法rpm -qa / dpkg -l 导出已安装清单并与业务需要清单比对;yum repolist / apt-cache policy 确认仓库来源;rpm -K 包名 校验签名;yum history / dnf history/var/log/apt/history.log 查看安装与回滚记录;卸载预演输出与变更记录归档。

核查方法

rpm -qa                       # 清点已安装包
rpm -ql 包名                  # 查看包内文件

加固操作

rpm -e 包名                   # 卸载(建议先 --test 预演)

判定与完整操作见 03、Linux安装软件的几种方法「最小安装」节。

07、禁用默认路由

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)

加固要点:遵循最小安装、非必要服务与默认共享已关闭、高危端口未对外开放、管理终端来源受限(防火墙规则/跳板机/堡垒机)、具备数据有效性检验、能发现已知漏洞并及时修补、重要节点部署入侵检测并可出示针对本主机的告警 → 符合;部分措施到位(如有主机防火墙但未限制管理来源、有漏扫无修补闭环)→ 部分符合;管理端口对全网开放、存在已知高危漏洞未修补、无任何入侵检测措施 → 不符合(高风险)。

验证方法:已安装组件/角色清单、服务与监听端口输出、主机防火墙规则与拒绝实测、管理来源限制配置截图、补丁与漏洞修补记录、漏扫报告与整改工单、HIDS/EDR/NDR 部署与本主机告警截图。

核查方法

route -n                      # 查看 0.0.0.0 默认路由

加固操作

route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.10.1
                              # 先补齐到达全部业务地址的明细路由
route del default             # 再删除默认路由

永久生效:将明细路由写入 /etc/rc.local(并 chmod +x /etc/rc.d/rc.local)或 NetworkManager 配置。

08、umask 权限

对应控制点:GB/T 22239-2019 8.1.4.2 访问控制 a)d)f)(关键系统文件与目录权限、setuid/特权命令)

加固要点:关键系统文件与目录(口令影子文件、启动脚本、审计配置、日志目录、Web 根目录)权限符合最小化要求,无全局可写文件,setuid/setgid 与特权命令清单已梳理并受控,普通用户无法读取鉴别信息 → 符合;权限基本合理但存在少量全局可写或未梳理的 setuid 程序 → 部分符合;鉴别信息文件任意用户可读、关键配置文件全局可写 → 不符合。

验证方法:关键文件与目录权限输出、全局可写文件扫描结果、setuid/setgid 清单、特权命令使用审批记录、Windows 侧关键注册表项与 NTFS 权限截图。

核查方法umask(期望 027 或更严)。

加固操作:编辑 /etc/profile 末尾追加:

umask 027
  • 预期现象:新登录用户创建文件的默认权限为 640、目录为 750。

09、安全内核(SELinux)

对应控制点:GB/T 22239-2019 8.1.4.2 访问控制 a)~g)

核查方法

getenforce

加固操作

编辑 /etc/selinux/config

SELINUX=enforcing

重启或 setenforce 1 立即生效。

  • 判定标准:getenforce 返回 Enforcing 为符合。因业务兼容问题临时 Permissive 的,应记录过渡期限并限期恢复——测评中长期 Permissive/Disabled 会作为问题提出。

10、操作系统防火墙

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)

核查方法

systemctl status firewalld
firewall-cmd --list-all       # 或 iptables -nL

加固操作(白名单示例)

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="22" protocol="tcp" accept'
firewall-cmd --permanent --zone=public --remove-service=ssh
firewall-cmd --reload

使用 iptables 的旧系统:

iptables -A INPUT -p tcp -s 192.168.10.0/24 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
service iptables save

11、禁用 bluetooth

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)

核查方法

lsmod | grep bluetooth

加固操作

systemctl stop bluetooth && systemctl disable bluetooth
mv /lib/modules/$(uname -r)/kernel/drivers/bluetooth /BAK_bluetooth   # 可选:移除驱动

12、禁用无用服务

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)

核查方法

systemctl list-unit-files --type=service | grep enabled

加固操作

systemctl stop 服务名
systemctl disable 服务名          # 禁止开机自启

13、禁用无用端口

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)

核查方法

netstat -ltunap                   # 查看监听端口与对应进程

加固操作:先确认业务不需要,再关闭对应服务或进程:

systemctl disable --now 服务名
kill 进程PID                      # 用 netstat 查到的 PID

高危/无用端口清单参考:135、137、138、139、445、593、631、5353 及业务未用的 21/23 等。

14、禁用 USB 大容量存储

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)

核查方法

lsmod | grep usb_storage

加固操作

mv /lib/modules/$(uname -r)/kernel/drivers/usb/storage/usb-storage.ko /BAK_usbstorage
rmmod usb_storage

15、消除多余网络接口

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)

核查方法

ip addr                           # 查看接口
ls /etc/sysconfig/network-scripts/

加固操作

ifconfig 接口名 down              # 临时禁用
rm /etc/sysconfig/network-scripts/ifcfg-多余接口   # 删除配置文件后重启网络

16、禁用 cdrom

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)

核查方法

lsmod | grep -E "sr_mod|cdrom"

加固操作

mv /lib/modules/$(uname -r)/kernel/drivers/scsi/sr_mod.ko /BAK_srmod
mv /lib/modules/$(uname -r)/kernel/drivers/cdrom/cdrom.ko /BAK_cdrom
rmmod sr_mod && rmmod cdrom

17、限制远程管理地址

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)

核查方法cat /etc/hosts.allow /etc/hosts.deny

加固操作

# /etc/hosts.allow
sshd:192.168.10.0/255.255.255.0:allow

# /etc/hosts.deny
sshd:all:deny
  • 说明:先检查 hosts.deny 再检查 hosts.allow,后者的规则可越过前者限制;也可用 sshd_configAllowUsers 用户@地址 实现(见 23 节)。

18、SSH 会话超时自动退出

对应控制点:GB/T 22239-2019 8.1.4.1 身份鉴别 b)(配置并启用结束会话、登录连接超时自动退出)

加固要点:所有管理入口(Console、VTY、SSH、RDP、Web 管理台、数据库会话)统一配置空闲超时,建议 5~10 分钟自动断开,超时值不得设为 0 或 never。Linux 用 TMOUT 写入 /etc/profile(并防止被普通用户覆盖,必要时 readonly TMOUT 或在 sshd_config 配 ClientAliveInterval/ClientAliveCountMax);Windows 用「屏幕保护程序 + 恢复时显示登录屏幕」或组策略「交互式登录空闲时间限制」,服务器另需设置 RDP 会话的空闲与断开时限;设备侧用 exec-timeout/idle-timeout,Console 与 VTY 线路须分别配置。

验证方法:配置回显(grep -rn TMOUT /etc/profile /etc/profile.d/sshd -T | grep -Ei "clientalive"show running-config | section line vtydisplay current-configuration configuration user-interface、组策略或注册表 ScreenSaveTimeOut 截图)+ 实测:登录后静置至阈值确认会话被自动断开且需重新鉴别;核查普通用户能否 unset TMOUT 绕过。

加固操作:编辑 /etc/profile 末尾追加:

TMOUT=600        # 空闲 600 秒自动退出
export TMOUT

退出会话重新登录生效,echo $TMOUT 验证。

19、禁止 root 远程登录

对应控制点:GB/T 22239-2019 8.1.4.2 访问控制 a)~g)

核查方法

grep -E "^#?PermitRootLogin" /etc/ssh/sshd_config

加固操作

# /etc/ssh/sshd_config
PermitRootLogin no
systemctl restart sshd

20、远程用户资源限制

对应控制点:GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)

核查方法ulimit -acat /etc/security/limits.conf | grep -v "^#"

加固操作

# /etc/security/limits.conf
sysadmin  soft  nproc   16384
sysadmin  hard  nproc   16384
sysadmin  soft  nofile  10240
sysadmin  hard  nofile  65536
# /etc/pam.d/login 追加
session    required     pam_limits.so

21、日志管理与留存(留存 ≥6 个月)

对应控制点:GB/T 22239-2019 8.1.4.3 安全审计 a)~d)

加固要点:审计功能已启用且覆盖每个用户与重要安全事件(登录注销、权限变更、审计策略变更、系统异常)、记录含日期时间/用户/事件类型/成败四要素、审计记录受保护并定期备份、留存不少于 6 个月、审计进程受保护且非审计管理员不可中断 → 符合;开关已开但子类别不全、留存不足、仅本地存储无外发 → 部分符合;审计完全未启用且无日志审计系统或堡垒机替代 → 不符合(高风险)。

验证方法:审计策略配置与生效截图(auditd 规则 / auditpol / 高级审核策略)、审计记录抽样(脱敏)、日志存放路径与权限、日志外发到 syslog/日志审计系统/SOC 的配置与收端截图、最早记录时间清单、清理与转存任务配置。

核查方法

grep -E "^rotate|^weekly|^monthly" /etc/logrotate.conf
cat /etc/logrotate.d/rsyslog | grep -A2 "/var/log/messages"
ls -l /var/log/secure /var/log/messages        # 权限应仅 root 可读写

加固操作

  1. 轮转留存 ≥6 个月(weekly + rotate 26 ≈ 26 周):
# /etc/logrotate.conf
weekly
rotate 26
  1. 日志文件权限收紧(/etc/logrotate.d/syslog 各日志段加):
create 0600 root root
  1. 转发集中日志服务器(防本地篡改,/etc/rsyslog.conf):
*.* @@192.168.10.20:514      # @@=TCP,@=UDP
systemctl restart rsyslog
  1. 日志类型说明:/var/log/secure 认证与安全相关、/var/log/cron 计划任务、/var/log/messages 系统日志、/var/log/boot.log 启动日志。确无价值的非安全类旧日志可在确认无需追溯后按变更流程清理。

22、安全审计(auditd)

对应控制点:GB/T 22239-2019 8.1.4.3 安全审计 a)~d)

核查方法

systemctl status auditd
auditctl -s                     # 查看审计状态与规则数
ausearch -k identity --recent   # 按关键字查询审计记录

加固操作

systemctl enable --now auditd

常用规则(/etc/audit/rules.d/audit.rules 追加后 augenrules --load):

-w /etc/passwd   -p wa  -k identity
-w /etc/shadow   -p wa  -k identity
-w /etc/sudoers  -p wa  -k identity
-w /etc/my.cnf   -p wa  -k mysqlcfg
-a always,exit -F arch=b64 -S execve -k exec
-a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S chmod -S fchmod -S fchmodat -k perm_mod
  • 审计记录包含时间、用户、事件类型与结果,cat /var/log/audit/audit.log 可见(时间戳为 epoch,aureport --start today 可读化);
  • 记录保护:auditd 自身日志仅 root 可访问(600);配合 21 节转发至日志服务器防篡改;
  • 进程保护:auditd 受 systemd 保护不可随意 kill;限制除审计员外的用户权限(三权账户,见 01 节)。

23、SSH 服务加固

对应控制点:GB/T 22239-2019 8.1.4.1 身份鉴别 c)(远程管理时防止鉴别信息在传输中被窃听)、8.1.2.2 通信传输 a)b)

加固要点:远程管理一律走加密通道:设备侧仅放行 SSHv2/HTTPS 并关闭 Telnet/HTTP,RSA 密钥长度不低于 2048 位、禁用 CBC 模式与 3DES 等弱算法;主机侧禁用 Telnet/FTP,SSH 关闭 root 直接登录、优先密钥认证并按需启用「口令 + 密钥」双因素,RDP 启用 NLA 与 TLS 并把来源限制到管理网段或堡垒机。管理通道加密后仍须用 ACL/防火墙收敛来源——加密只解决窃听,不解决越权访问。

验证方法:设备侧 show ip ssh / display ssh server status 确认版本与算法,show running-config | section line vty 确认 transport input ssh;主机侧 sshd -T | grep -Ei "permitrootlogin|ciphers|macs|kexs"ss -tlnp 确认无 23/21 监听,Windows Get-ItemProperty 核查 RDP 的 NLA(UserAuthentication)与端口;从非管理网段发起连接实测被拒;必要时抓包确认无明文口令。

核查方法

sshd -T | grep -Ei "maxauthtries|clientalive|allowusers|permitrootlogin"

加固操作/etc/ssh/sshd_config):

PermitRootLogin no            # 配合 19 节
MaxAuthTries 4                # 单连接最大认证尝试
LoginGraceTime 60             # 认证窗口 60 秒
ClientAliveInterval 300       # 客户端空闲探测间隔
ClientAliveCountMax 2         # 2 次无响应断开(≈10 分钟)
AllowUsers sysadmin@192.168.10.*    # 账户+来源双重限制
sshd -t && systemctl restart sshd     # 先语法检查再重启,避免远程断连

版本差异速查

事项CentOS 5/6CentOS 7RHEL 8+/麒麟 V10/openEulerDebian/Ubuntu
登录失败锁定pam_tally2pam_tally2(本文 03 节)pam_faillock(/etc/security/faillock.confpam_tally2;pam 1.4+ 可用 faillock
PAM 文件/etc/pam.d/system-authsystem-auth(-ac 软链)system-auth(Debian 系为 common-authcommon-auth
服务管理service / chkconfigsystemctlsystemctlsystemctl
包管理yumyumdnfapt
防火墙iptablesfirewalld / iptablesfirewalld(nftables 后端)ufw / nftables
时间同步ntpntp / chronychronysystemd-timesyncd / chrony

麒麟 V10 与 CentOS 7 的逐项对照另见 13、麒麟操作系统加固 文末差异表。

测评项对照表

控制点(GB/T 22239-2019)对应章节
身份鉴别:复杂度、有效期、唯一性01、02、04
身份鉴别:登录失败处理与超时退出03、18、23
身份鉴别:远程管理防窃听23
访问控制:账户与权限分配、三权分立01、20
访问控制:删除/停用多余账户01
入侵防范:最小安装、关闭服务与端口06、12、13
入侵防范:管理终端地址限制07、17、23
安全审计:启用、覆盖、记录、保护与留存21、22
剩余信息保护05、08
入侵防范(网络层收敛)07、09、10、11、14、15、16

参考依据

  • GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》(8.1.4 安全计算环境各控制点(主机加固措施逐项落地)):http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=BAFB47E8874764186BDB7865E8344DAF
  • GB/T 28448-2019《信息安全技术 网络安全等级保护测评要求》(测评对象边界认定、单元测评实施与结果判定:符合/部分符合/不符合/不适用):http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7E736CDF4502B6FF1258DD250AA3EC8C
  • GB/T 22240-2020《信息安全技术 网络安全等级保护定级指南》、GB/T 25070-2019《安全设计技术要求》、GB/T 28449-2018《测评过程指南》,可在全国标准信息公共服务平台检索:http://openstd.samr.gov.cn/bzgk/gb/
  • Red Hat Enterprise Linux 官方文档入口(Security Hardening / PAM / SELinux):https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/
  • Linux man-pages(man7.org,rpm/yum/pam/sshd/auditctl 手册页):https://man7.org/linux/man-pages/
  • 《网络安全等级保护测评高风险判定指引》(中关村信息安全测评联盟团体标准)——高风险情形判定口径,站内对照表:22、高风险判定指引与加固对照表
  • 命令核验说明:Linux 命令以 man7.org 手册页与 Red Hat Enterprise Linux 官方文档核验(核验日期 2026-09-02)。六处须留意:① RHEL 系 PAM 主文件为 /etc/pam.d/system-auth-acsystem-auth 是其软链),authconfig/authselect 重新生成时会覆盖手工改动,RHEL 8+ 须用 authselect 管理;② pam_tally2 自 RHEL 8 起被移除,改用 pam_faillock,两套机制不可混配;③ umask/etc/profile/etc/bashrc/etc/login.defsUMASK)与 pam_umask 多处生效,须以登录后实测 umask 的最终值为准,不能只看单个文件;④ SELinux 切 enforcing 前必须先处理业务端口与路径标签(semanage port/semanage fcontext,必要时 audit2allow),建议先 permissive 观察 ausearch -m avc 再切换,否则会中断业务;⑤ 禁用 usb-storage 不影响 USB 键鼠(走 usbhid),但会影响加密狗、外置备份介质与部分采集卡,实施前须与业务确认;⑥ /etc/hosts.allow/etc/hosts.deny(TCP Wrappers)在 RHEL 8+ 已失效——openssh 移除了 libwrap 支持,须改用 firewalld rich rule 或 sshd_config 的 Match Address,否则措施看似配置了实则无效。

关联文章