Linux 安全自查表(符合等保 2.0 及以上标准)

一、账户与认证安全(对应等保 2.0 “身份鉴别”“访问控制” 控制点)

等保 2.0 对应要求及模块说明

本模块依据等保 2.0 “主机安全” 章节的身份鉴别(a) 和访问控制(b) 条款设计,核心目标是防范 “非授权用户冒用身份登录”“特权账户滥用” 等风险。等保 2.0 明确要求:
  1. 身份鉴别需满足 “用户名唯一 + 鉴别信息安全”,密码应包含大小写字母、数字、特殊符号中至少 3 类,长度≥8 位,有效期≤90 天,且禁止空密码;
  1. 访问控制需遵循 “最小权限原则”,禁止 root 用户直接远程登录,仅授权必要用户使用 sudo 特权,限制特权命令范围。
以下自查项覆盖账户生命周期管理、鉴别策略、特权控制全流程,确保符合等保 “身份可追溯、权限可控制” 的核心要求。
检查项
安全标准(含等保 2.0 具体要求)
操作步骤
备注(等保合规要点)
默认账户清理
锁定 / 删除 guest、test 等未使用默认账户,避免 “默认账户被暴力破解”(等保 2.0 “身份鉴别”:禁止使用默认账户作为业务账户)
1. 查看所有账户及 UID(识别系统默认账户):`cat /etc/passwd
awk -F: ‘{print \(1,\)3}’(UID≤1000的多为系统默认账户) 2. 锁定账户(保留账户但禁止登录):sudo passwd -l [账户名] 3. 删除冗余账户及家目录(彻底清理风险):sudo userdel -r [账户名] 4. 验证锁定效果:sudo passwd -S [账户名]`(输出含 “LK” 标识为锁定成功)
空密码账户检查
无空密码账户存在(等保 2.0 “身份鉴别”:鉴别信息不能为空,需满足复杂性要求)
1. 批量排查空密码账户(/etc/shadow 中密码字段为空):awk -F: ‘($2 == “”) {print $1}’ /etc/shadow 2. 若存在空密码账户,立即强制设置密码:sudo passwd [账户名](需符合密码复杂度策略) 3. 二次验证:awk -F: ‘($2 == “”) {print $1}’ /etc/shadow(无输出为合规)
空密码是等保 “高风险项”,需优先处置,建议配置 PAM 模块禁止空密码登录
密码策略配置
1. 长度≥10 位(高于等保最低 8 位要求);2. 含大小写、数字、符号(至少 3 类);3. 有效期≤90 天;4. 到期前 7 天提醒(等保 2.0 “身份鉴别”:密码应定期更换,更换周期≤90 天)
1. 编辑系统基础密码策略:sudo vim /etc/login.defs,修改关键参数: PASS_MAX_DAYS 90(密码有效期) PASS_MIN_LEN 10(最小长度) PASS_WARN_AGE 7(到期提醒) 2. 安装密码复杂度强化模块(确保策略落地): RHEL/CentOS:sudo yum install -y libpam-pwquality Debian/Ubuntu:sudo apt install -y libpam-pwquality 3. 配置复杂度规则:sudo vim /etc/security/pwquality.conf,添加: minlen = 10(总长度) minclass = 3(字符类别数) dcredit = -1(强制含数字) ucredit = -1(强制含大写) lcredit = -1(强制含小写) 4. 验证策略:sudo passwd [测试账户](输入简单密码时应提示 “密码不符合策略要求”)
部分系统需重启 PAM 服务(sudo systemctl restart pam.service),确保策略对所有用户生效;等保要求 “已存在的弱密码需强制更新”,可通过chage -d 0 [用户名]强制用户下次登录修改密码
Root 登录限制
禁止 Root 远程 SSH 登录(等保 2.0 “访问控制”:禁止超级用户直接远程访问,需通过普通用户 + sudo 提权)
1. 编辑 SSH 服务配置:sudo vim /etc/ssh/sshd_config,修改: PermitRootLogin no(禁用 Root 远程登录) 2. 验证配置语法(避免配置错误导致 SSH 不可用):sudo sshd -t 3. 重启 SSH 服务生效: RHEL/CentOS:sudo systemctl restart sshd Debian/Ubuntu:sudo systemctl restart ssh 4. 验证效果:ssh root@[服务器IP](应提示 “Permission denied”)
需提前确保至少 1 个普通用户已配置 sudo 权限(避免无法提权管理系统),符合等保 “特权操作可追溯” 要求
sudo 权限管控
仅授权特定用户 / 组使用 sudo,禁止普通用户执行高危命令(等保 2.0 “访问控制”:特权操作需受限,且有审计记录)
1. 安全编辑 sudo 配置(避免语法错误导致 sudo 失效):sudo visudo 2. 按 “最小权限” 授权: 授权特定组(如 admin 组):%admin ALL=(ALL) ALL 授权特定用户:[用户名] ALL=(ALL) ALL 禁止高危命令(如禁止重启、关机):[用户名] ALL=(ALL) ALL, !/sbin/reboot, !/usr/bin/poweroff, !/bin/rm -rf / 3. 验证权限:sudo -l -U [用户名](查看该用户可执行的 sudo 命令列表) 4. 开启 sudo 审计(关联等保 “安全审计”):sudo vim /etc/sudoers,添加Defaults logfile=”/var/log/sudo.log”
严禁直接用 vim 编辑 /etc/sudoers(无语法校验);sudo 日志需保留≥6 个月(等保审计日志保存要求),定期检查是否有越权使用记录

二、文件与目录权限(对应等保 2.0 “访问控制”“数据安全” 控制点)

等保 2.0 对应要求及模块说明

