LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

安全增强式Linux(SELinuxLinux)内核修改和用户空间工具

2023年6月1日 196点热度

安全提高式Linux,即SELinux(Security-EnhancedLinux)是一个Linux内核的安全模块,其提供了访问控制安全策略机制,包括了强制访问控制(MandatoryAccessControl,MAC)。SELinux是一组内核更改和用户空间工具,早已被添加到各类Linux发行版中。其软件构架力图将安全决策的执行与安全策略分离,并简化涉及执行安全策略的软件的数目。

linux内核空间访问用户空间_linux内核空间和用户空间_用户空间 内核空间

Linux安全之SELinux理解

1.SELinux介绍

安全提高式Linux(SELinux)是一种强制访问控制的实现。它的作法是以最小权限原则为基础查看系统版本linux,在Linux核心中使用Linux安全模块。它并非一个Linux发行版,而是一组可以应用在类Unix操作系统(如Linux、BSD等)的更改。

SELinux更能遵照最小权限的理念安全提高式SELinux是一个在内核中实践的强制访问控制安全性机制

linux内核空间和用户空间_用户空间 内核空间_linux内核空间访问用户空间

Linux安全之SELinux理解

两种访问控制

SELinux有两种工作级别

1.1为何须要SELinux

在未启用SELinux的情况下,要控制用户的文件访问权linux内核空间访问用户空间,惟有通过酌情访问控制(DAC)方式如文件权限或访问控制清单(ACL)。不论用户或程序都可以将不安全的文件权限赋于其它人,或反过来访问系统在正常运作下无须访问的部分。举个例说:

基本上在传统DAC模式只在两个权限级别,root及用户,而当中不能简易地施行最小权限的理念。好多由root引导1的进程在后期会撇除它们的权限并以受限制的用户身分来运行,有些则会在chroot的情况下执行,但这种安全举措都是酌情的。

1.2解决方案

SELinux更能遵照最小权限的理念。在缺省的enforcing情况下,一切均被拒绝,接着有一系列例外的新政来准许系统的每位元素(服务、程序、用户)运作时所需的访问权。当一项服务、程序或用户尝试访问或更改一个它不须用的文件或资源时,它的恳求会遭拒绝,而这个行动会被记录出来。

因为SELinux是在内核中实践的,应用程序无须被非常编撰或重画便可以采用SELinux。其实,假若一个程序非常留心稍后所提到的SELinux错误码,它的运作可能会更畅顺。

理论上linux内核空间访问用户空间linux操作系统界面,下述样例方案可提供更高安全度:

2.SELinux的操作2.1SELinux的三种模式

SELinux拥有三个基本的操作模式,当中Enforcing是缺省的模式。

SELinux的模式可以通过Adminstration选单里的SELinux图象管理界面、或者在命令行执行system-config-selinux来查看及修改(SELinux图象管理界面是policycoreutils-gui组件的一部分,缺省是不会被安装的)。

2.2获取当前SELinux运行状态

sestatus命令

linux内核空间和用户空间_linux内核空间访问用户空间_用户空间 内核空间

# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 21
Policy from config file:        targeted

getenforce命令

# getenforce
Disabled

2.3改变SELinux运行状态

临时更改

# 强制访问控制
setenforce 1
# 自主访问控制
setenforce 0

永久更改

# 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 these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

2.4布尔型规则

由于在SELinux中有些类型没有被启动或则你须要关掉个别类型,这个时侯你就须要使用下述命令来更改SELinux的类型了

获取类型状态

linux内核空间访问用户空间_linux内核空间和用户空间_用户空间 内核空间

# 获取所以类型及其运行状态
getsebool -a
# 获取某个类型及其运行状态
getsebool httpd_t

更改类型状态

# 临时修改
setsebool httpd_t 1
# 永久修改
setsebool -P  httpd_t 1

3.SELinux新政

配置文件/etc/sysconfig/selinux还包含了SELinux运行策略的信息,通过改变变量SELINUXTYPE的值实现。

两种策略

注意事项

# 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 these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=strict

4.SELinux访问控制4.1三种访问控制方式4.2访问控制规则解析

所有进程及文件都拥有一个SELinux的安全性脉络,我们这儿查看Apache的主页,来瞧瞧SELinux安全性脉络来瞧瞧它们怎样运作的。

