SELinux概述及相关命令

linux之SElinux系统故障修复,防火墙策略管理,服务管理 linux之SElinux系统故障修复,防火墙策略管理,服务管理 文章目录linux之SElinux系统故障修复,防火墙策略管理,服务管理启用SELinux保护问题方案步骤一:调整当前的SELinux运行模式二:为SELinux运行模式建立固定配置使用systemctl工具问题方案步骤一:重启 httpd、crond、bluetooth 服务,查看状态二:禁止 bluetooth 服务开机自启,并停用此服务三:设置默认级别为 multi-user.target 并确认重要的事情说三遍 启用SELinux 阅读详情

SElinux概述
SELinux(Security-Enhanced Linux) 是美国国家安全局(NAS)对于强制访问控制的实现,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。大部分使用 SELinux 的人使用的都是SELinux就绪的发行版,例如 Fedora、Red Hat Enterprise Linux (RHEL)、Debian 或 Gentoo。它们都是在内核中启用 SELinux 的,并且提供一个可定制的安全策略,还提供很多用户层的库和工具,它们都可以使用 SELinux 的功能。

SElinux特点
1.MAC
对访问的控制彻底化,对所有的文件、目录、端口的访问都是基于策略设定的,可由管理员时行设定。
2.RBAC
对于用户只赋予最小权限。用户被划分成了一些role(角色),即使是root用户,如果不具有sysadm_r角色的话,也不是执行相关的管理。哪里 role可以执行哪些domain,也是可以修改的。
3.安全上下文
当启动selinux的时候,所有文件与对象都有安全上下文。进程的安全上下文是域,安全上下文由用户:角色:类型表示。
(1)系统根据pam子系统中的pam_selinux.so模块设定登录者运行程序的安全上下文
(2)rpm包安装会根据rpm包内记录来生成安全上下文,
(3)如果是手工他建的,会根据policy中规定来设置安全上下文,
(4)如果是cp,会重新生成安全上下文。
(5)如果是mv,安全上下文不变。
安全上下文格式
安全上下文由user:role:type三部分组成,下面分别说明其作用:
1.user identity:类似linux系统中的UID,提供身份识别,安全上下文中的一部分。
三种常见的user:
user_u-: 普通用户登录系统后预设;
system_u-:开机过程中系统进程的预设;
root-: root登录后预设;
在targeted policy中users不是很重要;
在strict policy中比较重要,的有预设的selinux users都以 “_u”结尾,root除外。
2.role
文件与目录的role,通常是object_r;
程序的role,通常是system_r;
用户的role,targeted policy为system_r;
strict policy为sysadm_r,staff_r,user_r
用户的role,类似于系统中的GID,不同的角色具备不同的权限;用户可以具备多个role;但是同一时间内只能使用一role;
role是RBAC的基础;
3.type
type:用来将主体与客体划分为不同的组,组每个主体和系统中的客体定义了一个类型;为进程运行提供最低的权限环境。
当一个类型与执行的进程关联时,该type也称为domain,也叫安全上下文。
域或安全上下文是一个进程允许操作的列表,决字一个进程可以对哪种类型进行操作。
SElinux配置文件
vi /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 enforcing.
# disabled – SELinux is fully disabled.
SELINUX=enforcing
#SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted – Only targeted network daemons are protected.
# strict – Full SELinux protection.
SELINUXTYPE=targeted
#SELINUX有「disabled」「permissive」,「enforcing」3种选择。
1.模式的设置
enforcing:强制模式,只要selinux不允许,就无法执行
permissive:警告模式,将该事件记录下来,依然允许执行
disabled:关闭selinux;停用,启用需要重启计算机。

2.策略的设置
targeted:保护常见的网络服务,是selinux的默认值;
stric:提供RBAC的policy,具备完整的保护功能,保护网络服务,一般指令及应用程序。
策略改变后,需要重新启动计算机。
也可以通过命令来修改相关的具体的策略值,也就是修改安全上下文,来提高策略的灵活性。

