17.SELinux

这篇具有很好参考价值的文章主要介绍了17.SELinux。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SELinux

1、SELinux简介

为了保障linux系统的安全,除了firewalld防火墙外,linux系统管理员通常会控制用户和组的权限,这种基于用户和组的安全模型称之为主动访问控制,而SELinux提供了一个额外的系统安全层,它是基于对象的安全模型,对象可以是文件、目录或端口,这样安全模型称之为强制访问控制。
SELinux提供了一组基于进程是否可以访问文件、目录或端口的安全策略。

security enhanced linux–安全加强的linux。是由美国国家安全局开发的以及历史。selinux之前是基于自主存取控制方法DAC,只要符合权限即可,通过suid和sgid特殊权限存在有一定的安全隐患,甚至一些错误的配置就会引发巨大的漏洞,被轻易攻击。
selinux是基于强制存取控制方法MAC,应用程序或用户必须同时符合DCA既要对应selinux的MAC才能正常操作,否则遭到拒绝。

DAC和MAC的比较
DAC:自主访问控制,主体是用户,访问目标文件,由文件本身权限决定的
MAC:强制访问控制,主体是程序,访问目标文件,由文件权限和策略决定。

2、SELinux的模式

SELinux一共有三种模式,分别是Enforcing、Permissive和Disabled。

模式 功能说明
enforcing 强制模式,主动拒绝SELinux策略限制的访问行为,同时会对访问行为进行记录
permissive 许可模式,暂时允许SELinux策略正在限制的访问行为,同时会对访问进行记录。该模式一般用于故障排除。
disabled 禁用模式,完全禁用SELinux

强制模式与许可模式之间可以相互切换,无需重新启动操作系统。若将模式从强制模式或许可模式更变设置为禁用模式时,此时需要重新启动操作系统才能彻底禁用SELinux;同样,若将模式从禁用模式变更设置为强制模式或许可模式时,此时也需要重新启动操作系统才能真正变更模式设置。

命令"setenforce"命令的设置只会改变SELinux当前的模式,并不会影响操作系统启动后SELinux所处的模式。配置文件/etc/selinux/config中SELINUX参数值的修改只会影响操作系统启动后SELinux所处的模式,并不会影响SELinux当前的模式。

3、管理SELinux上下文

Linux系统中每个文件、目录和端口都具有特别的安全标签,该标签称之为SELinux上下文。SELinux安全策略就是通过SELinux上下文用来确定进程是否可以访问文件、目录或端口。

SELinux标签具有多种上下文,依照顺序依次为用户、角色、类型和敏感度。RHEL中的默认策略会根据第三个上下文,即类型值上下文来制定规则。类型值的特征非常明显,通常以"_t"结尾。如web服务器的DocumentRoot目录/var/www/html中的文件或目录的类型为"httpd_sys_content_t"。

初始SELinux上下文

  • 一般情况下,文件的初始SELinux上下文由该文件父目录的SELinux上下文决定。当在某个目录中新建文件时,父目录的SELinux上下文会分配给新建的文件。

SELinux上下文的更改

  • 文件或目录SELinux上下文的更改由"chcon"和"restorecon"这两个命令完成。
命令 功能描述
chcon 将文件或目录的SELinux上下文更改为指定的类型,选项”-t”用于指定上下文类型
restorecon 更改文件或目录的SELinux上下文的首选方式。它使用SELinux策略中的规则来确定文件或目录默认的上下文

查看文件的context值:

ll -Z  /abc/aa

查看目录的context值:

ll -ldZ /abc/

安全上下文三部分组成:用户u、角色r和类型识别符t

chcon -t tmp_t redhat # 更改redhat的context值为tmp_t

restorecon -v redhat  # 恢复redhat的context值
# 更改路径context值也会发生变化。

# 永久修改context值
semanage fcontext -a -t tmp_t "/abc(/.*)?"
restorecon -RFv /abc/

标签换乱时,touch /.autorelabel 重打标签
或将selinux配置文件中改为disabled重启再改回来。

4、bool开关

getsebool -a # 查看所有bool开关
setsebool -P # 修改布尔开关

例子:
临时修改(服务器重启后,失效)

setsebool  ftpd_full_access on

永久修改:

setsebool -P ftpd_full_access on

端口标记
添加

semanage port  -a -t [端口类型] -p  【tcp/udp】  【端口号】

添加端口标签

semanage port -a -t http_port_t -p tcp 8910

查询端口标签

semanage port -a | grep 8910

修改端口标签

semanage port -m -t pegasus_http_port_t -p tcp 8910

删除端口标签

