SELinux概念
安全加强的Linux,早期的Linux系统安全由系统管理员控制.SELinux就是一些安全规则的集合,类似于人类生活中的法律.
DAC: 自由访问控制(以前的linux版本)
DAC环境下的进程是无束缚的
MAC: 强制访问控制(即使是root用户也会受到MAC的控制)
MAC环境下策略的规则决定控制的严格程度
MAC环境下进程可以被限制的
策略用来定义被限制的进程能够使用哪些资源(文件和端口)
默认情况下,没有被明确允许的行为会被拒绝
SELinux工作类型
SELinux有四种工作类型:
strict: centos5,每个进程都受到selinux的控制
targeted: 用来保护常见的网络服务,仅有限进程受到selinux控制,只监控容易 被入侵的进程,centos4只保护13个服务,centos5保护88个服务
minimum:centos7,修改的targeted,只对选择的网络服务
mls:提供MLS(多级安全)机制的安全性
targeted为默认类型,minimum和mls稳定性不足,未加以应用,strict已不再使用
SELinux安全上下文
所有的文件和端口资源和进程都具有安全标签: 安全上下文(security context)
规定每个进程只能访问哪些文件和端口
chcon -t var_log_t /var/log/messages
restorecon /var/log/messages
semanage fcontext -l | grep /var/log/messages
semanage fcontext -a -t httpd_sys_content_t "/data/html(/.*)?"
semanage命令需要安装软件包 policycoreutils-python
启用和禁用SELinux
查看当前系统是否启用了SELinux 查看文件或者进程信息加 -Z 选项,如果LABEL信息不为空则表示已经启动了SELinux,如果为空则表示禁用了SELinux.
1 [root@centos7 ~]# ll -Z guess.sh 2 -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 guess.sh 3 [root@centos7 ~]# ps auxZ 4 LABEL USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 5 system_u:system_r:init_t:s0 root 1 0.0 0.3 193704 6844 ? Ss 15:55 0:04 /usr/lib/systemd/ 6 system_u:system_r:kernel_t:s0 root 2 0.0 0.0 0 0 ? S 15:55 0:00 [kthreadd] 7 system_u:system_r:kernel_t:s0 root 3 0.0 0.0 0 0 ? S 15:55 0:00 [ksoftirqd/0] 8 system_u:system_r:kernel_t:s0 root 4 0.1 0.0 0 0 ? S 15:55 0:18 [kworker/0:0] 9 system_u:system_r:kernel_t:s0 root 5 0.0 0.0 0 0 ? S< 15:55 0:00 [kworker/0:0H] 10 system_u:system_r:kernel_t:s0 root 7 0.0 0.0 0 0 ? S 15:55 0:00 [migration/0]