等保-linux-三权分立账号设置,系统管理员、安全管理员、审计管理员
在Linux系统中实现等保(信息安全等级保护)要求的"三权分立"(系统管理员、安全管理员、审计管理员)账号设置,需要按照最小权限原则进行权限划分。以下是具体实施方案:
1. 账号角色定义
角色 | 职责范围 | 对应Linux权限 |
---|---|---|
系统管理员 | 日常系统运维、资源配置、网络管理、普通用户管理 | sudo权限限于:软件安装/卸载、服务管理、磁盘管理、网络配置、用户管理(非特权) |
安全管理员 | 安全策略配置、权限分配、安全审计配置、安全事件处理 | sudo权限限于:防火墙/SElinux配置、密码策略、文件权限修改、审计规则查看 |
审计管理员 | 审计日志收集与分析、监控系统操作、审计策略配置(无权操作被审计内容) | 仅能查看日志文件(/var/log/)、使用审计工具(如auditd),但无系统修改权限 |
2. 具体实施步骤
(1) 创建三个角色账户
# 创建账户(禁止交互式登录)
sudo useradd -s /sbin/nologin sysadmin # 系统管理员
sudo useradd -s /sbin/nologin secadmin # 安全管理员
sudo useradd -s /sbin/nologin auditadmin # 审计管理员# 设置强密码(需符合等保复杂度要求)
sudo passwd sysadmin
sudo passwd secadmin
sudo passwd auditadmin
(2) 配置sudo权限
编辑/etc/sudoers
(建议使用visudo
命令):
# 系统管理员权限(示例)
sysadmin ALL=(ALL) /usr/bin/apt,/usr/bin/yum,/usr/bin/systemctl,/usr/sbin/useradd,/usr/sbin/userdel,/sbin/ifconfig# 安全管理员权限(示例)
secadmin ALL=(ALL) /usr/sbin/iptables,/usr/sbin/setsebool,/usr/bin/passwd,/usr/bin/chmod,/usr/sbin/ausearch# 审计管理员权限(仅读权限)
auditadmin ALL=(ALL) /usr/bin/cat /var/log/*,/usr/sbin/ausearch,/usr/bin/less /var/log/*或者使用下面的权限控制
#系统管理员
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
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
sysadmin ALL=(root) SOFTWARE,SERVICES,STORAGE#安全管理员
Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
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
secadmin ALL=(root) DELEGATING,PROCESSES,NETWORKING#审计管理员的权限
auditadmin ALL=(root) NOPASSWD:/usr/sbin/aureport,NOPASSWD:/usr/sbin/autrace,NOPASSWD:/usr/sbin/ausearch,NOPASSWD:/usr/sbin/audispd,NOPASSWD:/usr/sbin/auditctl
测试配置是否正确
visudo -c
(3) 配置审计日志保护
# 设置日志目录权限
sudo chown -R root:auditadmin /var/log
sudo chmod -R 750 /var/log
sudo chmod 640 /var/log/*.log# 安装并配置auditd(审计守护进程)
sudo apt-get install auditd
sudo auditctl -e 1 # 启用审计
(4) 配置SSH访问控制
# 在/etc/ssh/sshd_config中限制角色登录
AllowUsers sysadmin secadmin auditadmin
(5) 启用历史操作记录
# 为每个角色配置独立操作日志
sudo echo "export PROMPT_COMMAND='whoami>> /var/log/role_audit.log'" >> /etc/profile
3. 权限验证要点
- 系统管理员:应能管理用户但无法修改审计规则或查看敏感日志
- 安全管理员:应能配置防火墙但无法安装软件或查看其他用户的操作日志
- 审计管理员:应能查看所有日志但无法执行
rm
、chmod
等修改命令
4. 等保合规要求
- 账号唯一性:禁止共享账号,每个管理员使用独立账户
- 权限分离:确保三个角色权限无交叉(尤其注意审计员不能有写权限)
- 日志留存:审计日志至少保留6个月,建议配置远程日志服务器
- 定期审查:每季度检查权限分配和日志完整性
5. 增强建议
- 配置堡垒机进行集中权限管理
- 部署SElinux增强权限控制
- 使用
auditd
监控特权命令执行 - 对sudo操作进行二次认证(如配置pam_tty_audit)
通过以上配置,可满足等保2.0三级及以上系统对"三权分立"的要求。实际部署时需根据具体业务需求调整权限命令列表。