Selinux是【security-Enhanced Linux】的简称,是美国国家安全局【NSA】和【SCC】开发的Linux的一个扩张强制访问控制安全模块。
因为企业的业务平台的服务器上存储着大量的商务机密,个人资料,个人资料它直接关系到个人隐私问题。特别是政府的网站,作为信息公开的平台,它的安全就更显得重要了。这些连接到互联网的服务器,不可避免的要收到来自世界各地的各种猥亵。最坏的时候我们的服务器被入侵,主页文件被替换,机密文件被盗走。除了来自外部的威胁,内部人员的不法访问,攻击也是不可忽视的。对于这些攻击或者说是威胁,当然有很多的办法,有防火墙,入侵检测系统,打补丁等等。因为Linux也和其他的商用Unix一样,不断地有各类的安全漏洞被发现。
传统的LinuxOS的不足之处。
虽然Linux比起Windows来说,它的可靠性,稳定性要好得多,但是他也是和其他的Unix一样,有着以下这些不足之处。
- 存在特权用户root
- 任何人只要得到root权限,对于真个系统都可以为所欲为,这一点Windows也一样
- 对于文件的访问权限划分不够细
- 在Linux系统里,对于文件的操作,只有【所有者】,【所有组】,【其它】这三类的划分,对于【其它】这一类里的用户再细细的划分的话就没有办法了。
- SUID程序的权限升级
- 如果设置了SUID权限的程序有了漏洞的haul,很容易被攻击者所利用
- DAC(discretionary access control)问题
- 文件目录的所有者可以对文件进行所有的操作,这给系统整体的管理带来了不便。对于以上这些的不足,防火墙,入侵检测系统都是无能为力的。
DAC(discretionary access control,自主访问控制):
DAC机制就是指对象(比如程序,文件或者进程等)的拥有者可以任意的修改或者是授予此对象的权限。例如传统的Linux,Windows等。
MAC(Mandatory access control强制访问控制):
MAC机制是指系统不再允许对象(比如程序、文件或者文件夹等)的拥有者随意修改或授予此对象相应的权限,而是透过强制的方式为每个对象统一授予权限,例如selinux。
selinux的优点:
selinux系统比起通常的Linux系统来,安全性能要高得多,它通过对于用户,进程权限的最小化,即使受到攻击,进程或者用户权限被夺去,也不会对整个系统造成重大影响。在标准Linux中,主体的访问控制属性是与进程通过在内核中的进程结构关联的真实有效的用户和组ID,这些属性通过内核利用大量工具进行保护,包括登录进程和setuid程序,对于文件,文件的inode包括一套访问模式位,文件用户和组ID,以前的访问控制基于读/写/执行这三个控制位,文件所有者,文件所有者所属组,其他人各一套。在selinux中,访问控制属性总是安全上下文三人组形式,所有文件和主体都有一个关联的安全上下文,标准Linux使用进程用户/组ID,文件的访问模式,文件用户/组ID要么可以访问,要么被拒绝,selinux使用进程和客体的安全上下文,需要特别指出的是,因为selinux的主要访问控制特性是类型强制,安全上下文中的类型标识符决定了访问权。若要访问文件,必须同时具有普通访问权限和selinxu访问权限,因此即使可以用超级用户root运行进程,根据进程以及文件或者资源的selinxu安全性上下文可能拒绝访问文件或者资源。
设置开机启动时,selinux的运行模式
[root@iZm5ej5ize8ferkknb8gbeZ source]# cat /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=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted You have new mail in /var/spool/mail/root [root@iZm5ej5ize8ferkknb8gbeZ source]#
selinux参数值:
enforcing强行(报警并限制)
permissive许可(报警不限制)
disabled禁用
selinuxtype参数值:
targeted保护网络相关服务
strict完整的保护功能,包含网络服务,一般指令以及应用程序
mis多级别模块化
查看SElinux的当前状态,并对当前状态做调整
[root@iZm5ej5ize8ferkknb8gbeZ source]# sestatus
SELinux status: disabled #默认关闭
[root@iZm5ej5ize8ferkknb8gbeZ source]#
查看安全上下文ls Z(查看文件的);ps Z(查看进程的)
[root@iZm5ej5ize8ferkknb8gbeZ source]# sestatus SELinux status: disabled [root@iZm5ej5ize8ferkknb8gbeZ source]# ls -Z /etc/passwd -rw-r--r-- root root ? /etc/passwd [root@iZm5ej5ize8ferkknb8gbeZ source]# ls -Zld /mnt/ drwxr-xr-x. 2 system_u:object_r:mnt_t:s0 root root 4096 Dec 26 2016 /mnt/ [root@iZm5ej5ize8ferkknb8gbeZ source]#
查看系统默认的安全上下文
[root@iZm5ej5ize8ferkknb8gbeZ source]# semanage fcontext -l
[root@iZm5ej5ize8ferkknb8gbeZ source]#
[root@iZm5ej5ize8ferkknb8gbeZ source]# getenforce
Disabled
[root@iZm5ej5ize8ferkknb8gbeZ source]#
1.临时关闭(不用重启)
setenforce 0
2.修改配置文件
将SELINUX=enforcing改为SELINUX=disabled
如果测试的话一般就关闭Selinux,正式环境的话可以选择开启Selinux,否则容易被黑客攻击