通过两个案例初步了解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_selinux 查看ftpd的selinux访问策略.

clip_image020

通过man注释可以看到命令 “setsebool –P ftp_home_dir 1”可以开放这个策略

clip_image022

我们也可以通过getsebool –a命令查看所有selinux管理的所有服务访问策略情况(布尔值),ftp_home_dir默认为off关闭状态,也就是不允许通过的意思.

clip_image024

通过setsebool –P ftp_home_dir 1开启ftp_home_dir布尔值.

clip_image026

再次访问就可以实现了

clip_image028

案例二:在Linux selinux开启enforcing的模式下,开启web服务,将其他地方的网站主配置信息index.html copy到网站的根目录访问不了的处理办法.

安装httpd软件包,默认rhel6.3桌面版本已经安装了apache的软件包httpd

clip_image030

默认情况下,在/var/www/html/目录下没有网站的数据,访问会显示以下信息.

clip_image032

我们在这个目录下写一个主页index.html

clip_image034

开启selinux到enforcing模式,可以通过web浏览器访问.

clip_image036

clip_image038

我们从其它目录比如/root目录下写一个index.html文件copy到httpd的根目录下

clip_image040

设置selinux级别为permissive模式,可以访问.

clip_image042

设置selinux模式为Enforcing模式,却不能访问了,这是为什么呢?这是受到了了selinux的context值的影响.

clip_image044

clip_image046

我们可以通过ls –Z 可以查看文件的context值如下.默认情况下在任何一个目录创建文档会继承上级目录的context值, 可以看出来index.html的context值继承的是/root目录的context值,而在/var/www/html/目录下创建文件默认的context值为httpd_sys_content

clip_image048

我们可以通过 chcon –t命令修改index.html的context值

clip_image050

修改完成之后,即可实现访问.

clip_image052

总计:通过以上两个简单案例可以看到selinux的enforcing模式是通过布尔值或者context值来决定selinux的安全策略机制的.而我们可以通过setsebool –P 命令设置布尔值,通过chcon –t 设置context值(必须安装setroubleshoot包才能用以上两个命令)



本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1091653,如需转载请自行联系原作者

相关文章
|
3月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
186 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
3月前
|
运维 监控 Java
Linux常用命令行大全:14个核心指令详解+实战案例
在服务器管理与开发运维领域,Linux 指令是构建技术能力体系的基石。无论是日常的系统监控、文件操作,还是复杂的服务部署与故障排查,熟练掌握指令的使用逻辑都是提升工作效率的核心前提。然而,对于初学者而言,Linux 指令体系往往呈现出“参数繁多易混淆”“组合使用门槛高”“实际场景适配难”等痛点——例如 ls 命令的 -l 与 -a 参数如何搭配查看隐藏文件详情,grep 与管道符结合时如何精准过滤日志内容,这些问题常常成为技术进阶的阻碍。
|
4月前
|
安全 Linux C++
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
184 0
PVS‑Studio 7.38 for macOS, Linux & Windows - 代码质量安全静态分析
|
5月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
335 10
|
5月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
503 0
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
9月前
|
Linux
linux常用命令详细说明以及案例
本文介绍了Linux中几个常用的命令及其用法,包括:`ls`(列出目录内容)、`cd`(切换目录)、`mkdir`(创建目录)、`rm -p`(删除目录及内容)和`mv`(移动或重命名文件/目录)。每个命令都配有详细说明、语法格式、常见选项及实用案例,帮助用户更好地理解和使用这些基础命令。内容源自[linux常用命令详细说明以及案例](https://linux.ciilii.com/show/news-285.html)。
359 159
|
9月前
|
Linux
linux命令详细说明以及案例
本文介绍了常用的 Linux 命令及其详细说明和示例,包括:`ls`(列出目录内容)、`cd`(更改目录)、`rm` 和 `mv`(删除与移动文件)、`grep`(搜索文本)、`cat`(显示文件内容)以及 `chmod`(更改文件权限)。每个命令均配有功能描述、选项说明及实际案例,帮助用户更好地掌握 Linux 命令的使用方法。
561 157
|
7月前
|
安全 Linux iOS开发
PVS‑Studio 7.36 for macOS, Linux & Windows - 代码质量安全静态分析
PVS‑Studio 7.36 for macOS, Linux & Windows - 代码质量安全静态分析
146 1
PVS‑Studio 7.36 for macOS, Linux & Windows - 代码质量安全静态分析
|
7月前
|
数据挖掘 Linux 数据库
服务器数据恢复—Linux系统服务器数据恢复案例
服务器数据恢复环境: linux操作系统服务器中有一组由4块SAS接口硬盘组建的raid5阵列。 服务器故障: 服务器工作过程中突然崩溃。管理员将服务器操作系统进行了重装。 用户方需要恢复服务器中的数据库、办公文档、代码文件等。
|
12月前
|
存储 编译器 Linux
动态链接的魔法:Linux下动态链接库机制探讨
本文将深入探讨Linux系统中的动态链接库机制,这其中包括但不限于全局符号介入、延迟绑定以及地址无关代码等内容。
2065 141