3.策略的位置
/etc/selinux/<策略名>/policy/

SElinux命令介绍

sestatus 查询系统的selinux目 前的?态
selinuxenabled 查询系统的selinux支 援是否有启用
setenforce 设定selinux运 作?态
getsebool ?出所有selinux bool数值清单?表与内容
setsebool 设定selinux bool数值内容
chcon 变?档案目录security context
restorecon 恢?档案目录的预设的security context
fixfiles 修正档案目录的预设的security context
semanage SELiux policy管?程式
secon 检视?程、档案等等项目的SELinux context
audit2why 检视SELinux audit讯息内容
sealert SELinux 讯息诊断用户端程式

下面列出几个常用的:

1、sestatus工具
查询系统的selinux 目前的状态
例如:root@monitor:~# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 21
Policy from config file: targeted

2、selinuxenabled工具
检查系统selinux是否开启,是通过返回值进行判断selinux是否已经启动,0:表示已经启动 selinux;1:表示已经关闭selinux
例如:selinuxenabled ; echo?,返回的结果为:1

3、setenforce工具
功能:设定切换selinux的运行状态(0或者1),前提是开启了selinux,同时这种切换只对当前有效,如果重新启动的话,就没有效了(注意:如果关闭了selinux,那么就必须配置/etc/selinux/config文件)
语法:setenforce [ Enforcing | Permissive | 1 | 0 ]
说明如下:
enforcing 或者1,表示开启强制模式
permissive 或者0,表示开启警告但是无限制模式
例如:下面这个例子
root@monitor:~# sestatus | grep -i mod
Current mode: permissive
Mode from config file: permissive
root@monitor:~# setenforce 1
root@monitor:~# sestatus | grep -i mod
Current mode: enforcing
Mode from config file: permissive

4、getsebool与setsebool工具
说明:SELinux规范了许多boolean数值清单档案,提供开启或关闭功能存取项目,而这些值都存放在/selinux/booleans/目录内相关档案,这些档案里的值只有两种:1(启用)或 0(关闭)

1)getsebool
说明:?出所有selinux bool数值清单?表与内容
使用方式:getsebool [ -a ]
例如以下范例:
#getsebool ftpd_disable_trans
ftpd_disable_trans –> off
#getsebool -a
NetworkManager_disable_trans –> off
allow_cvs_read_shadow –> off
allow_daemons_dump_core –> on
allow_daemons_use_tty –> off
allow_execheap –> off
allow_execmem –> on
allow_execmod –> off
……….

2)setsebool
说明:设定selinux bool数值清单?表与内容
使用方式:setsebool [ -P ] boolean value | bool1=val1 bool2=val2 bool3=val3……
参数配置: -P表示设定该项目永久套用
使用范?:
setsebool ftpd_disable_trans=on ( on 或者 1 )
setsebool -P ftpd_disable_trans=off ( off 或者 0 )

5、chcon
说明:变?档案目录的security context
使用方式:
chcon [OPTION]… CONTEXT FILE…
chcon [OPTION]… –reference=RFILE FILE…
参数如下:
-u USER:set user USER in the target security context
-r ROLE:set role ROLE in the target security context
-t TYPE:set type TYPE in the target security context
范例:
chcon -t var_t /etc/vsftpd/vsftpd.conf
chcon –reference=/var/www/html index.html
注意事项:?是变?于目录上,后续于该目录内建?的档案目录会套用目录本身type设定

