操作系统安全:selinux自启动.docx
selinux自启动SELinux的工作方式SELinux的工作方式SELinux是在进行程序、文件等权限设置一句的一个内核模块。彳专统的DAC模式我们知道在Linux下面的ug。权限模式,即通过rwx权限对用户进行访问控制。这也可 以称作为DAC (自主访问控制方式)。但这种访问控制方式存在缺陷:1 . root一手遮天2 .安全意识不强的系统管理员可以将访问权限设置为777MAC模式SELinux的设计初衷也是为了防止系统资源被误用(如b )。因此,SELinux通过MAC (强制访问控制)方式来管理进程。在MAC方式下,SELinux监管的主体从用户转变成了 进程,因此它可以针对特定的资源和特定的文件资源进行权限的控制。SELinux的模式SELinux的模式1 ,并非所有的Linux distributions都支持SELinux的,不过CentOS都有对SELinux的 支持。目前SELinux支持三种模式,分别如下:enforcing :强制模式,代表SELinux运作中,且已经正确的开始限制domain/type 了 ;permissive :宽容模式:代表SELinux运作中,不过仅会有警告讯息并不会实际限制 domain/type的存取。这种模式可以运来作为SELinux的debug之用; disabled :关闭,SELinux并没有实际运作。2 ,查看SELinux的模式 # getenforceEnforcing < =就显示出目前的模式为Enforcingrootlocalhost getenforceEnforcing图1 :查看SELinux的模式3 ,查看 SELinux 的政策(Policy)# sestatusSELinux status:enabled< =是否启动 SELinuxSELinuxfs mount:SELinuxfs mount:/selinux < = = SELinux的相关文件资料挂载点Current mode:Current mode:enforcing < =:目前的模式Mode from config file:enforcing二二设定档指定的模式Mode from config file:enforcing二二设定档指定的模式Policy version:Policy from config file:targeted < =目前的政策为何?rootlocalhost # sestatusSELinux status: SELinuxfs mount: Current mode:SELinux status: SELinuxfs mount: Current mode:enabledMode from config file:Policy version:Policy from config file:/selinux enforcing enforcing 24targeted图2 :直看SELinux的政策4 ,通过配置文件调整SELinux的参数# vi /etc/selinux/configSEUNUX=enforcing 二二调整 enforcing|disabled|permissiveSELINUXTYPE=targeted二二目前仅有 targeted 与 strictSELinux的启动与关闭SELinux的启动与关闭SELinux是Linux的一个内核模块,因此,不管是改变策略还是启动、停止SELinux都必 须重新启动系统。在SELinux运行的状态下只可以在enforcing和permissive之间切换。SELinuxfi5SBBtftiS/etc/selinux/configcl3 :# cat /etc/selinux/configSELINUX=enforcingTSELINUXTYPE=targetedrootlocalhost # cat /etc/selinux/config# 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 enfor# disabled - No SELinux policy is loaded.SELINUX=enforcing# SELINUXTYPE= can take one of these two values:# targeted - Targeted processes are protected,# mis - Multi Level Security protection.SELINUXTYPE=targeted图3 :查看SELinux的配置文件如果要启动SELinux必须满足以下两个点:将上述的SELINUX=enforcing设定妥当,并且指定SELINUXTYPE=targeted这一个设 定,并且到/boot/grub/menu.lst这个文件去,看看核心有无关闭SELinux 了呢? # vi/boot/grub/menu.lst#如果要启动SELinux ,那么不可以出现selinux=0的字样在kernel后面!否那么内核会 略过SELinux的加载。、 _ _ 一 ,rootlocalhost *# vi /boot/grub/menu.1st0efault=0timeout=5hiddenmenutitle Centos 6 (2.6.32-696.el6.x86 64)root (hd0,0)kernel /vmlinuz-2.6.32-696.el.6.x86 64 ro root=/dev/mapper/VolGroup-lv ro ot rd NO LUKS LANG=en_US.UTF-8 rd NO MD rdLVM LV=VolGroup/lv_swap SYSFONT=latar cyrheb-sunl6 crashkernel=auto rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTAB LE=us rd NO DM rhgb quietinitrd /initramfs-2.6.32-696.el6.x86 64.img 图4 : S日inux的启动确定从disabled转换到enforcing模式时,系统会对文件写入security con text信息,因此 开机需要花费一点时间。还有一种无需重启系统也可以转换SELinux的方法,就如前面所说只能由enforcing和permissive 互换# setenforce 0|10:转换成permissive宽容模式1 :转换成enforcing强制模式但是如果SELinux处在disabd模式下,这个方法就不管用了。rootlocalhost rootlocal.host Permissive rootlocalhost rootlocalhost Enforcing rootlocalhost一# setenforce 0 # getenforce一# setenforce 1 j# getenforce图5 : SELinux的模式转换