在Linux系统中实现等保(信息安全等级保护)要求的"三权分立"(系统管理员、安全管理员、审计管理员)账号设置,需要按照最小权限原则进行权限划分。以下是具体实施方案:
角色 | 职责范围 | 对应Linux权限 |
---|---|---|
系统管理员 | 日常系统运维、资源配置、网络管理、普通用户管理 | sudo权限限于:软件安装/卸载、服务管理、磁盘管理、网络配置、用户管理(非特权) |
安全管理员 | 安全策略配置、权限分配、安全审计配置、安全事件处理 | sudo权限限于:防火墙/SElinux配置、密码策略、文件权限修改、审计规则查看 |
审计管理员 | 审计日志收集与分析、监控系统操作、审计策略配置(无权操作被审计内容) | 仅能查看日志文件(/var/log/)、使用审计工具(如auditd),但无系统修改权限 |
# 创建账户(禁止交互式登录)
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
编辑/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
# 设置日志目录权限
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 # 启用审计
# 在/etc/ssh/sshd_config中限制角色登录
AllowUsers sysadmin secadmin auditadmin
# 为每个角色配置独立操作日志
sudo echo "export PROMPT_COMMAND='whoami>> /var/log/role_audit.log'" >> /etc/profile
rm
、chmod
等修改命令auditd
监控特权命令执行通过以上配置,可满足等保2.0三级及以上系统对"三权分立"的要求。实际部署时需根据具体业务需求调整权限命令列表。