# 查看 Apache 的主页
# -Z 这个标旗在多数工具内都可用来显示 SELinux 安全性脉络(例如:ls -Z、 ps axZ 等)
# ls -Z /var/www/html/index.html
-rw-r--r--  username username system_u:object_r:httpd_sys_content_t /var/www/html/index.html

SELinux脉络栏

# ps axZ | grep httpd
system_u:system_r:httpd_t        3234 ?        Ss     0:00 /usr/sbin/httpd

SELinux安全机制

5.排除SELinux疑难5.1SELinux拒接访问缘由

SELinux拒绝某个文件、进程或资源被访问的基要缘由

日志剖析

日志剖析工具

# 这个工具可以从 X 窗口图像管理员的「系统」选单或从命令行引导
sealert -b
# 不运行 X 服务器的人可以通过命令行产生供人阅读的报告
sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt

5.2重新标签文件

chcon:这个指令可以拿来修改一个或多个文件与目录的SELinux安全性脉络,正如chown或chmod可以拿来修改一个文件的拥有者或标准权限。

句型

选项

举例

实战演示

# 就以Apache为例,假设你想修改DocumentRoot以另一个位置来伺服网页,替换缺省的/var/www/html
#目录。譬如说我们在 /html 创建了一个目录(又或者挂载点),然后在那里创建一个 index.html文档:
mkdir /html
touch /html/index.html
# 查看selinux属性信息
# ls -Z /html/index.html
-rw-r--r--  root root user_u:object_r:default_t        /html/index.html
# ls -Z | grep html
drwxr-xr-x  root root user_u:object_r:default_t        html
# 我们可以见到/html这个目录以及/html/index.html这个文件都拥有缺省的default_t安全性脉络类型。
# 如果我们打开浏览器并尝试查看该页,SELinux 将会正确地拒绝它们被访问并记录错误,因为该目录与文
# 件拥有不正确的安全性脉络。我们须要设置供 Apache 使用的 httpd_sys_content_t 正确安全性脉络。
# chcon -v --type=httpd_sys_content_t /html
context of /html changed to user_u:object_r:httpd_sys_content_t
# chcon -v --type=httpd_sys_content_t /html/index.html
context of /html/index.html changed to user_u:object_r:httpd_sys_content_t
# ls -Z /html/index.html
-rw-r--r--  root root user_u:object_r:httpd_sys_content_t    /html/index.html
# ls -Z | grep html
drwxr-xr-x  root root user_u:object_r:httpd_sys_content_t    html
# 我们同样也可以利用 -R 这个回递标旗同时将它们的脉络设置:
chcon -Rv --type=httpd_sys_content_t /html
# 以这个方式更改安全性脉络在系统重新开机后仍会获保留,直至该部份文件系统被重新标签。
# 这个动作也算颇常,因此正确的解决方法,就是于测试后编写一条自定的规则,并把它与本地
# 的规则进行合并。它将会是原有的 200 多条规则外的一条规则。要作出永久性、能过渡文件
# 系统重新标签的安全性脉络改动,我们采用SELinux管理工具,或者在命令行执行semanage指令。
semanage fcontext -a -t httpd_sys_content_t "/html(/.*)?"
# 如此便会将 /html 以下的一切加入 httpd_sys_content_t 这个文件脉络类型。

5.3撤销缺省的安全性脉络

restorecon:这个指令可以拿来撤销为文件缺省的安全性脉络

句型

选项

实战演示

# 让我们再次以 Apache 作为样例。设假有位用户在他的主目录内编辑了一个index.html档并将该文件
# 迁移(mv)至 DocumentRoot 的 /var/www/html 内。纵使复制(cp)这个指令普遍会沿用目标目
# 录或文件的安全性脉络,迁移(mv)指令则会保留源文件的安全性脉络。我们可以利用 chcon 这个指令
# 来更改问题文件的安全性脉络,但由于这些文件已经位于 Apache 缺省的 DocumentRoot内,我们只
# 须撤消这个目录或文件的安全性脉络便成了。要单单撤消 index.html 档的脉络,我们可以利用。
restorecon -v /var/www/html/index.html
# 如果要以回递的方式撤消整个目录的缺省安全性脉络
restorecon -Rv /var/www/html
# 除此之外,如果我们只想检查/var/www/html目录内有哪些文件的安全性脉络需要被撤消
# 我们在采用 restorecon 时可以应用 -n 这个标旗来防止重新标签的行动
restorecon -Rv -n /var/www/html

