扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共2页)
一、管理非限制进程
非限制的进程运行在非限制域中。比如,init进程运行在非限制的initrc_t域中,非限制的kernel进程运行在kernel_t域中,非限制的用户运行在unconfined_t域中。对于非限制的进程,SELinux策略规则仍然适用,然而有关允许进程运行在非限制域中的规则允许几乎所有的访问。因此,如果一个非限制进程被黑客控制的话,那么SELinux将不能阻止黑客获取对系统资源和数据的访问权限,当然DAC规则仍然适用,因为SELinux机制是在DAC层次上附加一层对Linux的增强,而不是简单地替代DAC。
下面将给出一个具体的例子来说明Apache Http服务器(httpd进程)在非限制的条件下运行,是如何能够访问本应由Samba服务器访问的数据的。值得注意的是:在Fedora 10中,httpd进程默认是限制运行在httpd_t域中的。下面的例子假设用户系统中安装了httpd、wget(一种类似于Windows系统下Flashget软件的多线程下载工具)、settroubleshoot-server、audit等工具包,并且SELinux机制运行在enforcing模式下。
(1)运行sestatus命令来确认Linux中SELinux是运行的,且运行在enforcing模式下,运行结果与图1所示一致:
图1 运行sestatus命令来确认Linux中SELinux是否运行
(2)以root用户身份,创建一个新的测试文件testfile2,该文件路径为httpd进程的工作目录下,如下所示:
(3)使用ls -z命令来查看新创建的文件的SELinux上下文信息,如图2所示:
图2 使用ls-Z命令查看新创建文件的SELinux上下文信息
从上述结果中可以清楚看到:Linux用户默认运行在非限制域中,所以testfile2文件上下文信息标识为unconfined_u。并且,RBAC用于进程,而不是文件。另外,对于文件来说角色也没有特别的含义,因此赋予其object_r为较为通用的角色。而httpd_sys_content类型则允许httpd进程对该文件进行访问。
(4)采用chron命令暂时对文件的标识进行改变。一旦系统重启,该改变将会失效。若要永久改变文件的标识,可以采用semanage命令进行操作。使用root用户身份,运行如下命令来将文件类型改为由Samba服务器可访问的类型:
然后,采用ls -z命令来查看修改后的结果:
(5)在将httpd进程从限制修改为非限制之前,需要将该进程停止,使用如下命令:
(6)以root用户身份运行如下命令,来改变httpd进程的类型,以将其从限制改为非限制:
然后,使用ls -z命令来查看进程,以确保修改生效,如下所示:
(7)为了使httpd在运行时该修改生效,需要重新启动httpd进程,如图6-22所示:
(8)采用ps -ez | grep httpd命令来查看httpd进程运行在非限制域中的情况,如图3所示:
图3 启动httpd进程并查看
(9)在有权限许可的目录下,运行如下命令来测试httpd进程运行在非限制情况下的效果,如图4所示:
图4 wget命令成功执行
上述的运行结果显示,该命令能够成功运行。虽然httpd进程原来没有访问标记为samba_share_t类型文件的权限,然而由于修改,httpd进程现在运行在非限制环境下(unconfined_t),所以SELinux转为执行DAC机制,而wget命令可以访问该文件,所以成功执行。
(10)测试结束后,需要使用如下命令来恢复该httpd进程本来的运行限制:
然而,采用如下命令来进行查看,发现httpd进程又从非限制状态恢复为限制状态:
(11)使用如下命令重新启动httpd,以时修改在httpd进程运行时生效,并通过ps -ez命令来查看进程的运行状态,如图5所示:
图5 恢复httpd进程的运行限制
到此为止,上述例子详细的演示了SELinux是如何通过限制进程的运行来保证Linux系统安全的,也看到了如果将进程改为unconfined运行状态的安全隐患,因此提醒广大用户在实际应用过程中切忌不要随便将进程默认的限制运行状态改为非限制状态,以免给Linux系统带来不必要的麻烦和安全隐患。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者