Skip to main content

SELinux

  • Secure Enhanced Linux,工作于Linux内核中
  • DAC: 自主访问控制
  • MAC: 强制访问控制

SELinux有两种工作级别:

  • strict:每个进程都受到selinux的控制
  • targeted:仅有限个进程受到selinux控制
    • 只监控容易被入侵的进程

sandbox

  • subject operation object

    • subjecst: 进程

    • object: 进程、文件

      • 文件:open,read,write,close,chown,chmod
    • subject: domain

    • object: type

SELinux为每个文件提供了安全标签,也为进程提供了安全标签

  • user:role:type:
    • user: SELinux的 user
    • role: 角色
    • type: 类型
# ls -Z
# ps -efZ

SELinux规则库:

  • 规则:哪种域能访问哪种或哪些种类型内文件

配置SELinux:

  • SELinux是否启用
  • 给文件重新打标
  • 设定某些布尔型特性

SELinux的状态:

  • enforcing:强制,每个受限的进程都必然受限
  • permissive:启用,每个受限的进程选项操作不会被禁止,但会被记录于审计日志
  • disabled:关闭

相关命令:

  • # getenforce:获取selinux当前状态

  • # setenforce 0 | 1

    • 0:设置为permissive
    • 1:设置为enforcing
  • 此设定:重启系统后无效

配置文件/etc/sysconfig/selinux, /etc/selinux/config

  • SELINUX={disabled|enforcing|permissive}

给文件重新打标

  • chcon - change file SELinux secrity context

  • chcon [OPTION]... CONTEXT FILE...

  • chcon [OPTION]... [-u USER][-R ROLE] [-T TYPE] FILE...

  • chcon [OPTION]... --reference=RFILE FILE...

    • -R:递归打标
  • chcon -t user_tmp_t home.txt

  • 还原文件的默认标签:# restorecon [-R] /path/to/somewhere

  • 布尔型规则:

    • setsebool
    • getsebool

getsebool命令:

# getsebool [-a] [boolean]

setsebool命令:

setsebool [-P] boolean value

-P 保存在策略库当中,永久有效

# getsebool ftp_home_dir 1|on

日志文件:# tail /var/log/aduit/audit.log