6、restorecon
说明:恢复档案目录的预设的security Context
规格来源:/etc/selinux/
/contexts/files/目录内的file_contexts与 file_contexts.local
常用参数如下:
-r | -R:包含子目录与其下档案目录
-F:恢?使用预设的項目(就算是檔案符合存取规范)
-v:显示执行过程
使用方式:restorecon [FRrv] [-e excludedir ] pathname… ]
使用范例如下:
restorecon /etc/ntp.conf
restorecon -v /etc/ntp.conf
restorecon -v -F /etc/ntp.conf
手动配置新增恢复规则
1)档案名称
/etc/selinux/
/contexts/files/file_contexts.local
2)新增配置范?
/var/ftp(/.*)? system_u:object_r:public_content_t
3)注意
可以使用semanage程式来维护会比较方?

7、fixfiles
说明:修正档案目录的预设的security Context,依据/etc/selinux/
/contexts/files/内相关档案修正
使用方式:
fixfiles { check | restore|[-F] relabel } [[dir] … ]
fixfiles -R rpmpackage[,rpmpackage...] { check | restore }
参数:
-R:使用指定的rpm 套件所提供的檔案清單
使用范例:
fixfiles check /etc
fixfiles restore /etc
fixfiles -F relabel /
fixfiles -R setup check

8、audit2why
说明:检视SELinux audit讯息内容,提供检视/var/log/audit/audit.log内的记录资讯说明
使用范?:audit2why < /var/log/audit/audit.log 注意:需要搭配启动auditd服务程式一起使用 9、sealert 说明:SELinux 讯息诊断用户端程序 参数如下: -H, –html_output:使用网页格式输出(搭配 -a or -l 使用) -l, –lookupid ID:检视指定ID的警示讯息 使用范?: sealert -l xxxxx-xxxxx-xxxx sealert -H -l xxxxx-xxxxx-xxxx > output.html
注意:需要搭配setroubleshoot服务一起使用
setroubleshoot服务启动后,会依据audit服务提供的资讯给予适当问题诊断,然后输出于/var/log/messages,该档案内会有相关输出资讯提供除错检视

10、semanage
说明:selinux policy维护工具
使用方式:semanage { login | user | port | interface | fcontext | translation} -l [-n]
使用范例:
semanage login -l
semanage user -l
semanage port -l
semanage port -a -t http_port_t -P tcp 81
semanage fcontext -a -t httpd_sys_Context_t “/home/users/(.+)/public_html(/.*)?“

11、secon
说明:检视程式、档案与使用者等相关SELinux Context
使用方式:
secon [-hVurtscmPRfLp] [CONTEXT]
secon [--file] FILE | [--link] FILE | [--pid] PID
参数:
-u, –user:show the user of the security context
-r, –role:show the role of the security context
-t, –type:show the type of the security context
-f, –file FILE:gets the context from the specified file FILE
-p, –pid PID:gets the context from the specified process PID
使用范?:
secon -u
secon -r
secon -t
secon –file /etc/passwd
secon –pid

检查安全上下文
1.检查帐号的安全上下文
[root@localhost ~]# id -Z
root:system_r:unconfined_t:SystemLow-SystemHigh

2.检查进程的安全上下文
[root@localhost ~]# ps -Z
LABEL PID TTY TIME CMD
root:system_r:unconfined_t:SystemLow-SystemHigh 2383 pts/0 00:00:00 bash
root:system_r:unconfined_t:SystemLow-SystemHigh 2536 pts/0 00:00:00 ps

3 . 检查文件的安全上下文
[root@localhost ~]# ls -Z
-rw——-. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg

SElinux应用
selinux的设置分为两个部分,修改安全上下文以及策略,下面收集了一些应用的安全上下文,供配置时使用,对于策略的设置,应根据服务应用的特点来修改相应的策略值。

SElinux与samba
1.samba共享的文件必须用正确的selinux安全上下文标记。
chcon -R -t samba_share_t /tmp/abc
如果共享/home/abc,需要设置整个主目录的安全上下文。
chcon -R -r samba_share_t /home
2.修改策略(只对主目录的策略的修改)
setsebool -P samba_enable_home_dirs=1
setsebool -P allow_smbd_anon_write=1
getsebool 查看
samba_enable_home_dirs –>on
allow_smbd_anon_write –> on

