日期:2014-05-16  浏览次数:20895 次

通过两个案例初步了解Linux下selinux的安全机制工作机制

通过两个案例初步了解Linux下selinux的安全机制工作机制

SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制 (MAC)系统。对于目前可用的 Linux 安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。

selinux默认配置在/etc/sysconfig/selinux里

默认有三种级别

enforcing级别:Linux下selinux所设置的安全策略都会被启用.所有与selinux安全策略有关的服务或者程序都会被策略阻止.

permissive级别:Linux下selinux所设置的安全策略都会被启动,但是所有与selinux安全策略有关的服务或者程序不会被策略组织,但是会收到警告.

disabled级别:关闭selinux,相当于系统没有安装selinux一样.

clip_image002

一般可以通过getenforce查看selinux的运行级别.也可以通过setenforce 0 或者1 设置selinux的运行级别,级别0表示Permissive模式,级别1表示Enforcing模式. 至于disabled模式和其他模式的切换只能修改配置文件,命令不起作用.其次,修改完成之后,必须重启系统才能够生效.

clip_image004

如果想通过一些命令管理selinux,必须安装setroubleshoot包.光盘里有,直接安装即可.由于存在很多依赖关系,建议创建yum源指向光盘,然后通过yum安装.

clip_image006

clip_image008

接下来我们通过两个案例初步链接selinux的安全机制

案例一:vsftpd在selinux的Enforcing模式下 普通用户访问不了的处理办法.

安装vsftpd包,为客户端提供ftp服务,默认rhel6桌面安装会自动安装vsftpd服务,如果没有安装通过rpm命令或者构建yum源安装,安装完成之后,启用vsftpd服务.

clip_image010

默认情况下,linux里面普通用户的ftp访问目录为用户的宿主目录,为了方面测试,创建几个文件,并且起初设置selinux模式为permissive模式。

clip_image012

在客户机windows上通过ftp://192.168.100.101/访问,然后输入普通用户的用户名及密码,即可访问到这个用户的宿主目录.

clip_image014

现在我们设置selinux模式为Enforcing模式

clip_image016

再次通过普通用户访问,发现访问失败.这是为什么呢,这是受到了selinux的布尔值的影响.

clip_image018

可以看得出是selinux在作怪,我们可以通过man ftpd_