本模块对应等保 2.0 “主机安全” 的访问控制(c) 和 “数据安全” 的数据访问控制(a) 条款,核心目标是防止 “敏感文件被非授权篡改 / 泄露”“恶意文件通过全局可写权限传播”。等保 2.0 明确要求:
  1. 文件、目录和系统设备的访问权限需遵循 “最小权限原则”,敏感文件(如账户配置、审计日志)仅允许授权用户读写;
  1. 临时目录(如 /tmp)需采取隔离措施,防止普通用户删除或篡改他人文件;
  1. 无属主 / 属组的文件需及时归属,避免权限混乱导致的安全漏洞。
以下自查项覆盖关键文件权限、全局可写风险、临时目录安全等场景,确保系统资源访问符合 “授权可见、操作可控” 的等保要求。
检查项
安全标准(含等保 2.0 具体要求)
操作步骤
备注(等保合规要点)
关键文件权限
1. /etc/passwd(账户配置):644(仅 root 可写,其他用户只读);2. /etc/shadow(密码哈希):600(仅 root 可读写);3. /var/log/secure(登录日志):640(仅 root 和日志组可读)(等保 2.0 “访问控制”:敏感文件权限需严格限制,防止泄露)
1. 批量检查关键文件权限:for file in /etc/passwd /etc/shadow /var/log/secure; do ls -l $file; done 2. 修复不合规权限: sudo chmod 644 /etc/passwd sudo chmod 600 /etc/shadow sudo chmod 640 /var/log/secure 3. 验证修复结果:ls -l /etc/passwd /etc/shadow /var/log/secure
/etc/shadow权限错误会导致账户登录异常,且泄露密码哈希(等保 “高风险项”);日志文件需防止被篡改,确保审计记录完整性
全局可写文件
无不必要的 777 权限文件 / 目录(等保 2.0 “访问控制”:禁止全局可写权限,除非业务必需且有补偿措施)
1. 排查全局可写文件(排除 /tmp、/proc 等系统必要目录):find / -path /tmp -prune -o -path /proc -prune -o -perm -0777 -type f -exec ls -l {} \; 2. 排查全局可写目录:find / -path /tmp -prune -o -path /proc -prune -o -perm -0777 -type d -exec ls -ld {} \; 3. 修复权限(根据业务需求设置为 755/644):sudo chmod 755 [文件/目录路径] 4. 二次验证:`find /-path/tmp -prune -o -perm -0777 -type f
wc -l`(输出 0 为最佳)
无属主文件
无无属主 / 属组文件(等保 2.0 “访问控制”:所有文件需明确归属,避免权限真空导致的非授权访问)
1. 排查无属主文件:find / -nouser -type f -exec ls -l {} \; 2. 排查无属组文件:find / -nogroup -type f -exec ls -l {} \; 3. 确认文件用途(避免误删业务文件)后,批量归属 root:sudo find / -nouser -o -nogroup -exec chown root:root {} \; 4. 验证结果:`find /-nouser -o -nogroup
wc -l`(输出 0 为合规)
临时目录安全
/tmp目录设置粘滞位(1777),且挂载时添加 nodev、nosuid、noexec 选项(等保 2.0 “访问控制”:临时目录需隔离,防止恶意文件执行)
1. 检查 /tmp 权限与挂载选项:ls -ld /tmp(需含 “drwxrwxrwt”)、`mount
grep /tmp(需含“nodev,nosuid,noexec”) 2. 修复粘滞位:sudo chmod +t /tmp 3. 配置挂载选项(重启生效):sudo sed -i ‘//tmp/s/defaults/defaults,nodev,nosuid,noexec/’ /etc/fstab 4. 临时生效挂载选项(无需重启):sudo mount -o remount /tmp 5. 二次验证:mount
SUID/SGID 文件
清理不必要的 SUID/SGID 权限文件(等保 2.0 “访问控制”:特权文件需严格管控,防止普通用户通过 SUID 提权)
1. 排查所有 SUID 文件(允许普通用户临时获取 root 权限的文件):find / -perm /4000 -type f -exec ls -l {} \; 2. 排查所有 SGID 文件(允许普通用户获取组权限的文件):find / -path /proc -prune -o -perm /2000 -type f -exec ls -l {} \; 3. 保留系统必要文件(如 passwd、sudo、su),删除其他 SUID/SGID 权限: sudo chmod u-s [SUID文件路径] sudo chmod g-s [SGID文件路径] 4. 验证:`find /-perm/4000 -type f
grep -vE “passwd
默认权限控制
全局 umask 设置为 027(新创建文件权限 640,目录 750)(等保 2.0 “访问控制”:默认权限需限制,防止新文件被过度访问)
1. 编辑全局 umask 配置:sudo vim /etc/profile,添加umask 027;sudo vim /etc/bashrc,添加umask 027 2. 立即生效配置:source /etc/profile && source /etc/bashrc 3. 验证 umask 值:umask(输出 027 为合规) 4. 测试新文件权限:touch testfile && mkdir testdir && ls -l testfile testdir(文件需为 “-rw-r—–”,目录需为 “drwxr-x—”)
umask 值计算逻辑:默认权限(文件 666、目录 777)减去 umask 值;027 对应权限可确保新文件仅所有者可写、同组可读,其他用户无权限,符合 “最小权限” 原则

三、SSH 服务安全(对应等保 2.0 “网络安全”“入侵防范” 控制点)

等保 2.0 对应要求及模块说明

本模块依据等保 2.0 “网络安全” 的网络访问控制(b) 和 “主机安全” 的入侵防范(a) 条款设计,核心目标是防范 “SSH 暴力破解”“中间人攻击”“端口转发绕过防火墙” 等风险。等保 2.0 明确要求:
  1. 远程访问服务(如 SSH)需采用加密协议(如 SSH v2),禁用不安全协议(如 SSH v1、Telnet);
  1. 需限制远程登录的 IP 范围、用户范围,设置登录失败次数限制,防止暴力破解;
  1. 禁止使用弱认证方式(如纯密码登录),优先采用密钥认证;
  1. 禁用不必要的服务功能(如 X11 转发、TCP 转发),减少攻击面。
