等保 2.0 三级合规实操手册:运维能看懂的主机与网络配置指南

在这里插入图片描述

“拿到等保测评报告,看着‘身份鉴别不达标’‘日志留存不足’等问题,却不知道怎么改 —— 改了怕影响业务,不改又通不过测评”“等保条款里的‘安全审计’‘访问控制’太抽象,不知道对应到 Linux 服务器上该敲什么命令”—— 这是运维人员做等保合规最常见的困境:合规要求与日常运维操作脱节,想落地却找不到 “技术衔接点”。

等保 2.0 三级的核心不是 “新增复杂配置”,而是 “在现有运维基础上补充安全规则”—— 比如你每天用sshd管理服务器,现在只需多改 3 行配置就能满足 “身份鉴别” 要求;你熟悉的iptables,稍作调整就是 “网络访问控制” 的合规方案。本文从运维视角出发,每个合规点都对应 “命令 + 配置 + 脚本”,让你拿着手册就能动手改,改完就能通过测评。

一、先明确:运维必看的等保 2.0 三级核心要求(只挑 “能落地的技术项”)

等保 2.0 三级技术要求分 “物理环境、网络安全、主机安全、应用安全、数据安全”5 大类,其中主机、网络、数据、日志是运维能独立落地的核心领域,占技术合规分的 70%,先聚焦这 4 块(物理环境多由行政负责,应用安全需开发配合):

合规领域核心技术要求(2025 年测评重点)运维操作关联点整改难度
主机安全1. 账号安全(密码复杂度、定期更换、禁用 root 远程);2. 进程 / 服务管控(关闭无用服务);3. 补丁管理(高危漏洞及时修复)Linux/Windows 服务器日常管理(useradd、systemctl、yum)★★☆☆☆
网络安全1. 访问控制(防火墙 ACL 规则、端口限制);2. 边界防护(DMZ 区划分、内外网隔离);3. 恶意代码防护(防火墙病毒过滤)路由器 / 交换机配置(iptables、VLAN)、防火墙管理★★★☆☆
数据安全1. 数据备份(核心数据定期备份、异地备份);2. 数据加密(敏感字段加密存储);3. 访问控制(数据库账号最小权限)数据库运维(mysqldump、MySQL 权限配置)、文件加密(openssl)★★★☆☆
日志审计1. 日志留存(至少 6 个月);2. 日志内容(含用户操作、系统事件、安全事件);3. 日志分析(能定位异常操作)日志系统管理(rsyslog、ELK、日志轮转)★★★☆☆

核心认知:等保合规不是 “推翻现有运维”,而是 “给运维加安全规则”—— 比如你之前用yum update更系统补丁,现在只需多一步 “记录补丁修复日志”;你之前用iptables开端口,现在只需补充 “限制访问源 IP”,无需从零学新技能。

二、实操模块 1:主机安全配置(Linux/Windows,附命令模板)

主机安全是等保合规的 “基础分”,也是运维最易落地的部分,重点搞定 “账号、服务、补丁”3 个核心点,以 CentOS 7 和 Windows Server 2019 为例:

1. 账号安全(满足 “身份鉴别” 要求)

