ARTICLE DETAIL

资讯详情

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

等保测评实战:Red Hat Enterprise Linux安全配置核查命令详解

等保测评实战:Red Hat Enterprise Linux安全配置核查命令详解 接到一个等保测评项目进入客户机房登录现场的Red Hat Enterprise Linux服务器第一件事不是打开浏览器查扫描报告而是先把手头常用的核查命令在脑海里过一遍。做过等保的人都有体会Red Hat Enterprise Linux在企业服务器里的占比高得离谱几乎每个测评项目都会遇到而等保测评命令这套东西熟练程度直接决定了人天成本和测评报告的准确性。哪怕客户现场一条记录、一次变更、一个服务状态都能通过命令行快速确认不需要跟客户翻几年前的变更记录扯皮。这篇文章不绕弯子直接梳理我在RHEL环境下做等保测评时最常用、最能出有效结论的命令体系以及每个命令背后的安全意义和踩坑经验。1. 为什么等保测评命令在RHEL上如此关键很多刚入行的测评人员习惯用扫描器或图形界面工具去采集系统信息到了Red Hat Enterprise Linux上却会发现扫描器给出的结果经常是“半成品”版本信息可能不准确、补丁信息缺失、配置采集不全尤其是一台运行了五六年的老服务器上面堆了各种历史配置图形化工具根本看不出配置到底有没有生效。这时候命令行就是最可靠的抓手原因其实很朴素。第一等保测评的标准项绝大多数落实在配置文件和服务状态上。比如身份鉴别里的口令复杂度、登录失败处理、访问控制里的用户权限、安全审计里的日志策略这些都是操作系统层面的具体设置用命令直接读配置、查状态结果非常明确不会被工具误判。第二Red Hat Enterprise Linux的配置文件位置基本固定通过命令可以快速定位。比如/etc/login.defs管密码策略/etc/pam.d/system-auth管认证模块/etc/ssh/sshd_config管远程登录/etc/audit/auditd.conf管审计服务。测什么就看什么干净利索。第三测评记录需要一个可追踪的证据链。命令行下执行的操作、回显的输出、时间戳、执行人都能形成完整的审计记录这是等保测评合规性的要求。等保测评本来就是“以事实为依据以标准为准绳”命令输出就是最扎实的事实依据。这里提一句适用范围我下面写的命令大多数适用于RHEL 6、7、8系不同小版本之间个别文件路径和命令名称会有差异比如RHEL 8里网络配置用nmcli为主RHEL 6里还在用iptables为主但核查思路是相通的。测评现场我会先确认系统版本再决定具体命令的组合方式。确认版本本身也就一条命令的事。2. 测评前的环境确认与权限准备2.1 先摸清系统版本和主机状态到现场后第一件事不是急着测安全配置而是先摸清楚这台机器到底是什么版本、跑了多久、补丁大概什么水平。等保测评里面有个通用要求项涉及“产品版本”和“补丁升级”很多测评机构也会重点核查这个因为版本过老意味着大量已知漏洞长期暴露。cat /etc/redhat-release uname -a hostnamectl uptime这几个命令跑完系统大版本、内核版本、主机名、开机时长都齐了。RHEL 7.x和RHEL 8.x的测评项侧重点会有差别比如RHEL 8里默认用chrony做时间同步、SELinux状态更严格、crypto-policy策略文件影响面更大如果一开始不确认版本就去套老经验很容易测错或漏测。补丁信息也不能只看yum update的输出那只是检查当前有没有可更新包。测评时我会采取更稳妥的组合yum check-update --security检查是否有安全更新待装同时看历史补丁记录然后结合CVE漏洞扫描结果判定这台机器是否需要整改。如果客户现场不允许执行更新类命令那至少把check-update的结果打出来作为“可用更新未安装”的证据。2.2 获取合适的执行权限和身份等保测评命令里有一部分只需要普通用户权限就能看比如查看系统版本、查看服务状态但更多关键核查需要root权限比如查看/etc/shadow里账号锁定状态、加载审计规则、检查/etc/sudoers配置。现场执行时必须注意三个问题。第一必须提前跟客户确认执行范围。等保测评是安全性测试不到万不得已不应该对生产系统做修改性操作。我的原则是命令只读优先能跑cat就不跑echo能查状态就不停服务。遇到必须验证权限配置的场景比如测试sudo提权到底能不能用需要在客户书面授权范围内进行操作。第二优先使用sudo而非直接su -切root。通过sudo执行的命令都会被secure日志记录这本身就是安全审计的一部分也方便最后给客户提交一份完整的操作记录。如果客户不给sudo权限那就只能以普通用户身份读取所有可读文件然后把缺失项列成清单让客户提供root权限下的补测结果。第三执行命令时养成一个好习惯每一条关键命令都附带执行时间。我在测评现场一般会临时定义一个PS4变量让脚本执行时自动打印时间戳或者命令前用date输出一下。别嫌麻烦出报告时你就知道这些时间戳有多重要——不同时间点的审计日志对比、命令覆盖范围的证明全都要靠它们。2.3 明确测评对象边界一台RHEL主机上可能跑着Web服务、数据库、业务应用、容器等保测评的范围不一定是整台机器。我的习惯是先通过ps -ef和ss -tlnp梳理出这台机器上对外监听的服务和进程然后跟客户确认哪些属于测评对象哪些属于边界外。别小看这一步如果边界不划清楚后面测出来的结果客户不认账说“这个端口不归我们管”你所有整改项全废了。ps -ef --sort-%cpu | head -30 ss -tlnp systemctl list-units --typeservice --staterunning这三个命令组合起来进程、TCP监听端口、常驻服务基本一目了然。拿到清单后再和客户确认边界比一上来就瞎测要专业得多也让客户觉得你做事有章法。3. 安全配置核查实战命令集合这一节是文章的核心。我按照等保测评通用要求中的层次把RHEL的核查命令拆成几组每一组分别对应“身份鉴别”“访问控制”“安全审计”“入侵防范”“恶意代码防范”等控制点。每组命令后面附加判定逻辑和我在现场踩过的坑。3.1 身份鉴别与口令策略核查身份鉴别是等保测评里出问题最多的地方没有之一。口令强度不够、长期不更换、允许root远程登录、无失败锁定机制随便一条都是高风险项。核查这部分我建议先把/etc/login.defs和/etc/pam.d/system-auth这两个核心文件读一遍。grep -E PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_MIN_LEN|PASS_WARN_AGE /etc/login.defs grep -E pam_pwquality|pam_faillock|password requisite /etc/pam.d/system-auth /etc/pam.d/password-auth cat /etc/security/pwquality.conf | grep -v ^# | grep -v ^$先说/etc/login.defs里面的PASS_MAX_DAYS表示口令最长有效期等保2.0通用要求通常建议不大于90天具体看单位定级和测评指导书PASS_MIN_LEN表示最小长度但在RHEL 7及以后PASS_MIN_LEN的实际生效会被pam_pwquality模块覆盖所以光改login.defs是不够的必须看pam_pwquality.so的配置。pam_pwquality.so里的minlen、dcredit、ucredit、lcredit、ocredit参数才是真正决定口令复杂度是否生效的关键。比如minlen8 dcredit-1 ucredit-1 lcredit-1 ocredit-1的意思是密码最短8位且必须包含数字、大写字母、小写字母、特殊字符。这里的负号代表“必须有至少一个”如果写成正数dcredit1含义就变成了“最多允许1个数字”很多人在这里搞反整改了也没用。登录失败锁定核查是另一个高频问题。RHEL 7里通过pam_faillock.so模块实现检查时用grep -E auth.*pam_faillock /etc/pam.d/system-auth grep -E account.*pam_faillock /etc/pam.d/password-auth如果没有配置pam_faillock的preauth和authfail两段那说明系统没有登录失败锁定功能按照等保要求这属于不满足项。这里有个细节很多运维以为配置了deny3就能锁定但pam_faillock是三段式配置preauth阶段用于在认证前检查用户是否已被锁定authfail阶段用于记录认证失败的计数authsucc阶段用于认证成功后清零计数漏掉任何一段逻辑都不完整现场判定时要核对三段是否齐全。再补一条检查空口令账号。等保里明确不允许存在空口令账户用一条命令扫出来最直接。awk -F: ($2 ) {print $1} /etc/shadow这条命令如果输出为空说明没有空口令账号如果输出某个用户名那不用废话直接开不符合项。3.2 访问控制与用户权限核查访问控制在RHEL测评里主要看三块账号清理、sudo权限、文件权限。账号清理检查那些长期不用的、离职员工的、来历不明的账号命令很简单awk -F: $31000 {print $1, $3, $6} /etc/passwd last -n 20 lastlog | head -20awk命令能快速列出UID≥1000的普通用户last和lastlog能看出哪些账号有过登录记录、哪些账号从未登录。测评现场经常出现一个账号创建了两三年但从未登录过的情况这种属于典型的“僵尸账号”整改建议就是禁用或删除。注意系统账号UID1000原则上不能用来交互式登录如果发现某个系统服务账号被配置了登录Shell也要列为风险点。sudo权限核查是重头戏。很多人喜欢直接用cat /etc/sudoers但更规范的做法是用visudo -c检查语法同时读/etc/sudoers.d/目录下的所有配置文件。配置sudo权限过宽是等保测评的高频不符合项比如直接给了ALL(ALL) ALL这种权限或者某些业务账号被赋予了NOPASSWD权限那就意味着该账号可以免密执行任意命令。visudo -c grep -E ^[a-zA-Z0-9_%].*ALL /etc/sudoers /etc/sudoers.d/* 2/dev/null grep -E ^[a-zA-Z0-9_%].*NOPASSWD /etc/sudoers /etc/sudoers.d/* 2/dev/null说一下判定逻辑如果普通用户被赋予ALL(ALL) ALL在等保2.0里通常判定为“越权访问”不符合最小权限原则。如果必须保留至少应该限定命令范围比如只允许该用户管理某个特定服务。NOPASSWD在企业环境里要看场景运行自动化脚本的专用账号可以接受但交互式登录用户账号配NOPASSWD属于典型的不符合项。文件权限检查这一块我通常抽查/etc/shadow、/etc/passwd、/etc/ssh/sshd_config这些敏感文件的权限位。正常情况下shadow应该是000或者600只有root可读写passwd是644。用ls -l逐个看效率太低直接组合ls -l /etc/shadow /etc/passwd /etc/group /etc/sudoers /etc/ssh/sshd_config find /etc -name *.conf -perm /022 -type f 2/dev/null | head -30find里-perm /022表示查所有“组或其他用户可写”的配置文件如果列出来一堆说明系统配置文件权限普遍过宽这不仅是等保不符合项也是安全风险。现场如果客户问“怎么改”一般chmod到644或600就行但要注意部分服务对配置文件权限有额外要求比如sshd要求~/.ssh目录权限不能超过700authorized_keys不能超过600否则SSH直接拒绝使用该密钥。3.3 安全审计与日志核查安全审计是等保测评里涉及命令最多的部分。RHEL的审计体系以auditd为核心配合rsyslog记录系统日志。核查顺序通常是先看服务有没有启动再看规则有没有加载最后看日志有没有正常轮转。systemctl status auditd auditctl -s auditctl -l cat /etc/audit/auditd.conf | grep -E max_log_file|num_logs|space_left_action|admin_space_left_actionauditctl -s输出的是内核审计状态enabled为1表示开启。如果enabled是0那说明系统根本没有启用审计这是一个非常严重的不符合项。auditctl -l列出当前加载的规则测评时最好设置几条关键规则比如对/etc/passwd、/etc/shadow、/etc/sudoers、/etc/ssh/sshd_config的写操作都要记录对/usr/bin/passwd、/usr/bin/su等高危命令的执行也要记录。如果规则太少甚至为空就说明审计覆盖范围不足。配置审计规则需要提醒一句auditctl -l看到的只是当前内核里加载的规则真正决定重启后是否生效的是/etc/audit/rules.d/下的.rules文件。测评时要两个地方都看避免出现“规则只在内存里生效一重启就丢”的尴尬情况。检查规则文件用cat /etc/audit/rules.d/audit.rules augenrules --loadaugenrules --load这个命令会把rules.d目录下的规则文件合并后重新加载它是RHEL平台上管理audit规则的规范化方式。很多老运维习惯直接改/etc/audit/audit.rules然后重启auditd服务这在RHEL 7上已经不合适了重启auditd有时会忽略规则文件的变化反而用了augenrules生成的合并规则新手很容易踩这个坑。系统日志方面重点是确认rsyslog在运行且日志没有异常丢失。RHEL 7上默认的日志文件包括/var/log/messages、/var/log/secure、/var/log/cron、/var/log/maillog、/var/log/boot.log。测评时关键看secure日志因为所有登录行为、sudo授权、用户切换都会记录在这里。systemctl status rsyslog grep -i authentication failure /var/log/secure* | tail -20 grep -i failed password /var/log/secure* | tail -20 grep -i accepted /var/log/secure* | tail -20这几组命令可以快速判断这台机器有没有被暴力破解尝试的痕迹。如果Authentication failure出现频率非常高同时本机又没有启用登录失败锁定那这个风险项基本坐实了整改措施必须包含开启pam_faillock否则即使打补丁也挡不住撞库。日志轮转也要确认看/etc/logrotate.conf和/etc/logrotate.d/下有没有为audit、secure等日志配置轮转策略日志无限增长导致磁盘满的案例在测评现场经常见到有时候会发现审计日志文件都好几GB了轮转策略却从未配置过。3.4 入侵防范与系统完整性核查等保对入侵防范的要求包括最小化服务、开启SELinux、及时更新补丁、监测系统完整性等。RHEL上的核心命令是getenforce和sestatus。SELinux在RHEL里默认是启动的但很多运维在装应用时遇到权限问题就随手setenforce 0关闭了重启后虽然没有自动关闭但系统处于宽容模式Permissive这个在测评里是不满足的。getenforce sestatus grep ^SELINUX /etc/selinux/configgetenforce输出Enforcing才是强制模式Permissive就是只记录不阻止等于形同虚设。检查时一定要同时看/etc/selinux/config里的持久化配置因为setenforce 0只对当前内核生效如果配置文件里写的是SELINUXdisabled重启后SELinux彻底不加载问题更严重。网络服务最小化是另一个关键项。测评时要把目前系统上监听的端口和对应的服务进程全列出来确认每一个端口背后是不是合法的业务服务。ss -tlnp systemctl list-unit-files --typeservice --stateenabled systemctl list-units --typeservice --staterunning发现异常端口或者不必要的服务在运行比如telnet服务、rlogin服务、vsftpd如果业务不需要却开着都属于不满足项。RHEL 7上还有个典型问题是防火墙配置不生效或直接没启用systemctl status firewalld firewall-cmd --list-all iptables -L -n -v注意RHEL 7默认用的是firewalld底层虽然还是iptables但直接操作iptables命令改规则很容易和firewalld管理混淆。测评时我会先确认firewalld是否启用如果启用且配置合理一般不纠结底层iptables。但有一种特殊情况客户手动停了firewalld又直接用了iptables命令启动规则这种配置一重启就失效测评报告中要明确指出不可持续。系统完整性这块RHEL自带的工具是rpm -Va它能校验系统安装过的所有rpm包的文件属性和校验和。执行一次全盘校验耗时很长十几分钟甚至更久但测评时可以在生产容忍范围内抽检关键包比如rpm -Va | head -50 rpm -V openssh-server binutils glibc如果出现太多“S.5....T”这类输出说明文件被修改过需要排查是否为入侵痕迹还是管理员故意改动。如果安装了AIDE这种完整性检测工具那就直接看它的日志和策略文件ls -l /var/lib/aide/aide.db.gz aide --checkAIDE的坑在于首次初始化之后必须有个基线库之后每次--check都是拿当前文件和基线对比。如果管理员改了某个配置文件但没更新基线--check就会疯狂报警测评时要先跟客户确认哪些报警是正常变更哪些是真的可疑修改别一看到告警就当成入侵证据。3.5 恶意代码防范与网络加固核查等保要求服务器需要安装恶意代码防范软件但RHEL服务器上装商业杀软的并不多很多单位觉得服务器不用杀毒。测评现场如果确认未安装任何反病毒软件按照等保通用要求可以直接判定不符合但整改优先级需要结合系统用途来定。核查命令rpm -qa | grep -i clamav systemctl status clamd 2/dev/null rpm -qa | grep -iE kaspersky|symantec|McAfee|sophos如果装了ClamAV确认病毒库更新任务是否配置了定时执行。crontab -l里应该有定期更新病毒库的条目如果只有装好的软件却从不更新病毒库等于形同虚设。网络加固这边重点看内核参数和SSH配置。等保里对防伪冒和资源限制有具体要求/etc/sysctl.conf里的参数最常用的是net.ipv4.tcp_syncookies启用SYN Cookie防SYN Flood、net.ipv4.conf.all.accept_redirects和net.ipv4.conf.default.accept_redirects禁ICMP重定向防止路由欺骗、net.ipv4.ip_forward非路由场景必须为0。sysctl net.ipv4.tcp_syncookies sysctl net.ipv4.ip_forward sysctl net.ipv4.conf.all.accept_redirects sysctl net.ipv4.conf.all.rp_filter cat /etc/sysctl.conf | grep -v ^# | grep -v ^$这里有个常见误区sysctl命令查询的是当前生效的内核参数但等保测评要看的是持久化配置。如果sysctl.conf没有对应项目但当前tcp_syncookies是1说明可能有人手动echo 1 /proc/sys/net/ipv4/tcp_syncookies重启就丢了。所以每次查完当前值我都要grep一下配置文件两边对齐才算真的满足。SSH是RHEL上最主要的远程管理入口它的加固状态基本决定了服务器暴露面。核查/etc/ssh/sshd_config时重点关注这几个键grep -E ^PermitRootLogin|^PermitEmptyPasswords|^MaxAuthTries|^Protocol|^PasswordAuthentication|^AllowUsers /etc/ssh/sshd_configPermitRootLogin no是禁止root直接远程登录但如果服务器全部管理员都只用一个普通账号再sudo那这条必须满足。MaxAuthTries等保建议不要超过5我现场看到默认值“6”的情况非常多虽然默认值不算特别离谱但很多测评指导书里要求不超过5那就得整改。有一个细节容易忽略sshd_config里的配置项在文件里可能被注释掉注释状态下用的是编译默认值。比如PasswordAuthentication默认是yes如果文件里#PasswordAuthentication yes那实际效果就是允许密码登录。测评时只看带^的行还不够还要评估注释行对默认值的影响必要时用sshd -T查看最终生效配置。sshd -T | grep -E permitrootlogin|permitemptypasswords|maxauthtries|passwordauthenticationsshd -T直接输出加载了所有默认值之后的实际生效配置比看文本文件更加可靠。这条命令是我在RHEL测评里的压轴技巧也适合所有做基线核查的工程师。时间同步虽然在等保里属于管理类控制项的一部分但技术核查时也会看系统时间和时间同步服务。RHEL 7之前是ntpdRHEL 7起chrony成为默认时间同步服务timedatectl chronyc sources systemctl status chronyd时间同步出问题的系统会导致日志时间轴错乱审计追踪无从谈起所以这项属于“看似低危、实则牵一发动全身”的项目。如果发现chronyd没在运行而系统时间偏移很大报告里必须列为整改项。4. 测评现场常见问题与排查技巧实录4.1 只看到注释行没看到真实配置我在上面提到过光靠grep读sshd_config容易误判。真实案例某台RHEL 7机器/etc/ssh/sshd_config里写的是#PasswordAuthentication yes看起来只是注释但实际生效就是允许密码登录。如果测评员只报告“未见显式配置”等于漏了一个本来可以检查的项。正确做法就是sshd -T把服务器自己的解释器输出当作最终结论。这条经验适用于所有“配置文件默认值”混合生效的场景。4.2 auditd规则“重启即丢”有一次测评客户的生产数据库服务器auditctl -l能看到十几条规则看起来挺完善。但我顺手打开/etc/audit/rules.d/audit.rules里面只有寥寥两条。追问下来发现规则是多年前某位工程师手动auditctl -a临时加进内核的一直没写进规则文件。一旦服务器重启那些临时规则就全没了。测评判定不能只看运行时状态一定要看持久化规则文件两条对不上就得单独列风险。4.3 密码复杂度参数被覆盖现场经常遇到这种情况/etc/login.defs里PASS_MIN_LEN配了12/etc/security/pwquality.conf里也写得挺完整但测试改密码时还是能设置简单密码。检查发现是/etc/pam.d/system-auth里的pam_pwquality.so根本没启用或者被其他pam模块覆盖了。正确的排查路径是把整个认证链读一遍别只看单点配置。RHEL 7的password-auth和system-auth两个文件是分开的一个管密码登录一个管本地登录两边都要检查只改一边等于白改。4.4 版本差异导致的命令失效RHEL 8上继续用iptables -L会提示用nft取代RHEL 6上运行systemctl会直接报命令不存在。如果是测评一艘混合版本的大船我的建议是每个版本建立一张命令对照表RHEL 6用service/chkconfigRHEL 7用systemctlRHEL 8则要习惯nmcli、nftables、dnf这些新工具。等保测评对工具链的熟练度要求高其实就是对版本差异的熟悉度要求高。另一个容易踩的差异点是RHEL 8默认SSH版本是OpenSSH 8.0不再支持ssh-dss算法如果核查时发现客户配置里还留着这类弱算法那是建议尽快移除的。4.5 命令权限不足导致误判普通用户能看/etc/passwd看不到/etc/shadow所以上面检查空口令账号的脚本必须root权限才能执行。测评时如果客户只给了普通账号awk、ls -l /etc/shadow这些命令都会报权限错误这时候不要强行判定为“不可读”或“符合”而是要在测试记录里明确标注“该检查项需root权限执行结果待补测”。这也是测评报告常见的问题之一因为权限不够把该测的项写成“不适用”结果被客户质疑。4.6 防火墙和业务冲突的排查RHEL上启用了firewalld但业务端口没放行业务会直接异常。测评时如果发现防火墙策略过严要区分是“故意收紧”还是“配置错误导致生产故障”。有一个实用案例客户说数据库连不上让我看看是不是等保测评把防火墙改坏了。实际上现场没有任何人改过防火墙firewall-cmd --list-all显示根本没有放行3306端口说明这是历史遗留问题。此类排查的关键在于查看修改时间和配置变更记录判断是近期改动还是存量问题。stat命令能看文件的最后修改时间配合排查能还原时间线。排查技巧这块还有一个小建议测评命令不要一条条人肉执行最好写成一个带注释的脚本集合每条命令后面留一行输出说明。这样既保证每个检查项覆盖到位又能把命令输出保留为测评证据。脚本放在本机跑完后把输出重定向到文件防止终端缓冲区把部分结果冲掉。5. 文件系统与存储核查补充在等保测评里文件系统和存储这块经常被新手忽略但实际上RHEL环境下因为存储配置不合理导致的安全问题并不少。比如/tmp分区独立性问题、磁盘满导致的审计中断、LVM配置混乱等。这里展开说几个必须看的点。5.1 关键目录独立分区检查等保建议/tmp、/var、/home等易受攻击的目录使用独立分区避免恶意文件塞满整个磁盘拖垮系统。检查命令是df -hT看根目录与/tmp、/var、/home是否在同一分区。如果同一个/dev/mapper/xx-root下面挂了一堆目录说明没有分区隔离风险主要在于日志或临时文件的无限制增长会直接影响根文件系统空间。df -hT mount | grep -E /tmp|/var|/home如果/tmp没有挂独立分区而且systemd下的tmp.mount服务又没有启用那/tmp是普通目录现有文件直接落在根分区。一个针对性的整改方案是可以启用systemd-tmpfiles清理临时文件或在fstab里单独划分tmpfs挂载但这些属于整改措施测评现场只记录现状。5.2 磁盘空间与审计可用性审计日志写入失败时auditd的应对策略是space_left_action和admin_space_left_action如果磁盘空间被打满审计模块可能直接挂起。所以核查磁盘剩余空间和auditd.conf里的告警阈值是配套动作。我是这样检查的df -h df -i grep -E ^space_left_action|^admin_space_left_action|^max_log_file /etc/audit/auditd.confdf -i看的是inode使用率很多人只关注磁盘空间忽略了inode耗尽的隐患。日志文件非常多但每个都很小就会导致inode先用完现象就是磁盘还剩几个GB但无法创建新文件。这类问题在等保测评里定性为“日志存储空间不足导致审计数据无法持续保存”属于中风险项。5.3 挂载选项的安全性RHEL默认挂载选项不一定都满足等保要求比如/tmp如果挂载时启用了exec那么恶意代码就有机会从/tmp直接执行。核查挂载选项用mount -l | grep -E /tmp|/var|/home findmnt -o TARGET,OPTIONS等保测评里面比较常见的建议是/tmp挂载时带上nosuid,nodev,noexec等选项但这里有个实际矛盾不少业务安装包需要临时文件可执行一旦直接加noexec业务就挂了。遇到这种情况测评员要在报告里写明现状和业务冲突建议客户合理评估后做针对性加固不能机械地要求整改。另外/home推荐nosuid,nodev/var一般不用加noexec因为很多程序会往/var写临时执行文件。现场核查要结合业务情况给建议这才有说服力。6. 测评结果整理与报告输出要点命令跑完了一大堆输出摆在面前怎么把结果准确地落到报告里是另一层功力。等保测评命令执行完毕后的结果整理其实有标准动作。第一证据保留。每条重要命令输出必须保存到文件文件名建议带上执行时间和检查项目比如audit_rules_20250326.log、ssh_config_20250326.log。测评结束给客户提交的证据包里命令原文、输出结果、执行时间、执行人信息缺一不可。最怕的是报告里写了“已核查”但拿不出核查当时的原始输出被复审时一问三不知。第二结果分类。按我个人的习惯每一项检查结果分三类“符合”“不符合”“部分符合/建议整改”。不要模糊。比如口令策略里PASS_MAX_DAYS配了90天但pam_pwquality的复杂度校验没有开启那这整个控制点判定为“部分符合”在整改建议里写清楚具体哪一项达标、哪一项缺失。第三整改优先级。数据库服务器密码策略不对和OA服务器密码策略不对风险等级不一样。报告输出时要把高危项放前面中危次之低危最后。等级保护的对象还有定级区别二级系统和三级系统的测评要求不一样三级系统要求所有控制项全覆盖二级系统可以适当简化命令核查范围也跟着变。第四与客户确认。命令说到底只是工具重要是把结论和客户对齐。输出报告之前我会拉着客户的运维负责人把一个一个不符合项过一遍哪些是他们已经知道但没时间改的哪些是完全不知道的哪些是误判需要重新核实的。这一步做好了后续整改推进会顺畅很多。曾经遇到过客户说“我们密码三个月一改的你们怎么测出来密码策略不对”最后查下来是/etc/pam.d/password-auth没同步配置本地改密码生效SSH登录改密码不生效客户自己没注意到这个差异。命令输出就是最好的沟通凭证。这里再顺带说一个报告词汇规范的问题。等保测评报告里的单位名称、资产编号、测评范围、测评结论都有格式要求命令输出作为依据材料放在附录即可。不要为了凑篇幅把大段命令行输出直接贴在正文报告的可读性会被破坏专家评审时也会觉得不专业。直接把命令输出的关键行引到正文表格里完整输出放附录这种格式是最稳妥的。7. 写在最后的几点建议做等保测评接触Red Hat Enterprise Linux多了慢慢会发现命令本身只是载体真正考验功力的是三件事懂标准、懂系统、懂业务。懂标准是知道等保2.0里每一项要求对应到系统里到底测什么懂系统是知道RHEL里每个配置文件、每个模块、每个服务状态的机制原理懂业务是知道哪些安全措施在特定业务场景下会与稳定性冲突需要做取舍而不是一刀切。我给新入行朋友的建议是把常用命令整理成自己的速查表不用背但要用熟。每个命令至少要知道两件事它输出的每一项代表什么以及这个结果怎么跟等保条款对应。比如getenforce输出Enforcing你知道符合但输出Permissive的时候对应的整改建议应该怎么给文件要改哪里改完要不要重启这才是真正拉开差距的地方。另外强烈建议在测试环境搭一套RHEL虚拟机练手。不用多高的配置两台虚拟机就够一台RHEL 7一台RHEL 8或9分别把等保相关的配置项改好然后跑一遍上面提到的命令看看输出长什么样再故意把配置改错看看命令输出怎么变化。这种对比训练比只看文档有效得多。我每次带新人也是这个思路能在环境里自己跑出结论的比背一百条命令都强。最后再分享一个小技巧执行整个核查清单的时候先跑一遍快速侦察命令版本、服务列表、端口、时间同步再根据结果决定深挖方向。如果版本很老、服务很杂、时间不同步那多半是一台长期缺乏运维的机器测评重点就放到补丁、口令、审计、恶意代码这些基础项上如果版本新、服务干净、加固痕迹明显那重点核查方向就变成权限的精细化、内核参数、审计规则完整性这些进阶项。带着假设去跑命令比你从头到尾机械执行一套固定命令要高效得多也是我这些年测评下来觉得最实用的方法论。
返回列表