以下自查项覆盖 SSH 协议、认证方式、访问控制、功能限制全维度,确保远程管理通道符合等保 “加密传输、严格控制、防范攻击” 的要求。
检查项
安全标准(含等保 2.0 具体要求)
操作步骤
备注(等保合规要点)
协议版本
仅启用 SSH v2,禁用 SSH v1(等保 2.0 “网络安全”:远程访问需采用安全加密协议,禁用存在漏洞的旧版本协议)
1. 编辑 SSH 配置文件:sudo vim /etc/ssh/sshd_config,修改 / 添加: Protocol 2(若配置被注释,需取消注释) 2. 验证配置语法:sudo sshd -t(无输出为语法正确) 3. 重启 SSH 服务生效: RHEL/CentOS:sudo systemctl restart sshd Debian/Ubuntu:sudo systemctl restart ssh 4. 验证协议禁用效果:ssh -1 [服务器IP](应提示 “Protocol major versions differ”,表示 SSH v1 已禁用)
SSH v1 存在 “中间人攻击”“密钥交换漏洞”,是等保 “必整改项”;需确保所有服务器统一禁用 SSH v1,避免因版本不一致导致风险
登录尝试限制
最大失败尝试次数≤3 次,登录超时时间≤60 秒(等保 2.0 “入侵防范”:需限制登录失败次数,防范暴力破解)
1. 编辑 SSH 配置:sudo vim /etc/ssh/sshd_config,修改: MaxAuthTries 3(失败 3 次后断开连接) LoginGraceTime 60(60 秒内无操作则断开登录会话) 2. 验证配置:sudo sshd -t 3. 重启 SSH 服务:sudo systemctl restart sshd 4. 测试效果:故意输错密码 3 次,SSH 应自动断开连接;登录时闲置 60 秒,应提示 “Connection closed by remote host”
配合 fail2ban 工具(见 “安全工具部署” 模块)可实现 “失败登录后自动封禁 IP”,形成 “限制 + 封禁” 的双重防护,符合等保 “多层次入侵防范” 要求
认证方式
禁用密码登录,强制采用 SSH 密钥认证(等保 2.0 “身份鉴别”:远程访问需采用强认证方式,禁止纯密码登录)
1. 客户端生成 4096 位 RSA 密钥对(本地执行,密钥长度高于等保最低 2048 位要求):ssh-keygen -t rsa -b 4096(一路回车,无需设置密钥密码,避免登录时重复输入) 2. 上传公钥到服务器(避免手动复制导致格式错误):ssh-copy-id [服务器用户名]@[服务器IP] 3. 服务器端配置强制密钥认证:sudo vim /etc/ssh/sshd_config,修改: PasswordAuthentication no(禁用密码登录) PubkeyAuthentication yes(启用密钥认证) 4. 验证公钥权限(防止非授权用户篡改公钥):sudo chmod 600 /home/[用户名]/.ssh/authorized_keys;sudo chmod 700 /home/[用户名]/.ssh 5. 重启 SSH 服务:sudo systemctl restart sshd 6. 测试登录:ssh [服务器用户名]@[服务器IP](无需输入密码,直接登录为合规)
密钥认证比密码认证更安全(避免密码被暴力破解或泄露),等保要求 “远程管理优先采用密钥或多因素认证”;需定期备份客户端私钥(如加密存储在 U 盘),防止私钥丢失导致无法登录
访问限制
仅允许特定 IP / 用户通过 SSH 登录(等保 2.0 “访问控制”:远程访问需限制来源,缩小攻击面)
1. 编辑 SSH 配置:sudo vim /etc/ssh/sshd_config,按场景选择配置: 场景 1:限制特定用户 + 特定 IP:AllowUsers admin@192.168.1.0/24 test@10.0.0.5(允许 admin 从 192.168.1 段登录,test 仅从 10.0.0.5 登录) 场景 2:限制特定用户组:先创建 ssh 访问组sudo groupadd ssh_access,添加用户到组sudo usermod -aG ssh_access [用户名],再配置AllowGroups ssh_access 2. 验证配置:sudo sshd -t 3. 重启 SSH 服务:sudo systemctl restart sshd 4. 测试效果:用未授权 IP / 用户登录(如ssh admin@10.0.0.6),应提示 “Permission denied”
配置前需确保 “管理终端 IP” 在允许列表中,避免误配置导致无法远程登录;若业务需动态 IP 访问,可结合防火墙白名单(如 iptables 允许特定网段),符合等保 “多层级访问控制” 要求
转发功能
禁用 X11 转发与 TCP 转发(等保 2.0 “入侵防范”:禁止不必要的服务功能,防止攻击者绕过防火墙)
1. 编辑 SSH 配置:sudo vim /etc/ssh/sshd_config,修改: X11Forwarding no(禁用 X11 图形转发,避免图形化漏洞利用) AllowTcpForwarding no(禁用 TCP 端口转发,防止攻击者通过 SSH 隧道访问内网) GatewayPorts no(禁止将转发端口暴露给其他主机,限制隧道范围) 2. 验证配置:sudo sshd -t 3. 重启 SSH 服务:sudo systemctl restart sshd 4. 测试转发禁用效果:ssh -L 8080:localhost:80 [服务器IP](应提示 “Forwarding denied”,表示 TCP 转发已禁用)
X11 转发和 TCP 转发是 “内网穿透” 的常用手段,攻击者可通过该功能绕过防火墙访问未暴露的内网服务,等保要求 “非业务必需的转发功能需全部禁用”

四、网络与防火墙配置(对应等保 2.0 “网络安全”“入侵防范” 控制点)

等保 2.0 对应要求及模块说明