(1)Linux 服务器(CentOS 7)
合规要求运维操作步骤命令 / 配置示例验证方法
密码复杂度:至少 8 位,含大小写 + 数字 + 特殊符号1. 修改/etc/login.defs配置密码规则;2. 用pam_cracklib模块强制复杂度1. vim /etc/login.defs:PASS_MIN_LEN 8PASS_MAX_DAYS 90(密码有效期 90 天)2. vim /etc/pam.d/system-auth:添加password required pam_cracklib.so try_first_pass retry=3 minlen=8 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1(d = 数字,u = 大写,o = 特殊符号,l = 小写)1. 新建用户测试:useradd testpasswd test,输入简单密码(如 123456),系统提示 “密码不符合要求”
禁用 root 远程登录1. 修改 sshd 配置文件;2. 重启 sshd 服务1. vim /etc/ssh/sshd_config:PermitRootLogin no(默认可能是 yes)2. systemctl restart sshd1. 远程测试:ssh root@服务器IP,提示 “Permission denied”2. 用普通账号登录:ssh test@服务器IP,登录成功后sudo提权
账号定期清理(删除长期未登录账号)1. 用lastlog查看账号登录时间;2. 禁用 / 删除 3 个月未登录账号1. 查看未登录账号:`lastloggrep “Never logged in”
2. 禁用账号:usermod -L 账号名
3. 删除账号:userdel -r 账号名 `(-r 删除家目录)
(2)Windows Server 2019
合规要求运维操作步骤操作路径 / 命令验证方法
密码复杂度与有效期1. 打开 “本地安全策略”;2. 配置密码策略1. 运行secpol.msc→“账户策略”→“密码策略”2. 设 “密码长度最小值” 为 8,“密码最长使用期限” 为 90 天1. 新建用户:“计算机管理”→“本地用户和组”→“用户”,新建用户时提示 “密码必须满足复杂度要求”
禁用管理员远程登录1. 修改组策略;2. 限制远程桌面用户组1. 运行gpedit.msc→“计算机配置”→“Windows 设置”→“安全设置”→“本地策略”→“用户权限分配”→“允许通过远程桌面服务登录”2. 删除 “Administrators” 组,添加 “Remote Desktop Users” 组(只加普通账号)1. 用管理员账号远程登录:提示 “无法登录,因为该用户账号未被授权”

2. 服务与进程管控(满足 “入侵防范” 要求)

Linux 服务器(CentOS 7)
  • 核心操作:关闭无用服务(如 rpcbind、telnet、vsftpd),减少攻击面

  • 步骤:

  1. 查看运行中的服务:systemctl list-units --type=service --state=running

  2. 关闭并禁用服务(以 rpcbind 为例):

systemctl stop rpcbind  # 停止当前服务
systemctl disable rpcbind  # 禁止开机启动
systemctl mask rpcbind  # 彻底禁用(防止被意外启动)
  1. 验证:systemctl status rpcbind,显示 “inactive (dead)”
  • 避坑点:关闭服务前先确认是否关联业务,比如httpd(Apache)若承载 Web 业务,不能关闭;可先在测试环境验证,再在生产环境操作(建议凌晨低峰期)。

3. 补丁管理(满足 “漏洞修复” 要求)

Linux 服务器(CentOS 7)
  • 核心操作:定期扫描高危漏洞,24 小时内修复(等保要求)

  • 步骤:

  1. 安装漏洞扫描工具(Lynis,开源免费):
yum install -y epel-release  # 安装依赖源
yum install -y lynis  # 安装Lynis
  1. 扫描服务器漏洞:lynis audit system,扫描完成后会输出 “高危漏洞列表”(如 “CVE-2021-44228 Log4j 漏洞”)

  2. 修复漏洞(以 Log4j 为例):

yum update log4j  # 升级Log4j到安全版本
echo "Log4j补丁修复完成,版本:$(rpm -qa | grep log4j)" >> /var/log/patch.log  # 记录修复日志(等保需留存)
  1. 验证:rpm -qa | grep log4j,显示安全版本(如log4j-2.17.0-1.el7.noarch)
  • 运维技巧:用 Ansible 批量管理多台服务器,避免手动操作(附批量补丁脚本模板):
# ansible-patch.yml(批量升级系统补丁)
- name: 批量升级CentOS服务器补丁
  hosts: all
  tasks:
    - name: 安装Lynis漏洞扫描工具
      yum: name=lynis state=present
    - name: 扫描高危漏洞
      command: lynis audit system --quiet
      register: lynis_result
    - name: 输出漏洞结果到本地日志
      local_action: copy content="{{ lynis_result.stdout }}" dest="/var/log/lynis_{{ inventory_hostname }}.log"
    - name: 升级所有高危漏洞补丁
      yum: name=* state=latest  # 生产环境建议指定具体包名,避免意外升级影响业务
    - name: 记录补丁日志
      command: echo "补丁升级完成:$(date)" >> /var/log/patch.log

执行脚本:ansible-playbook -i 服务器IP列表 ansible-patch.yml

三、实操模块 2:网络安全配置(防火墙 + VLAN,附 ACL 规则)

网络安全是等保合规的 “边界分”,重点搞定 “防火墙访问控制、DMZ 区划分”,以 Linux iptables(软件防火墙)和华为交换机(硬件)为例:

1. 防火墙访问控制(满足 “网络边界防护” 要求)

