Linux教程
Linux教程:http://www.fdlly.com/m/linux
关闭SELinux
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到
为什么要关闭SELinux
SELinux的开发原则是基于最小权限原则,所以你需要非常清楚你的各项操作都需要哪些访问权限,否则可能导致服务器安装新软件时导致权限不足从而产生意想不到的麻烦。
除非你非常熟悉SELinux,否则建议关闭,对于初学者而言,直接关闭即可。
很多人运维人员讨厌SELinux是因为它在本来已经很安全的Linux上,凌驾于root权限之上,设置了很多额外的条条框框;如果你了解这些条条框框,那还好;但如果不了解,那SELinux可能并没有帮什么忙,却给你带来了很多不确定因素
总结
- SELinux学习难度较大
- SELinux配置复杂
- 部分操作权限领凌驾于Root之上
##查看SELinux状态
第一种方式是使用getenforce命令查看SELinux的状态
[root@localhost ~]# getenforce
一般会返回三种状态:
- Enforcing (记录警告且阻止可疑行为)
- Permissive (代表仅记录安全警告但不阻止可疑行为)
- Disabled (禁用状态)
除了使用getenforce命令查看状态外,还可以使用/usr/sbin/sestatus -v
命令查看SELinux状态
[root@localhost ~]# /usr/sbin/sestatus -v
该命令返回
SELinux status: enabled #SELinux状态
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
Process contexts:
Current context: unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Init context: system_u:system_r:init_t:s0
/usr/sbin/sshd system_u:system_r:sshd_t:s0-s0:c0.c1023
File contexts:
Controlling terminal: unconfined_u:object_r:user_devpts_t:s0
/etc/passwd system_u:object_r:passwd_file_t:s0
/etc/shadow system_u:object_r:shadow_t:s0
/bin/bash system_u:object_r:shell_exec_t:s0
/bin/login system_u:object_r:login_exec_t:s0
/bin/sh system_u:object_r:bin_t:s0 -> system_u:object_r:shell_exec_t:s0
/sbin/agetty system_u:object_r:getty_exec_t:s0
/sbin/init system_u:object_r:bin_t:s0 -> system_u:object_r:init_exec_t:s0
/usr/sbin/sshd system_u:object_r:sshd_exec_t:s0
##临时关闭SELinux
这种方式只能临时关闭SELinux,Linux重启后SELinux恢复原状态
[root@localhost ~]# setenforce 0 #设置SELinux 成为Permissive (代表仅记录安全警告但不阻止可疑行为)
[root@localhost ~]# setenforce 1 #设置SELinux 成为Enforcing (记录警告且阻止可疑行为)
##永久改变SELinux状态
编辑SELinux配置文件
[root@localhost ~]# vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
将SELINUX=enforcing
改为SELINUX=disabled
:wq
保存退出