AIX如何安全配置权限

wen 网络安全 8

本文目录导读:

AIX如何安全配置权限

  1. 理解AIX核心权限机制
  2. 关键系统文件和目录的权限加固
  3. 使用ACL实现精细访问控制
  4. 管理SUID/SGID程序
  5. 使用RBAC(基于角色的访问控制)替代全能的root
  6. 用户账户安全配置(/etc/security/user
  7. 监控与审计
  8. 安全配置最佳实践流程图

在AIX系统中,安全配置权限的核心在于遵循最小权限原则(Principle of Least Privilege),即只授予用户完成其任务所必需的最小权限,以下是从系统层面、文件层面和用户层面进行安全权限配置的详细指南:

理解AIX核心权限机制

  • 标准UNIX权限:所有者 (Owner)、所属组 (Group)、其他用户 (Others),以及读 (r=4)、写 (w=2)、执行 (x=1)。
  • ACL(访问控制列表):AIX 支持 POSIX 和 AIX 扩展 ACL,可以实现比标准权限更精细的控制。
  • 扩展权限:AIX 特有,特别是 (权限集模式,Permission Set Mode),通常涉及 SUID、SGID 和 sticky bit 的特定组合。
  • RBAC(基于角色的访问控制):AIX 支持 RBAC,可以将管理权限(如 shutdownmount)直接授权给用户,而无需给予完全的 root 权限。

关键系统文件和目录的权限加固

这是安全配置的第一步,也是最关键的一步,建议定期检查以下关键项:

文件/目录 建议权限 所有者 安全说明
/etc/passwd 644 root:security 对所有用户可读,但只有 root 可写,切勿使用 777
/etc/security/passwd 600 root:security 极重要,加密密码和密码策略文件,只有 root 可读写。
/etc/security/group 600 root:security 组安全信息。
/etc/security/user 600 root:security 用户属性配置。
/etc/security/environ 600 root:security 环境变量配置。
/etc/security/limits 600 root:security 资源限制。
/etc/inetd.conf 600 root:system 网络服务守护进程配置,只有 root 可管理。
/etc/hosts.equiv 600 root:system 信任主机认证(强烈建议不使用),若存在,必须严格限制。
/.rhosts 600 root:system hosts.equiv,应删除或严格限制。
/var/adm/sulog 600 root:adm su 命令日志,记录谁切换了用户。
/var/adm/wtmp 644 root:adm 登录/登出记录。
/etc/rc.* 启动脚本 755700 root:system 所有启动脚本目录(如 /etc/rc.d/init.d/)权限应为 755,脚本本身应 755 并仅 root 可写。
/tmp 目录 1777 root:system 必须设置粘滞位 (sticky bit),用户只能删除自己的临时文件。

检查与修复命令示例:

# 检查关键文件权限
ls -l /etc/security/passwd /etc/passwd /tmp
# 修正密码文件权限(非常重要)
chmod 600 /etc/security/passwd
chmod 644 /etc/passwd
# 修正 /tmp 缺失的粘滞位
chmod 1777 /tmp

使用ACL实现精细访问控制

当标准权限无法满足需求时(希望一个非组内的用户只读某个文件),使用ACL。

  • 查看ACLaclget /path/to/file
  • 设置ACL
    • 设置单个用户setacl -m user:username:rw- /path/to/file (授予用户 username 读写权限)
    • 设置单个组setacl -m group:groupname:r-- /path/to/file (授予组 groupname 只读权限)
    • 设置默认ACL(针对目录)setacl -d -m user:user1:rwx /path/to/dir (在该目录下新创建的文件自动继承此权限)

安全建议

  • 优先使用ACL而非 chmod 777
  • ACL 提供了比标准位更丰富的可能性(如 deny 规则),可以精确拒绝某用户的访问。
  • 注意:ACL 会覆盖标准 chmod 的效果,使用 ls -l 查看时,权限位后可能会显示 号(表示有ACL)。

管理SUID/SGID程序

SUID/SGID 程序允许普通用户以文件所有者(通常是 root)的身份执行,这是主要的安全风险点。

  • 查找所有SUID程序find / -type f -perm -4000 -ls 2>/dev/null
  • 查找所有SGID程序find / -type f -perm -2000 -ls 2>/dev/null

加固策略

  1. 最小化:移除不必要的SUID/SGID,如果 tar 命令不需要,可以去掉其SUID位:chmod u-s /usr/bin/tar (需确认系统是否依赖)。
  2. 设置特殊的SUID/SGID挂载选项:在 /etc/filesystems 中,为特定文件系统(如 /tmp)设置 nosuid 选项,可以禁止该文件系统上的任何二进制文件使用SUID/SGID:
    /tmp:
        dev = /dev/hd3
        vfs = jfs2
        log = /dev/hd8
        mount = true
        options = nosuid
  3. 监控:定期检查SUID/SGID是否新增,使用脚本比对每周的“已知安全”列表。

使用RBAC(基于角色的访问控制)替代全能的root

不要给所有管理员 root 密码,使用RBAC赋予他们执行特定命令的权限。

  • 创建角色:例如创建一个 sysadm 角色,允许重启系统、查看日志。
    # 创建角色
    mkrole -a authorizations=REBOOT,VIEWLOGS descr="System Admin Role" sysadm
  • 创建权限(Privileges):定义更细粒度的操作(AIX 7.2+ 支持更细粒度的特权)。
  • 授权给用户:将用户加入该角色。
    # 将用户 user1 授权为 sysadm 角色
    setsecattr -c roles=sysadm user user1

实际收益

  • 审计:可以追踪到哪个特定用户执行了特权操作,而不是简单的“root”。
  • 风险降低:即使攻击者拿到了 user1 的密码,他也只能重启系统或查看日志,无法修改密码或安装后门。

用户账户安全配置(/etc/security/user

编辑 /etc/security/user 文件,为每个用户或组设置安全属性。

  • 密码策略
    default:
        minlen = 8        # 最小密码长度
        minalpha = 2      # 最少字母数
        minother = 1      # 最少非字母字符数(如数字、符号)
        maxage = 4        # 密码最长有效期(周),4周约28天。
        histsize = 10     # 记住最近10次密码,防止重复使用
        loginretries = 5  # 登录失败5次后锁定帐户
        lockouttime = 300 # 锁定后等待5分钟才能再次尝试
  • 禁用不需要的登录权限:对于服务账户(如 ftpnobody),设置 login = false 以防止交互式登录。
    ftp:
        login = false
  • 开启密码加密:确保 SYSTEM = "compat""DCE",且 EFFECTIVE_SECTION 使用了强哈希(如 SHA256SHA512),检查 /etc/security/login.cfg 中的 pwd_algorithm 配置,建议设置为 SSHA256SSHA512

监控与审计

没有配置的安全是不完整的,配置完成后需要持续监控。

  • 配置审计子系统
    # 启用审计并监控文件权限变更、登录、su操作
    audit start
    audit query -o event=FILE_Write,S_USER_Login,F_USER_Login | auditstream | more
  • 定期运行检查脚本:使用 authck 或编写自定义脚本来检查文件权限、SUID/SGID列表、用户属性(lsuser)。

安全配置最佳实践流程图

  1. 盘点:列出所有用户、组、管理端点。
  2. 固化:严格锁定加密文件、passwd文件、日志和启动脚本权限(6006441777)。
  3. 最小化:移除不必要的 SUID/SGID;使用 nosuid 挂载临时目录。
  4. 精细化:对需要共享的目录使用 ACL;对特权操作使用 RBAC
  5. 强策略:实施强密码策略、锁定策略、密码历史记录。
  6. 审计:开启审计,定期检查 sulogwtmp,并比对特权文件列表的变化。

特别注意:对于生产环境,建议先在一个非关键系统上测试这些修改,然后使用 mksysb 或 NIM 备份后,在变更窗口内实施,错误的权限配置(如 /etc/security/passwd 变成了 644)可能导致系统无法登录。

抱歉,评论功能暂时关闭!