Linux iptables 配置(CentOS 7)
  • 核心需求:只开放业务必需端口(如 80/443 Web 端口、22 SSH 端口),拒绝所有其他端口访问;限制 SSH 登录源 IP(仅允许公司办公网)

  • 步骤:

  1. 清空现有规则(生产环境建议先备份):
iptables-save > /etc/sysconfig/iptables.bak  # 备份现有规则
iptables -F  # 清空所有规则
iptables -X  # 删除自定义链
  1. 配置基础规则(允许回环、已建立连接、ICMP):
iptables -A INPUT -i lo -j ACCEPT  # 允许回环接口(本地通信)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  # 允许已建立连接
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT  # 允许ping(可选,方便运维排查)
  1. 配置业务端口规则(仅允许办公网访问 SSH):
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT  # 仅公司办公网(192.168.1.0/24)可访问SSH
iptables -A INPUT -p tcp --dport 80 -j ACCEPT  # 允许所有IP访问Web(80端口)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT  # 允许所有IP访问HTTPS(443端口)
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited  # 拒绝所有其他入站请求
  1. 保存规则并设置开机启动:
service iptables save  # 保存规则到/etc/sysconfig/iptables
systemctl enable iptables  # 开机启动iptables
  1. 验证:iptables -L -n,查看规则是否生效;用非办公网 IP 访问 SSH,提示 “连接被拒绝”
华为交换机 VLAN 划分(DMZ 区配置)
  • 核心需求:将 Web 服务器放在 DMZ 区,数据库服务器放在内网区,仅允许 DMZ 区访问内网区的 3306 端口(数据库),禁止内网区访问 DMZ 区

  • 步骤:

  1. 创建 VLAN 并划分端口:
vlan batch 10 20  # 创建VLAN10(DMZ区)、VLAN20(内网区)
interface GigabitEthernet 0/0/1  # Web服务器连接端口
port access vlan 10  # 划入DMZ区(VLAN10)
interface GigabitEthernet 0/0/2  # 数据库服务器连接端口
port access vlan 20  # 划入内网区(VLAN20)
  1. 配置 ACL 规则(限制 VLAN 间访问):
acl number 3000  # 创建ACL 3000
rule permit tcp source vlan 10 destination vlan 20 destination-port eq 3306  # 允许DMZ区访问内网区3306端口
rule deny ip source vlan 20 destination vlan 10  # 禁止内网区访问DMZ区
interface Vlanif 10  # 进入DMZ区VLAN接口
traffic-filter outbound acl 3000  # 应用ACL规则
  1. 验证:在 Web 服务器(VLAN10)上telnet 数据库IP 3306,连接成功;在内网 PC(VLAN20)上ping Web服务器IP,提示 “请求超时”

2. 恶意代码防护(满足 “恶意代码防范” 要求)

  • Linux 服务器:安装 ClamAV(开源杀毒软件),每周扫描一次
yum install -y clamav clamav-update  # 安装ClamAV
freshclam  # 更新病毒库
clamscan -r / --log=/var/log/clamav/scan.log  # 全盘扫描,日志存到/var/log/clamav
# 设置定时任务(每周日凌晨2点扫描)
echo "0 2 * * 0 /usr/bin/clamscan -r / --log=/var/log/clamav/scan.log" >> /var/spool/cron/root
  • 避坑点:扫描时排除业务目录(如/var/www/html),避免占用 IO 影响业务,可加–exclude=/var/www/html参数。

四、实操模块 3:数据安全配置(备份 + 加密,附脚本)

数据安全是等保合规的 “关键分”,重点搞定 “定期备份、敏感加密”,以 MySQL 数据库和 Linux 文件为例:

1. 数据备份(满足 “数据备份与恢复” 要求)

MySQL 数据库备份(每日全量 + 增量备份)
  • 核心要求:核心数据每日全量备份,保留至少 6 个月;每月做 1 次异地备份(等保三级要求)

  • 步骤:

  1. 编写全量备份脚本(mysql_full_backup.sh):
