热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux系统入门之selinux

基本SELINUX安全性概念(1)SELinux概念SELINUX(安全增强型Linux)是可保护系统安全性的额外机制。

基本SELINUX安全性概念

(1)SELinux概念

SELINUX(安全增强型Linux)是可保护系统安全性的额外机制。在某种程度上,它可以被看作是与标准权限系统并行的权限系统。
在常规模式中,以用户身份运行进程,并且系统上的文件和其他资源都设置了权限(控制哪些用户对哪些文件具有哪些访问权 SELINUX的另一个不同之处在于,若要访问文件,你必须具有普通访问权限和SELINUX访问权限。因此,即使以超级用户身份root运行进程,根据进程以及文件或资源的SELINUX安全性上下文可能拒绝访问文件或资源限)标签。

作用:
(1)针对文件,会对系统中每个文件添加安全上下文(context)
(2)针对进程,会对系统中的每个进程添加全上下文(context)
(3)会在系统服务上设定sebool开关
(4)当进程安全上下文和文件的安全上下文不匹配时,那么进程无法访问此文件
(5)sebool会限制服务的不安全功能,如果需要用此功能,必须调整sebool值

示例:
在无selinux保护时,恶意人员可以尝试利用web服务器中的安全漏洞强行进入系统。如果成功,将会控制以用户apache身份运行的进程,这时再由一个本地安全漏洞就可能使攻击者获得超级用户的访问权限。
 

 

 (2)SELINUX安全上下文访问规则:

WEB服务器的HTTPD进程设置了SELINUX上下文system_u:system_r:httpd_t标签。该上下文的重要部分是第三个用冒号分隔的字段SELINUX类型:httpd_t
系统上的文件和资源也设置了SELINUX上下文标签,并且重要的部分是SELINUX类型。例如,/var/www/html中的文件具有类型httpd_sys_content_t。/tmp和/var/tmp中的文件通常具有类型tmp_t
SELINUX策略具有允许以httpd_t身份运行的进程访问标记为httpd_sys_content_t的文件的规则。没有规则允许这些进程访问标记有tmp_t的文件,因此将拒绝这些访问,即使常规权限指出应该允许这些访问。

(3)SELInux服务有三种配置模式:

  • enforcing:强制启用安全策略模式,将拦截服务的不合法请求
  • premissive:遇到服务越权访问时,只发出警告而不强制拦截
  • disabled:对于越权的行为不拦截也不警告

从许可/强制模式切换为关闭状态,或反之,必须修改配置文件/etc/sysconfig/selinux 然后重启

许可模式和强制模式可以用setenforce 进行切换不用关机

SELinux域对服务程序的功能进行限制(确保服务程序做不了出格的事)

SELinux安全上下文对文件资源限制(确保文件资源只能被其所属的服务程序进行访问)

selinux会给与系统中的每个文件一个安全上下文(CONTEXT),同时给予每个程序一个CONTEXT,若此程序的安全上下文与文件的安全上下文不匹配,则文件不能被系统访问,若匹配,则可以访问,而文件的安全上下文,与此文件所在的目录有关。

显示文件和服务的安全上下文

以ftp服务为例:
pa auxZ | grep ftp    显示ftp的安全上下文
ls -Z /var/ftp/             显示ftp默认发布目录的安全上下文,ftpd_t只能访问标签为public_content_t的文件

SELinux安全上下文访问规则

(1)关闭模式

(2)许可模式

该模式下不会拦截文件访问与权限,但在日志中会有警告信息

 

(3)强制模式

a.对文件的影响

b.对服务的影响

 

修改文件的selinux安全上下文

1.临时修改上下文

1.1 目录的安全上下文已与服务匹配

chcon -t public_content_t file|dir 更改文件或目录的安全上下文为public_content_t

chcon -t public_content_t file|dir -R 若是目录,-R表示递归更改,包括目录本身 /var/ftp的默认上下文为public_content_t,当修改完下属的子文件的上下文与该目录上下文一致,则为永久修改

1.2当目录的安全上下文与服务不匹配时

2.永久更改文件的安全上下文

semanage是永久在内核中修改目录的上下文 必须需要刷新

semanage fcontext -l | grep /var/ftp 查看/var/ftp的永久上下文设定

semanage fcontext -l | grep /ftppdir

semanage fcontext -a -t public_context_t '/ftpdir(/.*)?' 添加永久上下文,-a:add, -t:类型, (/.*)?表示ftpdir目录下的所有内容

restorecon -RvvF /ftpdir/ 必须刷新才会生效,把该目录下的文件永久刷新成与该目录一致的上下文

管理服务的bool值

如何在enforce 的情况下开启某种服务?
当为强制模式时,服务的某些功能被关闭。必须当普通服务和SELINUX的权限同时都打开时,该服务才可用。
我们以开启ftp中匿名用户上传的功能为例说明:

vim /etc/vsftpd/vsftpd.conf                   在主配置文件中开启匿名用户上传的功能
chgrp ftp /var/ftp/pub    
chmod 775 /var/ftp/pub
chcon -t public_content_rw_t /var/ftp/pub     将该目录的权限改为可读可写
getsebool -a | grep ftp                       显示ftp功能的布尔值
setsebool -P ftpd_anon_write 1                修改匿名用户写的功能的布尔值为1

 

SELiunx的日志分析

/var/log/audit/audit.log         该文件存放seliunx的日志信息,存在selinux的报错,但不会有解决方案
/var/log/messages                存在selinux的日志以及解决方案
setroubleshoot                   采集/var/log/audit/audit.log中的日志并进行分析提出解决方案,存入/var/log/messages中,若是不安装    此 软件,/var/log/messages就没有selinux的解决方案与日志存在

(1)有问题解决软件时

 

(2)删除问题解决软件后


推荐阅读
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 在CentOS上部署并使用FFmpeg多媒体处理工具
    最近在进行音频处理时需要用到FFmpeg,本文将详细介绍如何在CentOS系统上部署并使用这一强大的多媒体处理工具。首先,从官方网站下载FFmpeg的最新版本,然后通过Xftp工具将下载的压缩包(如ffmpeg-4.3.1.tar.xz)传输到服务器上。接下来,解压文件并按照官方文档进行编译安装。安装完成后,可以通过命令行工具验证FFmpeg是否成功安装,并开始进行多媒体文件的转换和处理。此外,文章还将介绍一些常用的FFmpeg命令和参数,帮助用户快速上手。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在网络故障排查中,tcpdump 是一款强大的工具,尤其在 Linux 环境下。尽管开发环境中问题较少,但在测试或生产环境中,往往会遇到各种难以预料的异常情况。通过在问题发生的环境中启用 tcpdump 进行抓包,并重现问题,可以获取到宝贵的原始数据,为问题的诊断提供关键线索。本文将详细介绍如何使用 tcpdump 进行实战操作,帮助读者掌握这一技能。 ... [详细]
author-avatar
船长2502860123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有