SElinux与nfs
selinux对nfs的限制好像不是很严格,默认状态下,不对nfs的安全上下文进行标记,而且在默认状态的策略下,nfs的目标策略允许 nfs_export_all_ro
nfs_export_all_ro
nfs_export_all_rw值为0
所以说默认是允许访问的。
但是如果共享的是/home/abc的话,需要打开相关策略对home的访问。
setsebool -P use_nfs_home_dirs boolean 1
getsebool use_nfs_home_dirs

SElinux与ftp
1.如果ftp为匿名用户共享目录的话,应修改安全上下文。
chcon -R -t public_content_t /var/ftp
chcon -R -t public_content_rw_t /var/ftp/incoming
2.策略的设置
setsebool -P allow_ftpd_anon_write =1
getsebool allow_ftpd_anon_write
allow_ftpd_anon_write–> on

SElinux与http
apache的主目录如果修改为其它位置,selinux就会限制客户的访问。
1.修改安全上下文:
chcon -R -t httpd_sys_content_t /home/html
由于网页都需要进行匿名访问,所以要允许匿名访问。
2.修改策略:
setsebool -P allow_ftpd_anon_write = 1
setsebool -P allow_httpd_anon_write = 1
setsebool -P allow_<协议名>_anon_write = 1
关闭selinux对httpd的保护
httpd_disable_trans=0

SElinux与公共目录共享
如果ftp,samba,web都访问共享目录的话,该文件的安全上下文应为:
public_content_t
public_content_rw_t
其它各服务的策略的bool值,应根据具体情况做相应的修改。

refer to: http://blog.163.com/koumm@126/blog/static/9540383720095107497849/ http://hi.baidu.com/9812658/blog/item/4603e0a54ddebc98d0435840.html http://blog.microsuncn.com/?p=2134

Linux系统:selinux规则配置详解 SELinux(Security-Enhanced Linux)是一个Linux内核模块,它实现了强制访问控制(MAC)机制,可以对系统中的各种资源(文件、进程、网络端口等)进行细粒度的访问控制,从而提高了系统的安全性主要作用是强化系统的安全性,通过访问控制来防止恶意程序对系统进行攻击。它可以限制程序的权限,防止它们对系统资源进行未经授权的访问和操作,从而有效地保护系统免受攻击。 阅读详情

相关推荐

Ubuntu 上使能 SELinux

此文档说明如何在 ubuntu 上启用 SELinux,测试环境为虚拟机,开始前一定一定一定先来个快照,不要问我为什么有三个一定。

weixin_46645613的博客 5247

SELinux 学习

selinux:当前运行状态 $ /usr/sbin/sestatus  //selinux运行状态 SELinux status:                 enabled 状态 SELinuxfs mount:                /selinux Current mode:                   enforcing 模式 Mode from confi

cgm88s的专栏 2840

LangChain与SkillLite集成:AI Agent安全沙箱实践

在AI与自动化技术领域,安全沙箱是实现可信计算的核心机制。其原理是通过资源隔离与权限控制,构建受限的执行环境。技术价值在于平衡功能开放性与系统安全性,尤其适用于处理用户提交的非受信代码或敏感数据。典型应用场景包括AI插件系统、在线代码评测平台等。本文以LangChain框架与SkillLite沙箱的深度集成为例,详解如何通过命名空间隔离、cgroups限制等机制,为AI Agent赋予安全执行动态技能的能力。其中涉及的关键技术点包括Python运行时隔离、动态资源配额管理,以及如何防范Shell注入等常见攻

weixin_34189116的博客 405

linux查看目录安全上下文,semanage命令 – 安全上下文查询与修改

semanage命令是用来查询与修改SELinux默认目录的安全上下文。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。语法格式:semanage [参数]常用参数:-l查询-a增加,你可以增加一些目录的默认安全上下文类型设置-m修改-d删除参考实例查询一下/var/www/html的默认安全性本...