本模块对应等保 2.0 “网络安全” 的网络访问控制(a) 和 “主机安全” 的入侵防范(b) 条款,核心目标是 “缩小网络攻击面”“阻断恶意网络访问”“防范网络层攻击”。等保 2.0 明确要求:
  1. 需禁用不必要的网络服务(如 Telnet、FTP),仅保留业务必需服务(如 SSH、HTTPs);
  1. 需启用防火墙(如 iptables、firewalld),配置 “默认拒绝、按需允许” 的规则,仅开放必要端口;
  1. 需禁用不安全的网络协议(如 DCCP、SCTP),防范协议层漏洞利用;
  1. 需加固网络参数(如禁用 ICMP 重定向、IP 源路由),防止 IP 欺骗、路由篡改等攻击。
以下自查项覆盖服务管控、防火墙规则、协议禁用、参数加固,确保 Linux 系统的网络层防护符合等保 “纵深防御” 要求。
检查项
安全标准(含等保 2.0 具体要求)
操作步骤
备注(等保合规要点)
非必要服务
禁用 Telnet、FTP 等不安全服务,仅保留业务必需服务(等保 2.0 “网络安全”:禁止运行非业务必需的网络服务,减少攻击面)
1. 排查已安装的不安全服务: RHEL/CentOS:`sudo yum list installed
grep -E “telnet
防火墙状态
启用 iptables/firewalld,且规则生效(等保 2.0 “网络安全”:需部署防火墙,实现网络访问控制)
### 方案 1:firewalld(RHEL/CentOS 7+、Fedora 默认,推荐) 1. 启动并设置开机自启:sudo systemctl enable –now firewalld 2. 验证运行状态:sudo systemctl status firewalld(输出 “active (running)” 为正常) 3. 查看当前开放端口(确认无多余端口):sudo firewall-cmd –list-ports ### 方案 2:iptables(Debian/Ubuntu 常用) 1. 安装 iptables 及规则持久化工具:sudo apt install -y iptables iptables-persistent(Debian/Ubuntu);RHEL/CentOS 默认预装 iptables 2. 启动服务并设置开机自启:sudo systemctl enable –now iptables 3. 保存当前规则(防止重启丢失):sudo iptables-save > /etc/iptables/rules.v4 4. 验证规则:sudo iptables -L -n(显示规则列表为正常)
禁止同时运行 firewalld 和 iptables(会导致规则冲突);等保要求 “防火墙规则需定期审计(每季度 1 次)”,确保无冗余或过松规则
端口开放策略
仅开放业务必需端口(如 SSH 22、HTTPS 443),默认拒绝所有未明确允许的端口(等保 2.0 “网络访问控制”:端口开放需遵循 “最小必要原则”)
### 方案 1:firewalld 配置 1. 开放必需端口(永久生效,避免重启失效): sudo firewall-cmd –add-port=22/tcp –permanent(SSH,远程管理必需) sudo firewall-cmd –add-port=443/tcp –permanent(HTTPS,Web 业务必需,非业务可省略) sudo firewall-cmd –add-port=3306/tcp –permanent(MySQL,数据库业务必需,非业务可省略) 2. 移除不必要端口(如 HTTP 80,若已启用 HTTPS):sudo firewall-cmd –remove-port=80/tcp –permanent 3. 重载规则生效:sudo firewall-cmd –reload 4. 验证开放端口:sudo firewall-cmd –list-ports(仅显示已添加的必需端口为合规) ### 方案 2:iptables 配置 1. 清空默认规则(避免冲突):sudo iptables -F 2. 添加允许规则(按业务需求调整): sudo iptables -A INPUT -p tcp –dport 22 -j ACCEPT(允许 SSH 访问) sudo iptables -A INPUT -p tcp –dport 443 -j ACCEPT(允许 HTTPS 访问) sudo iptables -A INPUT -i lo -j ACCEPT(允许本地回环访问,系统必需) sudo iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT(允许已建立连接的后续通信) 3. 设置默认拒绝(核心规则,阻断所有未允许的访问): sudo iptables -P INPUT DROP(默认拒绝入站流量) sudo iptables -P FORWARD DROP(默认拒绝转发流量) 4. 保存规则:sudo iptables-save > /etc/iptables/rules.v4 5. 验证规则:sudo iptables -L -n
修改防火墙规则前,需确保已通过本地终端登录(避免远程登录时误配置导致断连);等保要求 “端口开放需文档化管理”,记录每个开放端口的用途、业务依赖,便于审计
危险协议禁用
禁用 DCCP、SCTP、RDS、TIPC 等不常用协议(等保 2.0 “入侵防范”:禁用存在漏洞的不常用协议,减少攻击面)
1. 创建协议黑名单配置文件:sudo vim /etc/modprobe.d/blacklist-danger-protocols.conf,添加以下内容(禁止协议模块加载): blacklist dccp blacklist sctp blacklist rds blacklist tipc 2. 立即卸载已加载的协议模块(无需重启):sudo modprobe -r dccp sctp rds tipc(若提示 “模块正在使用”,需先停止依赖服务,再执行卸载) 3. 防止模块重启后重新加载:echo “install dccp /bin/true” >> /etc/modprobe.d/blacklist-danger-protocols.conf;echo “install sctp /bin/true” >> /etc/modprobe.d/blacklist-danger-protocols.conf;echo “install rds /bin/true” >> /etc/modprobe.d/blacklist-danger-protocols.conf;echo “install tipc /bin/true” >> /etc/modprobe.d/blacklist-danger-protocols.conf 4. 验证禁用效果:`lsmod
grep -E “dccp
网络参数加固
禁用 ICMP 重定向、IP 源路由,启用 SYN Cookies(等保 2.0 “入侵防范”:加固网络参数,防范 IP 欺骗、SYN 洪水等攻击)
1. 编辑系统网络参数配置:sudo vim /etc/sysctl.conf,添加 / 修改以下参数: net.ipv4.conf.all.accept_redirects = 0(禁用所有网卡的 ICMP 重定向,防止路由篡改) net.ipv4.conf.default.accept_redirects = 0(禁用默认网卡的 ICMP 重定向) net.ipv4.conf.all.accept_source_route = 0(禁用所有网卡的 IP 源路由,防止 IP 欺骗) net.ipv4.conf.default.accept_source_route = 0(禁用默认网卡的 IP 源路由) net.ipv4.icmp_echo_ignore_broadcasts = 1(禁用广播 ping,防范 ping 洪水攻击) net.ipv4.tcp_syncookies = 1(启用 SYN Cookies,防范 SYN 洪水攻击) net.ipv4.tcp_max_syn_backlog = 1024(增大 SYN 队列,配合 SYN Cookies 提升抗攻击能力) 2. 立即生效参数(无需重启):sudo sysctl -p 3. 验证参数配置:`sudo sysctl -a
grep -E “accept_redirects

五、日志与审计(对应等保 2.0 “安全审计” 控制点)

等保 2.0 对应要求及模块说明

本模块完全依据等保 2.0 “主机安全” 的安全审计(a) 条款设计,核心目标是 “确保系统操作可追溯、安全事件可调查”。等保 2.0 明确要求安全审计需满足:
  1. 审计范围覆盖 “用户登录、权限变更、敏感文件修改、系统命令执行、数据库操作” 等关键操作;
  1. 审计日志需包含 “操作时间、操作主体(用户 / IP)、操作对象、操作结果、命令内容” 等要素;
  1. 审计日志需保存≥6 个月,且具备 “不可篡改、不可删除” 的特性;
  1. 需部署审计工具(如 auditd),实现审计日志的采集、存储、查询功能。
以下自查项覆盖审计服务部署、审计规则配置、日志安全存储,确保满足等保 “可追溯、可审计、可追责” 的核心要求。
检查项
安全标准(含等保 2.0 具体要求)
操作步骤
备注(等保合规要点)
日志服务运行
启用 rsyslog(系统日志)和 auditd(安全审计)服务,确保日志采集不中断(等保 2.0 “安全审计”:需部署审计工具,实现日志持续采集)
### 1. rsyslog 服务(系统基础日志采集,如登录日志、服务启停日志) 1. 启动并设置开机自启:sudo systemctl enable –now rsyslog 2. 验证运行状态:sudo systemctl status rsyslog(输出 “active (running)” 为正常) 3. 确认日志生成(确保采集功能正常): RHEL/CentOS:ls -l /var/log/messages(需有最新时间戳) Debian/Ubuntu:ls -l /var/log/syslog(需有最新时间戳) ### 2. auditd 服务(安全审计日志采集,如文件修改、命令执行) 1. 安装 auditd(部分系统默认未预装): RHEL/CentOS:sudo yum install -y audit Debian/Ubuntu:sudo apt install -y auditd 2. 启动并设置开机自启:sudo systemctl enable –now auditd 3. 验证运行状态:sudo systemctl status auditd(输出 “active (running)” 为正常) 4. 确认审计日志存储:ls -l /var/log/audit/audit.log(需有最新时间戳,且大小随操作增长)
auditd 是 Linux 系统原生的安全审计工具,支持细粒度审计规则,是等保 “推荐使用的审计工具”;rsyslog 负责采集基础日志,两者配合实现 “全场景日志覆盖”;需确保磁盘空间充足(审计日志占用较大),避免日志存储满导致采集中断
审计规则配置
配置审计规则,监控 “账户变更、权限修改、敏感文件操作、命令执行” 等关键行为(等保 2.0 “安全审计”:审计范围需覆盖所有关键操作)
1. 编辑 auditd 审计规则文件(永久生效):sudo vim /etc/audit/rules.d/audit.rules,添加以下核心规则(按等保要求覆盖关键场景): -w /etc/passwd -p wa -k passwd_change(监控 /etc/passwd 的写入(w)和属性修改(a),标记关键词 passwd_change,便于查询) -w /etc/shadow -p wa -k shadow_change(监控 /etc/shadow 修改,敏感密码文件必监控) -w /etc/sudoers -p wa -k sudoers_change(监控 sudo 权限配置修改,防范权限滥用) -w /var/log/secure -p wa -k secure_log(监控登录日志修改,防止审计记录被篡改) -w /var/log/audit/audit.log -p wa -k audit_log(监控审计日志自身修改,确保日志完整性) -a exit,always -F arch=b64 -S execve -k command_exec(监控所有 64 位系统命令执行,记录命令内容,等保 “命令审计” 必配) -w /usr/bin/passwd -p x -k passwd_exec(监控 passwd 命令执行,即用户修改密码操作) 2. 重启 auditd 服务生效规则:sudo systemctl restart auditd 3. 查看当前生效规则:sudo auditctl -l(显示所有添加的规则为正常) 4. 测试审计效果(验证规则有效性): 执行sudo touch /etc/passwd.test(模拟修改 /etc/passwd 所在目录) 查询审计日志:sudo ausearch -k passwd_change(需显示 “touch 操作” 的详细记录,包括用户、时间、命令)
审计规则需 “最小化冗余、最大化覆盖”,避免过多无效日志影响查询效率;关键词(-k 参数)需统一命名规则(如 “xxx_change” 表示修改操作,“xxx_exec” 表示命令执行),便于快速筛选审计记录;等保要求 “定期测试审计规则有效性(每月 1 次)”,确保关键操作无遗漏
审计日志配置
审计日志单文件大小≥100MB,保留≥5 个轮转日志,审计队列大小≥8192(等保 2.0 “安全审计”:日志需满足存储容量与完整性要求,避免丢失)
1. 编辑 auditd 日志配置文件:sudo vim /etc/audit/auditd.conf,修改以下关键参数: max_log_file = 100(单个审计日志文件最大 100MB,避免文件过大导致查询缓慢) max_log_file_action = rotate(日志满后自动轮转,而非删除,确保日志不丢失) num_logs = 5(保留 5 个轮转日志,总审计日志容量≥500MB,满足等保 “短期存储” 要求;长期存储需配置日志归档到异地服务器) audit_backlog_limit = 8192(审计队列大小 8192,避免高负载时审计事件丢失) log_format = ENRICHED(日志格式为 “富格式”,包含更多上下文信息,便于事件分析) 2. 重启 auditd 服务生效配置:sudo systemctl restart auditd 3. 验证配置:`sudo cat /etc/audit/auditd.conf
grep -E “max_log_file
日志权限
审计日志文件权限≤640,日志目录权限≤700(等保 2.0 “安全审计”:日志需防止非授权访问与篡改)
1. 批量修改系统日志权限(含 rsyslog 和 auditd 日志): sudo find /var/log -type f -name “*.log” -exec chmod 640 {} \;(日志文件仅 root 和日志组可读,其他用户无权限) sudo chmod 700 /var/log/audit(auditd 日志目录仅 root 可访问,防止目录被篡改) 2. 单独加固关键日志权限: sudo chmod 640 /var/log/secure(登录日志) sudo chmod 640 /var/log/audit/audit.log(审计日志) 3. 验证权限:ls -l /var/log/secure /var/log/audit/audit.log /var/log/audit(权限分别为 “-rw-r—–”“-rw-r—–”“drwx——” 为合规) 4. 配置日志轮转权限(确保轮转后新日志权限合规):sudo vim /etc/logrotate.conf,添加create 0640 root root(日志轮转时自动创建权限为 640 的新文件)
日志文件含敏感信息(如用户登录密码错误记录、命令执行内容),非授权访问会导致信息泄露;权限过松(如 644)属于等保 “不合规项”,需 100% 整改;建议定期(每月 1 次)检查日志权限,防止权限被篡改