#!/bin/bash
BACKUP_DIR="/data/backup/mysql/full"  # 本地备份目录
REMOTE_DIR="backup@192.168.2.100:/data/backup/mysql/remote"  # 异地备份目录(另一台服务器)
DATE=$(date +%Y%m%d)
# 创建备份目录
[ ! -d $BACKUP_DIR ] && mkdir -p $BACKUP_DIR
# 全量备份(用mysqldump)
mysqldump -uroot -p"数据库密码" --all-databases --single-transaction --routines --triggers > $BACKUP_DIR/mysql_full_$DATE.sql
# 压缩备份文件
gzip $BACKUP_DIR/mysql_full_$DATE.sql
# 复制到异地备份目录(用scp,需配置免密登录)
scp $BACKUP_DIR/mysql_full_$DATE.sql.gz $REMOTE_DIR/
# 删除6个月前的本地备份(避免磁盘满)
find $BACKUP_DIR -name "mysql_full_*.sql.gz" -mtime +180 -delete
# 记录备份日志
echo "MySQL全量备份完成:$DATE,文件:mysql_full_$DATE.sql.gz" >> /var/log/mysql_backup.log
  1. 赋予脚本执行权限:chmod +x mysql_full_backup.sh

  2. 设置定时任务(每日凌晨 1 点执行):

echo "0 1 * * * /data/scripts/mysql_full_backup.sh" >> /var/spool/cron/root
  1. 验证:ls /data/backup/mysql/full,查看是否生成当日备份文件;登录异地服务器,查看/data/backup/mysql/remote是否有同步文件

2. 数据加密(满足 “敏感数据保护” 要求)

Linux 文件加密(敏感配置文件,如数据库密码文件)
  • 核心需求:/etc/my.cnf(MySQL 配置文件)中若存密码,需加密存储

  • 步骤:

  1. 用 openssl 加密文件:
openssl enc -aes-256-cbc -salt -in /etc/my.cnf -out /etc/my.cnf.enc  # 加密my.cnf
rm -rf /etc/my.cnf  # 删除原明文文件
  1. 使用时解密(如修改配置):
openssl enc -d -aes-256-cbc -in /etc/my.cnf.enc -out /etc/my.cnf  # 解密
# 修改完成后重新加密
openssl enc -aes-256-cbc -salt -in /etc/my.cnf -out /etc/my.cnf.enc
rm -rf /etc/my.cnf
  1. 记录密钥:将加密密钥存到安全设备(如 Ukey),避免明文存储(等保禁止密钥明文存放)

五、实操模块 4:日志审计配置(ELK + 日志留存,附模板)

日志审计是等保合规的 “追溯分”,重点搞定 “留存 6 个月、包含关键信息、可分析”,以 ELK Stack(Elasticsearch+Logstash+Kibana)为例:

1. 日志收集范围(等保要求必须包含的日志)

日志类型日志来源关键信息(必须包含)
系统日志Linux /var/log/messages、Windows “事件查看器”用户登录(成功 / 失败)、进程启动 / 关闭、系统重启
安全日志Linux /var/log/secure、iptables 日志SSH 登录、sudo 操作、防火墙规则匹配(如拒绝访问)
业务日志Web 服务器(Nginx /var/log/nginx/access.log)、数据库(MySQL 慢查询日志)访问 IP、请求 URL、操作结果(成功 / 失败)、时间戳

2. ELK 配置(实现日志留存与分析)

步骤 1:安装 ELK(以 CentOS 7 为例,用 Docker 简化部署)
# 1. 安装Docker(略,参考Docker官方文档)
# 2. 下载ELK Docker Compose模板
curl -L https://github.com/deviantony/docker-elk/archive/refs/heads/main.zip -o docker-elk.zip
unzip docker-elk.zip && cd docker-elk-main
# 3. 修改Logstash配置(收集Linux secure日志)
vim logstash/pipeline/logstash.conf

Logstash 配置模板(收集/var/log/secure日志):