semanage port -d -t pegasus_http_port_t -p tcp 8910
e port -m -t pegasus_http_port_t -p tcp 8910

删除端口标签文章来源地址https://www.toymoban.com/news/detail-780487.html

semanage port -d -t pegasus_http_port_t -p tcp 8910

到了这里,关于17.SELinux的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 使用bash创建MYSQL数据库并导入数据库文件

    主要是杠一下的数据库123-456.sql,这个神经病一样,试了很多写法

    2024年01月22日
    浏览(67)
  • linux环境安装mysql数据库

    一:查看是否自带mariadb数据库 命令:rpm -qa | grep mariadb 如果自带数据库则卸载掉重新安装 命令:yum remove mariadb-connector-c-3.1.11-2.el8_3.x86_64 二:下载mysql 命令:wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 注意:如果出现No such file or directory,运行命令:su root 三

    2024年02月15日
    浏览(56)
  • linux系统--------------mysql数据库管理

    目录 一、SQL语句 1.1SQL语言分类 1.2查看数据库信息    1.3登录到你想登录的库 1.4查看数据库中的表信息 1.5显示数据表的结构(字段) 1.5.1数据表的结构 1.5.2常用的数据类型: 二、关系型数据库的四种语言 2.1DDL:数据定义语言,用于创建数据库对象,如库、表、索引等 2.1.1库

    2024年03月24日
    浏览(53)
  • Linux 导入MySQL数据库(四)

    一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1、导出数据和表结构: 敲回车后会提示输入密码 PS: 在Linux命令中, 符号用于将命令的输出重定向到文件中。在这个例子中,mysqldump命令将数据库abc的数据和表结构导出到一个名为abc.sql的文件中。如

    2024年02月09日
    浏览(51)
  • MySQL笔记——MySQL数据库介绍以及在Linux里面安装MySQL数据库,对MySQL数据库的简单操作,MySQL的外接应用程序使用说明

    MySQL笔记——MySQL数据库介绍以及在Linux里面安装MySQL数据库,对MySQL数据库的简单操作,MySQL的外接应用程序使用说明 MySQL笔记——表的分组查询、表的分页查询、表的约束、数据库设计 MySQL案例——多表查询以及嵌套查询 MySQL笔记——数据库当中的事务以及Java实现对数据库进

    2024年01月16日
    浏览(75)
  • MySQL -- Linux Ubuntu 环境安装MySQL数据库

    安装 启动mysql服务 查看mysql服务 如下图所示,mysql服务正在运行 设置root密码 在第一次安装MySQL时,root用户没有密码。为了保护数据库的安全,必须设置一个root密码。使用以下命令登录到MySQL控制台 此时登录到MySQL控制台中 此时输入 暂停mysql服务 卸载 有时候忘记root账户密码

    2024年01月21日
    浏览(58)
  • linux高级管理——访问MYSQL数据库

    一、认识数据库系统:  MySQL数据库系统也是一个典型的C/S(客户端/服务器)架构的应用,要访问MySQL数据库需要使用专门的客户端软件。在Linux系统中,最简单、易用的MySQL客户端软件是其自带的mysql命令工具。 1.登录到MySQL服务器 经过安装后的初始化过程,MySQL 数据库的默

    2024年02月04日
    浏览(43)
  • Linux下彻底卸载MySQL数据库

    一、检查服务器是否已经安装了MySQL 二、查看MySQL服务是否开启 如开启则关闭MySQL服务,执行以下命令: 三、查找含有MySQL的目录 根据自己查找出来的目录进行依次删除: 还需删除以下两个目录: 四、查找MySQL安装的组件服务 卸载并删除查找出来的组件服务: 五、卸载完成

    2024年02月21日
    浏览(74)
  • 如何在Linux用Docker部署MySQL数据库并远程访问本地数据库

    本文主要介绍如何使用Docker部署MySQL,并结合cpolar内网穿透工具实现远程访问本地数据库。 Docker提供了一个轻量级的容器化解决方案,可以更好的简化数据库的部署过程。让创建和管理MySQL数据库变得更简单快捷。下面就来分享一下具体的部署过程,并提出一些需要注意的事

    2024年03月10日
    浏览(41)
  • Linux服务器装mysql数据库并且连接数据库(详细教程)(阿里云)

    废话不多说,直接上教程。 1.首先执行如下命令,更新YUM源。 2.执行如下命令,安装MySQL。 3.执行如下命令,查看MySQL版本号。 4.返回结果如下,表示您已成功安装MySQL。 5.执行如下命令,启动MySQL服务。 6. 执行如下命令,设置MySQL服务开机自启动。 7.配置MySQL的root用户密码。

    2024年02月06日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包