六、内核与系统加固(对应等保 2.0 “入侵防范”“资源控制” 控制点)

等保 2.0 对应要求及模块说明

本模块依据等保 2.0 “主机安全” 的入侵防范(c) 和资源控制(a) 条款设计,核心目标是 “加固系统内核层安全”“防止资源耗尽导致服务不可用”“防范内核漏洞利用”。等保 2.0 明确要求:
  1. 需禁用核心转储文件(含敏感进程内存数据),防止攻击者通过核心转储获取密码、密钥等信息;
  1. 需启用强制访问控制(MAC)机制(如 SELinux、AppArmor),实现 “超越所有者的权限控制”,防范权限提升攻击;
  1. 需对关键分区(如 /tmp、/home)添加安全挂载选项,防止恶意文件执行;
  1. 需将关键目录(如 /var、/home)独立分区,避免单一分区耗尽导致系统崩溃。
以下自查项覆盖内核参数、分区安全、强制访问控制,形成系统底层的深度防护。
检查项
安全标准(含等保 2.0 具体要求)
操作步骤
备注(等保合规要点)
防 SYN 洪水
启用 SYN Cookies,配置 SYN 队列大小(等保 2.0 “入侵防范”:需防范 DDoS 攻击,确保服务可用性)
1. 编辑内核参数配置:sudo vim /etc/sysctl.conf,添加 / 修改: net.ipv4.tcp_syncookies = 1(启用 SYN Cookies,核心防护手段) net.ipv4.tcp_max_syn_backlog = 1024(SYN 队列大小 1024,提升并发抗攻击能力) net.ipv4.tcp_syn_retries = 3(SYN 重试次数 3 次,减少无效连接占用队列) 2. 立即生效:sudo sysctl -p 3. 验证配置:sudo sysctl net.ipv4.tcp_syncookies(输出 1 为启用) 4. 监控 SYN 队列状态(可选,用于攻击时排查):`netstat -nat
grep SYN_RECV
分区挂载加固
关键分区(/tmp、/home、/var)挂载时添加 nodev、nosuid、noexec 选项(等保 2.0 “入侵防范”:防止恶意文件执行与设备滥用)
1. 查看当前挂载选项:`mount
grep -E “/tmp
核心转储限制
禁用核心转储文件生成(等保 2.0 “入侵防范”:防止敏感进程内存数据泄露,被用于漏洞利用)
1. 临时禁用核心转储(当前会话生效):ulimit -c 0(设置核心转储大小为 0) 2. 全局持久化禁用(所有用户生效):sudo vim /etc/security/limits.conf,添加: * hard core 0(所有用户硬限制,无法突破) root hard core 0(单独限制 root 用户,防止超级用户绕过限制) 3. 系统级禁用(禁止 SUID 程序生成核心转储):sudo vim /etc/sysctl.conf,添加:fs.suid_dumpable = 0 4. 生效配置: source /etc/security/limits.conf(用户级生效) sudo sysctl -p(系统级生效) 5. 验证: ulimit -c(输出 0 为用户级合规) sudo sysctl fs.suid_dumpable(输出 0 为系统级合规)
核心转储文件(core dump)包含进程崩溃时的完整内存数据,若进程涉及密码、密钥(如 SSH 服务、数据库服务),转储文件会泄露敏感信息;攻击者也可通过 “故意触发进程崩溃生成转储文件” 获取系统权限,等保要求 “全系统禁用核心转储”
安全模块状态
SELinux/AppArmor 处于 enforcing 模式(等保 2.0 “访问控制”:启用强制访问控制(MAC),实现精细化权限管控)
### 方案 1:SELinux(RHEL/CentOS、Fedora 默认,推荐) 1. 查看当前模式:getenforce(输出 “Enforcing” 为合规,“Permissive” 为警告模式,“Disabled” 为禁用) 2. 临时切换为 enforcing 模式:sudo setenforce 1 3. 持久化配置(重启生效,避免模式被篡改):sudo vim /etc/selinux/config,修改:SELINUX=enforcing(禁止设置为 “disabled” 或 “permissive”) 4. 验证: getenforce(输出 “Enforcing”) `cat /etc/selinux/config
grep SELINUX=enforcing(配置生效) ### 方案2:AppArmor(Debian/Ubuntu默认) 1. 查看服务状态:sudo aa-status(输出“apparmor is enabled”为正常) 2. 查看配置文件模式:sudo aa-status
分区配置
关键目录(/var、/home、/tmp)独立分区(等保 2.0 “资源控制”:防止单一分区耗尽导致系统不可用)
1. 查看当前分区情况:df -h(检查 /var、/home、/tmp 是否为独立挂载点,即 “Mounted on” 列非 “/”) 2. 若未独立分区(需扩容或新增磁盘,示例为新增磁盘 /dev/sdb1 挂载 /var): 1. 格式化新分区为 ext4:sudo mkfs.ext4 /dev/sdb1(注意:会清空分区数据,需确认无业务数据) 2. 创建临时挂载点:sudo mkdir /newvar 3. 临时挂载新分区:sudo mount /dev/sdb1 /newvar 4. 复制原 /var 数据到新分区(保持权限与属性):sudo cp -a /var/* /newvar/ 5. 卸载原 /var 挂载(需停止依赖 /var 的服务,如 rsyslog、mysql):sudo umount /var 6. 修改 /etc/fstab(永久挂载):sudo echo “/dev/sdb1 /var ext4 defaults,nodev 0 0” >> /etc/fstab 7. 重新挂载 /var:sudo mount /var 8. 重启验证:sudo reboot后,`df -h
grep /var(挂载点为/dev/sdb1为合规) 3. 验证关键目录分区:df -h

七、更新与补丁管理(对应等保 2.0 “漏洞管理” 控制点)

等保 2.0 对应要求及模块说明

本模块依据等保 2.0 “安全管理中心” 的漏洞管理(a) 条款设计,核心目标是 “及时修复系统漏洞,防范漏洞被攻击者利用”。等保 2.0 明确要求:
  1. 需定期(≤30 天)扫描系统漏洞,优先修复高危漏洞(如远程代码执行、权限提升漏洞);
  1. 需定期(≤30 天)安装安全补丁,禁止使用 “已明确存在高危漏洞且无补丁” 的系统版本;
  1. 需配置自动安全更新机制(或建立补丁管理流程),确保补丁及时部署;
  1. 补丁安装前需进行兼容性测试,避免影响业务服务。
以下自查项覆盖漏洞扫描、补丁安装、自动更新,形成 “发现 – 修复 – 验证” 的闭环管理,符合等保漏洞管理要求。
检查项
安全标准(含等保 2.0 具体要求)
操作步骤
备注(等保合规要点)
系统更新
每≤30 天安装安全补丁,优先修复高危漏洞(等保 2.0 “漏洞管理”:安全补丁安装周期≤30 天,高危漏洞需 24 小时内修复)
### RHEL/CentOS 1. 列出可更新的安全补丁(按风险等级分类):sudo yum updateinfo list security(显示 “Critical”“Important”“Moderate”“Low” 四个等级,优先处理前两类) 2. 仅安装安全补丁(避免安装功能更新导致业务兼容性问题):sudo yum update –security -y 3. 若需安装所有补丁(含功能更新,需提前测试):sudo yum update -y ### Debian/Ubuntu 1. 更新软件源缓存(获取最新补丁信息):sudo apt update -y 2. 列出可更新的安全补丁:`sudo apt list –upgradable
grep -i security(含“security”标识的为安全补丁) 3. 安装安全补丁:sudo apt upgrade -y –only-upgrade(仅升级已安装软件,不新增依赖) 4. 清理冗余依赖(减少攻击面):sudo apt autoremove -y && sudo apt clean ### 验证补丁安装 1. RHEL/CentOS:sudo yum updateinfo list security
补丁检查
无未修复的高危 / 重要漏洞(等保 2.0 “漏洞管理”:需定期扫描漏洞,确保无高危漏洞残留)
1. 系统自带工具扫描(基础漏洞检测): RHEL/CentOS:`sudo yum list-security –security
grep -i “critical|important”(查看高危/重要漏洞) Debian/Ubuntu:sudo apt show [软件名]
更新机制
配置自动安全更新,或建立补丁管理流程(等保 2.0 “漏洞管理”:需确保补丁及时部署,避免人为遗漏)
### 方案 1:RHEL/CentOS 8+(使用 dnf-automatic) 1. 安装自动更新工具:sudo dnf install -y dnf-automatic 2. 编辑自动更新配置(仅更新安全补丁,避免功能更新):sudo vim /etc/dnf/automatic.conf,修改: apply_updates = yes(自动安装补丁) upgrade_type = security(仅更新安全补丁) email_from = root@localhost(发件人邮箱,用于发送更新通知) email_to = admin@example.com(收件人邮箱,接收更新结果(成功 / 失败)) email_host = smtp.example.com(SMTP 服务器地址,确保邮件可发送) 3. 配置定时任务(每天凌晨 3 点执行更新,避开业务高峰期):sudo crontab -e,添加:0 3 * * * /usr/bin/dnf-automatic 4. 验证配置:sudo dnf-automatic –dry-run(模拟执行,无错误为正常) ### 方案 2:Debian/Ubuntu(使用 unattended-upgrades) 1. 安装自动更新工具:sudo apt install -y unattended-upgrades update-notifier-common 2. 启用自动更新(图形化配置,选择 “是”):sudo dpkg-reconfigure -plow unattended-upgrades 3. 编辑配置(仅更新安全补丁):sudo vim /etc/apt/apt.conf.d/50unattended-upgrades,确保仅保留安全源: Unattended-Upgrade::Allowed-Origins { “origin=Ubuntu,archive=${distro_codename}-security”; };(Ubuntu 示例) 4. 配置更新通知(发送邮件):在配置文件中添加Unattended-Upgrade::Mail “admin@example.com”; 5. 验证配置:sudo unattended-upgrades –dry-run –debug(无错误为正常) 6. 查看更新日志:sudo tail -f /var/log/unattended-upgrades/unattended-upgrades.log
自动更新需配置 “失败重试” 和 “异常通知”(如更新失败时发送告警邮件),避免补丁安装中断导致漏洞残留;关键业务服务器(如数据库服务器)不建议直接启用自动更新,需先在测试环境验证补丁兼容性(等保 “补丁测试” 要求),再通过手动方式安装;自动更新配置文件需权限控制(600),防止被篡改

八、安全工具部署(对应等保 2.0 “入侵防范”“恶意代码防范” 控制点)

等保 2.0 对应要求及模块说明

本模块依据等保 2.0 “主机安全” 的入侵防范(d) 和恶意代码防范(a) 条款设计,核心目标是 “通过技术工具实现主动防御,及时发现并阻断安全威胁”。等保 2.0 明确要求:
  1. 需部署文件完整性监控工具(如 AIDE),监控敏感文件(如 /etc/passwd、/bin/bash)的篡改,及时发现后门、病毒等恶意文件;
  1. 需部署入侵检测工具(如 fail2ban),防范暴力破解、端口扫描等常见攻击;
  1. 需部署恶意代码防范工具(如 ClamAV),定期扫描系统,清除病毒、木马、挖矿程序等恶意代码;
  1. 所有安全工具需定期更新(如病毒库、规则库),确保检测能力有效。
以下自查项覆盖工具部署、配置、定时任务,形成 “监控 – 检测 – 清除” 的主动防护体系。
检查项
安全标准(含等保 2.0 具体要求)
操作步骤
备注(等保合规要点)
文件完整性监控
部署 AIDE 工具,每≤24 小时检查 1 次文件完整性(等保 2.0 “入侵防范”:需监控敏感文件篡改,及时发现恶意修改)
1. 安装 AIDE(开源文件完整性监控工具,等保推荐): RHEL/CentOS:需先装 EPEL 源sudo yum install -y epel-release,再安装sudo yum install -y aide Debian/Ubuntu:sudo apt install -y aide 2. 初始化基线库(关键步骤!需在系统 “无恶意文件、配置合规” 时执行,确保基线纯净):sudo aide –init(生成初始校验库,存储路径为 /var/lib/aide/aide.db.new.gz) 3. 重命名基线库为正式库(启用监控):sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz 4. 手动执行完整性检查(验证工具有效性):sudo aide –check(首次执行应输出 “All files match AIDE database”,表示无文件篡改) 5. 配置定时检查(等保要求每≤24 小时 1 次):sudo crontab -e,添加:`0 2 * * * /usr/sbin/aide –check
mail -s “AIDE Integrity Check Report” admin@example.com(检查结果发送到管理员邮箱) 6. 更新基线库(系统正常变更后,如安装软件、修改配置):sudo aide –update(生成新基线库aide.db.new.gz);sudo mv /var/lib/aide/aide.db.new.gz/var/lib/aide/aide.db.gz`(覆盖旧基线)
入侵检测
部署 fail2ban,自动封禁恶意 IP(等保 2.0 “入侵防范”:需防范暴力破解、端口扫描等攻击)
1. 安装 fail2ban(开源入侵检测工具,针对 SSH 暴力破解效果显著): RHEL/CentOS:sudo yum install -y fail2ban(需 EPEL 源) Debian/Ubuntu:sudo apt install -y fail2ban 2. 配置 SSH 防护规则(核心配置,需覆盖等保 “暴力破解防范” 要求):sudo vim /etc/fail2ban/jail.local(新建文件,覆盖默认配置,避免修改默认文件被更新覆盖),添加: [sshd] enabled = true(启用 SSH 防护) port = ssh(防护端口,对应 22) filter = sshd(使用内置 sshd 过滤规则,匹配暴力破解日志) logpath = /var/log/secure(RHEL/CentOS 登录日志路径);logpath = /var/log/auth.log(Debian/Ubuntu 登录日志路径) maxretry = 3(失败 3 次触发封禁,符合等保 “登录失败次数限制”) bantime = 86400(封禁 24 小时,单位秒,避免短期重复攻击) findtime = 600(10 分钟内计数,防止误封正常 IP) 3. 启动服务并设置开机自启:sudo systemctl enable –now fail2ban 4. 查看防护状态:sudo fail2ban-client status sshd(显示 “Currently banned” 为已封禁 IP 数,“Total banned” 为累计封禁数) 5. 手动解封 IP(误封时使用):sudo fail2ban-client set sshd unbanip [被封IP] 6. 扩展配置(可选,防护 Web 服务):添加 Nginx/Apache 规则,监控访问日志中的 404、403 频繁错误,封禁扫描 IP
fail2ban 通过 “分析日志 – 匹配规则 – 执行封禁(如 iptables 添加 DROP 规则)” 实现自动化防护,可大幅减少人工干预;等保要求 “入侵检测日志需保留≥6 个月”,fail2ban 日志路径为 /var/log/fail2ban.log,需确保日志权限合规(640);建议定期(每月 1 次)分析封禁日志,识别高频攻击 IP,添加到防火墙永久黑名单
恶意软件防护
安装 ClamAV,每≤7 天扫描 1 次恶意代码(等保 2.0 “恶意代码防范”:需定期查杀恶意代码,病毒库更新周期≤1 天)
1. 安装 ClamAV(开源恶意代码扫描工具,支持病毒、木马、挖矿程序检测): RHEL/CentOS:sudo yum install -y clamav clamav-update(需 EPEL 源) Debian/Ubuntu:sudo apt install -y clamav clamav-daemon 2. 更新病毒库(关键步骤!需每天更新,确保检测最新恶意代码): 停止 freshclam 服务(避免占用):sudo systemctl stop clamav-freshclam 手动更新病毒库:sudo freshclam(首次更新耗时较长,需耐心等待) 启动病毒库自动更新服务:sudo systemctl enable –now clamav-freshclam 3. 手动执行全量扫描(
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 qiqicto@qq.com 举报,一经查实,本站将立刻删除。
赞 (0)
赵其鑫的头像赵其鑫管理团队

相关推荐

返回顶部