权限控制系统设计:Linux访问控制模型构建与实施

NarrowNora +0/-0 0 0 正常 2025-12-24T07:01:19 访问控制 · Linux内核 · 权限控制

权限控制系统设计:Linux访问控制模型构建与实施

在Linux系统中,权限控制是安全防护的核心环节。本文将介绍基于SELinux和AppArmor的访问控制模型构建方法。

SELinux策略配置示例

首先启用SELinux强制模式:

# 编辑/etc/selinux/config
SELINUX=enforcing
# 重启系统生效

创建自定义策略文件/etc/selinux/targeted/contexts/files/custom.te

module custom 1.0;

require {
    type httpd_t;
    type var_t;
    class file { read write create unlink };
}

# 允许httpd进程读写/var目录
allow httpd_t var_t:file { read write create unlink };

编译并加载策略:

checkmodule -M -m -o custom.mod custom.te
semodule_package -o custom.pp -i custom.mod
sudo semodule -i custom.pp

AppArmor配置实践

在Ubuntu系统中配置AppArmor:

# 创建配置文件
sudo nano /etc/apparmor.d/usr.bin.nginx

配置内容:

#include <tunables/global>

/usr/bin/nginx {
    #include <abstractions/base>
    #include <abstractions/nameservice>
    
    # 读取配置文件
    /etc/nginx/** r,
    /etc/nginx/nginx.conf r,
    
    # 写入日志目录
    /var/log/nginx/** rw,
    /var/lib/nginx/** rw,
    
    # 网络访问权限
    network inet stream,
}

加载配置:

sudo apparmor_parser -r /etc/apparmor.d/usr.bin.nginx

权限验证测试

使用以下命令验证策略生效:

# 检查SELinux状态
sestatus

# 查看进程上下文
ps -eZ | grep nginx

# 测试文件访问
sudo touch /var/log/nginx/test.log

通过以上配置,可有效实现基于角色的访问控制(RBAC)和强制访问控制(MAC),确保系统安全。

推广
广告位招租

讨论

0/2000
Trudy278
Trudy278 · 2026-01-08T10:24:58
SELinux策略配置虽严谨,但需注意模块化管理与回滚机制,建议结合ansible或terraform进行策略版本控制,避免单点故障导致系统不可用。
LoudDiana
LoudDiana · 2026-01-08T10:24:58
AppArmor配置更贴近应用实际需求,但易因路径规则不全引发权限拒绝问题。建议在生产环境前通过aa-notify监控并完善访问规则,确保稳定性。