input {
  file {
    path => "/var/log/secure"  # 日志路径(需挂载到Docker容器)
    start_position => "beginning"
    sincedb_path => "/dev/null"  # 每次重启重新读取所有日志(可选)
    tags => ["linux-secure"]  # 打标签,方便Kibana筛选
  }
}
filter {
  grok {
    match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{HOSTNAME:hostname} %{WORD:process}%{SPACE}%{NUMBER:pid}%{GREEDYDATA:message}" }  # 解析日志格式
  }
  date {
    match => ["timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss"]  # 时间格式匹配
    target => "@timestamp"
  }
}
output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]  # 输出到Elasticsearch
    index => "linux-secure-%{+YYYY.MM.dd}"  # 按日期创建索引
  }
  stdout { codec => rubydebug }  # 控制台输出(调试用)
}
步骤 2:启动 ELK 并配置日志留存
# 1. 启动容器(后台运行)
docker-compose up -d
# 2. 配置Elasticsearch索引生命周期(留存6个月)
# 访问Kibana:http://ELK服务器IP:5601,进入“Stack Management”→“Index Lifecycle Policies”
# 创建策略:设置“hot阶段”(1天)→“warm阶段”(30天)→“delete阶段”(180天,即6个月)
# 将“linux-secure-%{+YYYY.MM.dd}”索引关联到该策略
步骤 3:验证日志审计
  1. 访问 Kibana,进入 “Discover”,选择 “linux-secure-*” 索引,查看/var/log/secure日志是否正常收集;

  2. 测试异常操作:用错误密码登录 SSH,在 Kibana 中搜索 “Failed password”,能定位到 “攻击 IP、时间、失败次数”,满足等保 “可追溯” 要求。

六、等保整改实战案例:某电商企业 30 天合规落地

背景

某 50 人电商企业,有 2 台 Web 服务器(CentOS 7)、1 台 MySQL 数据库服务器(CentOS 7)、1 台华为交换机,测评发现 8 项不合规,运维团队 30 天完成整改:

不合规项整改措施用到的本文方法整改时长
服务器 root 远程登录开启禁用 root 远程登录,配置 sudo 提权主机安全→账号安全→Linux 服务器配置1 天
防火墙未限制 SSH 源 IPiptables 配置仅允许办公网访问 22 端口网络安全→iptables 配置1 天
数据库未做异地备份编写备份脚本,同步到异地服务器数据安全→MySQL 备份2 天
日志仅留存 1 个月ELK 配置索引生命周期,留存 6 个月日志审计→ELK 配置3 天
服务器存在 Log4j 高危漏洞用 Lynis 扫描,批量升级补丁主机安全→补丁管理1 天

整改成果

  • 测评通过率:从 58% 提升至 96%,顺利通过等保三级测评;

  • 运维效率:用 Ansible+ELK 实现自动化整改与日志管理,后续每月只需 1 小时维护;

  • 业务影响:所有整改均在凌晨低峰期操作,未中断业务(如补丁升级前做快照,失败可回滚)。

七、运维必看的 3 个合规避坑点

  1. 改配置前必做备份:比如修改sshd_config前备份cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak,修改 iptables 前备份规则,避免配置错误导致业务中断;

  2. 优先用开源工具降成本:等保不强制用商业工具,Lynis(漏洞扫描)、ClamAV(杀毒)、ELK(日志)都是开源免费的,能满足三级合规要求,比商业工具省 5-10 万元;

  3. 日志留存别 “走形式”:等保测评会抽查 6 个月前的日志,若仅存 1 个月,需重新整改;建议用 ELK 或 Graylog,自动管理日志生命周期,无需手动删改。

最后:等保合规不是 “一次性任务”,而是 “日常运维的一部分”

很多运维觉得等保是 “临时整改”,测评通过后就恢复原样 —— 这是最大的误区。等保 2.0 的核心是 “持续合规”,比如补丁要每月扫描、备份要每日执行、日志要实时收集,这些都能融入日常运维:

  • 把 “账号安全配置” 加入服务器初始化脚本,新服务器上线自动满足合规;

  • 把 “漏洞扫描” 加入每周运维计划,用 Lynis+Ansible 批量执行,无需手动操作;

  • 把 “日志审计” 接入运维监控,异常登录(如异地 IP 登录 SSH)实时告警,既满足合规,又提升安全能力。

等保合规不是 “负担”,而是帮你规范运维流程、降低安全风险的 “工具”。按本文的步骤操作,你不仅能通过测评,还能让运维工作更高效、更安全 —— 这才是等保的真正价值。

网络安全学习资料分享

为了帮助大家更好的学习网络安全,我把我从一线互联网大厂薅来的网络安全教程及资料分享给大家,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,朋友们如果有需要这套网络安全教程+进阶学习资源包,可以扫码下方二维码限时免费领取(如遇扫码问题,可以在评论区留言领取哦)~

在这里插入图片描述

在这里插入图片描述

更多推荐