weixin_26757925的博客 515

3分钟创建智能体

智能体简介会在首页以及名片页展示,需要简洁明了的介绍智能体用途✅优秀示例:最好用第三人称直接说明智能体用途~如:打造生动文案好帮手、专业解梦,探寻梦境奥秘等❌反面教材:简介并未介绍用途、语义含糊。如:今天写点啥、看看你做的梦等以上步骤完成后,点击发布,就能成功创建属于你自己的智能体啦~仅自己可访问(免审):发布后仅开发者本人账号可访问、预览、使用该智能体仅链接可访问:发布后任何人均可通过链接访问、预览、使用该智能体。

soso1968的博客 2085

Vue中实现word文档渲染、在线编辑、保存

Vue3对word文档进行渲染、编辑、保存。word转成html,html转成word

h18749849699的博客 1328

linux 修改ssh端口

为了生产环境服务器的安全,我们需要把默认的一些端口改掉,今天我们就把22端口修改掉 1.修改配置文件 输入: vim /etc/ssh/sshd_config Ps:Port可以多个端口共存,逗号隔开即可 2.然后重启sshd就可以了 service sshd restart #重启sshd 或者 systemctl restart sshd #重启sshd 如果重启报错 使用这个命令 semanage port -l | grep ssh 查看SElinux允许的ssh的端口号 如果提.

不会吉他的肌肉男不是好的挨踢男的专栏 902

船舶轨迹预测中的5个常见坑:基于LSTM单步预测的避坑实践

本文针对船舶轨迹预测中LSTM单步预测的常见问题,系统总结了五个典型陷阱及避坑实践。重点分析了如何正确处理AIS数据的非均匀采样与清洗、对航向角进行周期性编码、采用轨迹级归一化策略、缓解单步滚动预测的误差累积,并设计贴合业务的评估指标。这些实践能有效提升预测模型的准确性与实用性。

cnn8visionary的博客 632

RHCE: SELinux

SELinux是的缩写,意思是安全强化的linuxSELinux主要由美国国家安全局(NSA)开发,当初开发的目的是为了避免资源的误用现在主要是通常用于实现强制访问控制(MAC),以增强系统的安全性。

m0_73994306的博客 916

ADS2023实战:手把手教你用Load-Pull设计40W LDMOS功率放大器(附工程文件)

本文以飞思卡尔MRF8P9040N LDMOS晶体管为例,详细介绍了在ADS 2023中设计一款40W功率放大器(PA)的全流程。内容涵盖从直流偏置设置、稳定性分析、核心的负载牵引(Load-Pull)仿真,到基于Smith圆图的匹配网络设计、谐波平衡性能验证,直至版图生成与优化。文章提供了手把手的实战指导和工程文件,旨在帮助射频工程师掌握高效率PA的设计方法与关键技巧。

cake8的博客 1072

LDRA Testbed(TBrun)软件单元测试_操作指南

通过前面的几篇文章,使用Testbed进行软件静态分析的内容已经基本讲解完毕。从这篇文章开始,将继续讲解如何使用TBrun进行软件单元测试、软件集成测试。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 7774

分享常见selinux相关命令

SELinux出现之前,Linux上的安全模型叫DAC,全称是Discretionary Access Control,翻译为自主访问控制。DAC的核心思想很简单,就是:进程理论上所拥有的权限与执行它的用户的权限相同。比如,以root用户启动Browser,那么Browser就有root用户的权限,在Linux系统上能干任何事情。显然,DAC太过宽松了,所以各路高手想方设法都要在Android系统上搞到root权限。那么SELinux如何解决这个问题呢?

learnframework的博客 1415

ChatGPT启蒙之旅:弟弟妹妹的关键概念入门

本文主要介绍了ChatGPT启蒙之旅:弟弟妹妹的关键概念探险,希望能对初学大模型的同学们有所帮助。 文章目录 1. 背景 2. GPT是个什么样的人? 3. GPT使用的核心思维 4. GPT使用的场景介绍