6.参考链接

送人玫瑰,手有余香!

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: selinux 访问控制
最后更新:2023年6月1日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
如何在Linux系统中查看CPU信息使用lscpu命令行 linux服务器搭建ftp的6下安装vsftpd步骤及步骤 贵州工业职业技术学院求职意向期望工作地--诚聘英才 实验1Linux安装实验掌握虚拟机的使用 Linux系统tar命令的使用方法及使用命令教程 linux 开源nas系统 杰和科技NAS服务器媒体见面会在京召开 Android与Linux开发大不同 Linux系统软件安装包:自己动手,安装不用愁 车市新战局:汽车操作系统会复制智能手机的历史吗? Linux文件系统种类 如何卸载用源码包安装的软件?在线视频教程推荐 「职位」ASP.、PHP、Linux服务器集群开发 Torvalds:Linux内核开发的创新前景充满了热情 Linux文件系统的结构从终端窗口探索Linux目录树结构 卸载软件命令Linux.You linux软件开发如何入门?学习Linux步骤及学习方法介绍 14年Linux发行版的有趣历史观点 Linux中不像Windows可以直接在控制面板中卸载? 2018年波及众多Linux发行版的性能对比会更加深入 如何用源码包安装的软件?name的方法总结
嵌入式Linux操作系统学习规划+LINUX路线,主攻江苏电信天翼校园客户端故障指引及解决办法(101)英特尔GMAGMA950显卡驱动程序/WIN8/8.1电信校园网宽带用USB数据线共享给电脑无线上网国防科大开源操作系统:它只是一个吉祥的象征10个常用Linux文本查看命令及其详细说明和使用示例Linux嵌入式系统内核裁剪与定制方法的介绍情况淘宝教育热卖C语言编程开发C++程序设计零基础入门课程从CPU、内存、硬盘、显卡等这些方面安装Linux系统的最低配置Linux通过chkconfig设置开机启动服务创建的几种常见方式(技术分析)Linux多线程的使用与操作系统的区别通常rar命令由一个主命令加若干选项(可选)构成RedHatLinux中自动运行程序中的应用linux 读写文件 关于Linux内核的神秘面纱,你知道几个?使用wget实用程序的有用命令行工具的使用怎么设置linux开机项自启动?方式是怎样的?嵌入式Linux应用层与驱动层要想学习关于Linux内核的交叉编译步骤和方法:步骤、方法STM32嵌入式linux开发流程及应用程序分析-STMlinux下有哪些文件在介绍lsof命令实用用法介绍?
TCL电视看电视直播方法购买智能电视的热卖,不少 找个Linux,把U盘当硬盘用就可以了 linux日志:日志产生的路径——日志 Windows是最好的操作系统,Ubuntu想(打)引(去)战(吧) Linux嵌入式系统根文件系统的选择与制作的区别 知一能量linux查看系统信息命令是linux初学者必备的基础知识 操作Linux更高效,掌握启动终端快捷键! 重新启动RedHatLinuxrelease命令注销系统的logout命令-上海怡健医学 AMDCPU微码更新可能会执行每个线程的微码更新 如何在Linux系统中实现开机自启动呢? 如何使用Linux`shutdown`命令关机?命令表达式教程 统计日志文件中第四个字段的sum,所用命令 修改Linux源码和改造Linux系统的核心源码作为自己的最大兴趣 RedHatLinux6.4安装图文教程完整PDF下载地址下载 子网掩码、网关等参数的详细说明 局域网聊天软件简单介绍TOP1内网通传书 关于华嵌武汉华嵌科技有限公司开发的课程及课程介绍! 在Linux中轻松删除单个文件、文件组或整个文件夹 linux 创建链接文件 Linux链接分两种,一种被称为硬链接(SymbolicLink) linux下mysql中可以使用REVOKE语句来删除某个用户的权限
标签聚合
操作 内核 文件目录 应用 linux服务器 linux系统 文件 软件 命令 虚拟机
书籍
课程
技术群
技术干货大合集↓
  • 2023年9月 / 78篇
  • 2023年8月 / 93篇
  • 2023年7月 / 94篇
  • 2023年6月 / 90篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.