Skip to content

等保-Linux服务器三权分立配置指南

文档版本:v1.0
创建日期:2025年
适用范围:Linux服务器等保合规配置
维护责任:网络信息安全

一、概述

三级等保要求实现"三权分立"管理模式,即将系统管理权限分离为配置权、授权权和审计权,分别由系统管理员、安全管理员和审计管理员负责,确保权限制衡,避免权力过度集中带来的安全风险。

1.1 合规要求

  • 符合《信息安全等级保护基本要求》第三级标准
  • 实现管理用户的权限分离和最小权限原则
  • 建立有效的权限制衡机制

二、三权分立原理

2.1 三员职责划分

2.1.1 系统管理员(配置权)

主要职责:

  • 系统资源配置和运行管理
  • 用户身份管理
  • 系统加载和启动管理
  • 系统运行异常处理
  • 数据和设备备份与恢复
  • 日常运维工作

权限范围:

  • 软件包管理(rpm, yum等)
  • 系统服务管理(systemctl等)
  • 存储设备管理(fdisk, mount等)

2.1.2 安全管理员(授权)

主要职责:

  • 安全策略配置
  • 安全参数设置
  • 主体授权管理
  • 可信验证策略配置
  • 用户权限管理
  • 安全事件处理

权限范围:

  • 权限委派(visudo, chmod等)
  • 进程管理(kill, killall等)
  • 网络配置(iptables, ifconfig等)

2.1.3 审计管理员(审计权)

主要职责:

  • 审计记录分析
  • 审计策略配置
  • 审计日志管理
  • 操作行为监督
  • 违规行为发现和报告

权限范围:

  • 审计工具使用(aureport, ausearch等)
  • 日志查看和分析
  • 审计配置管理

2.2 权限分离原则

  • 互斥性:同一设备的系统管理员和审计管理员不能由同一人兼任
  • 制衡性:安全管理员和审计管理员不得由同一人兼任
  • 最小权限:每个管理员只拥有履行职责所需的最小权限
  • 职责分离:不同管理员负责不同的安全职能

三、实施步骤

以OpenEuler 22.03 LTS SP4 发行版举例

3.1 第一步:创建三员账户

bash
# 1. 创建系统管理员账户
useradd sysadmin
passwd sysadmin

# 2. 创建安全管理员账户
useradd secadmin
passwd secadmin

# 3. 创建审计管理员账户
useradd auditadmin
passwd auditadmin

3.2 第二步:配置sudo权限

编辑sudo配置文件:

bash
visudo

添加以下配置内容:

bash
# ==================== 系统管理员权限配置 ====================
# 软件包管理权限
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum, /usr/bin/dnf

# 系统服务管理权限
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig, \
                      /usr/bin/systemctl start, /usr/bin/systemctl stop, \
                      /usr/bin/systemctl reload, /usr/bin/systemctl restart, \
                      /usr/bin/systemctl status, /usr/bin/systemctl enable, \
                      /usr/bin/systemctl disable

# 存储设备管理权限
Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, \
                     /sbin/partprobe, /bin/mount, /bin/umount, \
                     /sbin/mkfs, /sbin/fsck

# 系统管理员权限分配
sysadmin ALL=(root) SOFTWARE, SERVICES, STORAGE

# ==================== 安全管理员权限配置 ====================
# 权限委派管理
Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, \
                        /bin/chgrp, /usr/sbin/useradd, /usr/sbin/userdel, \
                        /usr/sbin/usermod, /usr/sbin/groupadd, /usr/sbin/groupdel

# 进程管理权限
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, \
                       /usr/bin/killall, /bin/ps, /usr/bin/top

# 网络管理权限
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, \
                        /sbin/dhclient, /usr/bin/net, /sbin/iptables, \
                        /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, \
                        /sbin/mii-tool, /usr/sbin/ufw

# 安全管理员权限分配
secadmin ALL=(root) DELEGATING, PROCESSES, NETWORKING

# ==================== 审计管理员权限配置 ====================
# 审计工具权限
Cmnd_Alias AUDIT_TOOLS =  /usr/sbin/aureport, /usr/sbin/autrace, /usr/sbin/ausearch, \
                    /usr/sbin/audispd, /usr/sbin/auditctl
                    
Cmnd_Alias AUDIT_LOG = /usr/bin/cat /var/log/*, /usr/bin/less /var/log/*, /usr/bin/tail /var/log/*, /usr/bin/head /var/log/*
														
                                
#审计管理员权限分配
auditadmin ALL=(root) AUDIT_TOOLS, AUDIT_LOG

还需单独给审计用户 查看日志的权限;日志文件本身的权限通常是 600/640,普通用户读不了。这里需要配合组或 ACL 来开放审计用户的只读权限,或者改用 journalctl 并把用户加入 systemd-journal 组。

  • 选择,加入系统日志组的方式
usermod -aG systemd-journal auditadmin

启用系统审计:

bash
# 启动审计服务
systemctl enable auditd
systemctl start auditd

# 配置审计规则
echo "-w /etc/passwd -p wa -k user_modification" >> /etc/audit/rules.d/audit.rules
echo "-w /etc/shadow -p wa -k password_modification" >> /etc/audit/rules.d/audit.rules
echo "-w /etc/sudoers -p wa -k privilege_modification" >> /etc/audit/rules.d/audit.rules

3.3 第三步:验证配置

bash
# 检查sudo配置语法
visudo -c

四、权限配置详解

4.1 系统管理员权限详解

权限类别命令示例用途说明
软件包管理sudo yum install package安装、更新、删除软件包
服务管理sudo systemctl restart service启动、停止、重启系统服务
存储管理sudo mount /dev/sdb1 /mnt挂载、卸载存储设备

4.2 安全管理员权限详解

权限类别命令示例用途说明
用户管理sudo useradd newuser创建、删除、修改用户账户
权限管理sudo chmod 755 /path/file修改文件和目录权限
网络安全sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT配置防火墙规则

4.3 审计管理员权限详解

权限类别命令示例用途说明
审计查询sudo ausearch -k login搜索特定审计事件
审计报告sudo aureport --auth生成认证相关审计报告
日志查看sudo tail -f /var/log/secure实时查看安全日志

五、测试验证

5.1 系统管理员权限测试

bash
# 切换到系统管理员账户
su - sysadmin

# 测试软件包管理权限
sudo yum list installed

# 测试服务管理权限
sudo systemctl status sshd

# 测试存储管理权限
sudo df -h

# 测试无权限操作(应该失败)
sudo iptables -L  # 应该被拒绝

5.2 安全管理员权限测试

bash
# 切换到安全管理员账户
su - secadmin

# 测试用户管理权限
sudo useradd testuser

# 测试权限管理
sudo chmod 644 /tmp/testfile

# 测试删除用户及其用户家目录
sudo userdel -r testuser

# 测试网络管理权限
sudo iptables -L

# 测试无权限操作(应该失败)
sudo yum install package  # 应该被拒绝

5.3 审计管理员权限测试

bash
# 切换到审计管理员账户
su - auditadmin

# 测试审计查询权限
sudo ausearch -ts today

# 测试日志查看权限
sudo tail /var/log/secure

# 测试审计报告生成
sudo aureport --summary

# 测试无权限操作(应该失败)
sudo systemctl restart sshd  # 应该被拒绝

六、相关法规标准

  • 《信息安全等级保护基本要求》(GB/T 22239-2019)
  • 《信息安全等级保护实施指南》(GB/T 25058-2019)
  • 《中华人民共和国计算机信息系统安全保护条例》
最近更新

采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