herosunly的博客 16万+

SELinux 概述

SELinux(Security-Enhanced Linux)是美国国家安全局在 Linux 开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。它确保服务进程仅能访问它们应有的资源。例如,当你在使用照片软件时,软件应该仅操作图片文件,而不能监听浏览器中的密码信息。

疑犯的博客 1206

UG\NX二次开发 找不到指定的dlx文件(Specified Dlx file not found)

有群友问:用Ctrl+U运行的时候就报错,找不到指定的dlx文件Specified Dlx file not found。怎么处理。

王牌飞行员_里海的博客 1130

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

linux下selinux介绍及相关命令操作

selinux是什么?SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中。传统的Linux权限控制采用自主式权限控制(Discretionary Access Control, DAC),依据程序拥有者和资源的...

会飞的鱼的博客 3712

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

RHEL4中与SELinux相关的命令、目录和文件

RHEL4中与SELinux相关的命令如下所示:SELinux图形管理工具:system-config-securitylevelchconrestoreconload_policycheckpolicysetfilesavcstatsesearchsestatusgetenforcegetseboolsetenforcesetsebooltogglesebool目录:/selinux/selin

3267

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

sa8155p QNX部分命令汇总,关闭android SELINUX

QNX系统sa8155p通过adb命令进入QFIL刷机模式(9008)方法 QNX系统sa8155p关闭android SELINUX方法

漂流瓶の海岸 3509

selinux相关

1. 综述:selinux与安全上下文 getsebool与setsebool可以查看selinux的不同模块,getsebool -a 可以查看所有的模块,setseboll -P 模块 0|1 可以开启或者关闭某个模块,selinux对服务的限制仅限于rpm包安装的服务,对于源码安装的就不好使 chcon和semanage命令是用于管理安全上下文的,区别在于chcon是临时生效,semana...

weixin_43557605的博客 662

SELinux 状态概述

SELinux,全称为Security Enhanced Linux,是一个基于Linux安全模块(LSM)的强制访问控制系统。它通过为系统中的每个进程、文件和端口分配安全上下文(标签),并基于这些上下文实施访问控制,从而增强了Linux系统的安全性。

chen的博客 955

SELinux: 如何让selinux对某些命令放行,自定义selinux规则。

1.setting selinux to permissive mode 暂时关闭selinux,让操作进行下去,这个时候selinux还是会将记录log到audit.log里的 setenforce 0 2.disabling selinux dontaudit 这样可以让selinux没有遗漏的记录所有permission denied message,同样写入audit.log semodule --disable_dontaudit --build 检验dontaudit有没有被禁用

BobChill的博客 1530

SELinux policy相关问题的总结

在开发Android系统的时候或多或少遇到一些Selinux的相关的问题,在这里进行一些总结和整理,内容大部分来源网络. 1、了解SELinux基本概念,这个网上资料很多,具体参考: http://jingpin.jikexueyuan.com/article/55398.html http://blog.youkuaiyun.com/innost/article/details/19299937/  h...

jinron10的专栏 2765

如何确定问题是否与selinux相关

一, 如何看问题是否与SELinux 相关? 1. 将SELinux 调整到Permissive 模式测试. 将SELinux 模式调整到Permissive 模式,然后再测试确认是否与SELinux 约束相关. ENG 版本: adb shell setenforce 0 如果还能复现问题,则与SELinux 无关, 如果原本很容易复现, 而Permissive mode 不能再复现, 那么就...

qq_37610155的博客 751
上一篇: [Fedora] VirtualBox 安装 Fedora16 运行 Gnome3 Samba Apache2 Mysql5 PHP5 之五
下一篇: Linux安全中阶教程之SElinux(适合有一定水平的管理员)
you_jinjin
博客等级 码龄16年 35粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值