Selinux 安全上下文与端口控制

news2024/11/26 7:36:08

Selinux

Selinux 的全称是Security Enhance Linux,就是安全加强的Linux。在Selinux之前root账号能够任意的访问所有文档和服务在selinux中,访问控制属性叫做安全上下文,所有客体(文件、进程间通讯通道、套接字、网络主机等)都有与其关联的安全上下文,安全上下文分为以下4个部分:
user(身份识别):role(角色):type(类型):sensitivity(限制访问的需要)其中type(类型)最重要:指定数据类型,规则中定义何种进程类型访问何种文件,基本上,一个主进程能不能读取到这个文件资源与类型字段有关

设置安全上下文

semanage 是 SELinux的一个管理工具,可用来查询和修改目录的安全上下文,semanage命令不仅能够像传统chcon命令那样—设置文件、目录的策略,还可以管理网络端口、消息接口

经常用到的几个参数及其功能如下所示:

-l 参数用于查询
-a 参数用于添加
-m 参数用于修改
-d 参数用于删除​​​​​​
-t 安全上下文类型

下载安装semanage工具

$ yum list | grep policycoreutils-python-utils
policycoreutils-python-utils.noarch                    2.9-16.el8                                             @base 
$ yum -y install policycoreutils-python-utils

查看安全上下文
查看某个目录的安全上下文 

$ semanage fcontext -l | grep "/var/www"
/var/www(/.*)?               all files          system_u:object_r:httpd_sys_content_t:s0   # 安全上下文类型为 httpd_sys_content_t
/var/www(/.*)?/logs(/.*)?    all files          system_u:object_r:httpd_log_t:s0           # 安全上下文类型为 httpd_log_t

在该目录下创建文件,并查看其安全上下文与上面查看的目录的上下文类型一样

$ cd /var/www
$ touch test 
$ ls -lZ
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0  0 5月  23 23:06 test
$ mkdir logs
$ ls -lZ
drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0  6 5月  23 23:33 logs
$ restorecon logs/   # 恢复SELinux文件属性即恢复文件的安全上下文
$ ls -lZ
drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_log_t:s0          6 5月  23 23:33 logs

创建一个新目录并为其设置安全上下文

$ mkdir wb1
$ ls -Zl |grep wb1 
drwxr-xr-x.   2 root root unconfined_u:object_r:default_t:s0    6 5月  23 23:51 wb1  # 安全上下文类型为缺省的
$ semanage fcontext -l | grep /we1  # 此时也查看不到安全上下文
$ semanage fcontext -a -t httpd_sys_content_t '/wb1(/.*)?' # 给目录添加安全上下文类型(永久生效)
$ restorecon -Rv wb1/
$ cd /wb1/
$ touch test
$ ls -lZ
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 0 5月  23 23:59 test

示例: 修改 httpd 默认服务目录时 、需要设置新目录的安全上下文 

创建存放网页的新目录,并修改httpd配置文件

$ mkdir -p  /web4/www/html
$ echo 'httpd test' > web4/www/html/index1.html

$ vim /etc/httpd/conf/httpd.conf 

DocumentRoot "/web4/www/html"

<Directory "/web4/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

$ ls -Zl
drwxr-xr-x.   3 root root system_u:object_r:default_t:s0                 17 5月  24 23:08 web4

$ systemctl restart httpd

访问 http 页面时,没有显示网页内容

 修改目录的安全上下文类型

$ semanage fcontext -a -t httpd_sys_content_t '/web4(/.*)?'
$ restorecon -Rv web4/

成功访问到网页内容

 临时修改安全上下文  chcon -t 

$ chcon -t samba_share_t a
$ ls -lZ
-rw-r--r--. 1 root root unconfined_u:object_r:samba_share_t:s0        0 5月  24 00:21 a

服务端口控制

示例:将 httpd 的 端口更改为 83

修改端口后无法启动 httpd 如下

$ vim /etc/httpd/conf/httpd.conf
Listen 83
$ systemctl restart httpd
Job for httpd.service failed because the control process exited with error code.
See "systemctl status httpd.service" and "journalctl -xe" for details.

配置selinux允许开放83端口

$ semanage port -a -t http_port_t -p tcp 83
$ semanage port -l | grep http_port_t    # 查看当前放行的端口
http_port_t                    tcp      83, 82, 80, 81, 443, 488, 8008, 8009, 8443, 9000
$ systemctl restart httpd
重启成功,httpd已监听在83端口
$ netstat -ntlp
tcp6       0      0 :::83              :::*           LISTEN     81601/httpd   

selinux 开启与关闭

selinux 的三种状态:

enforcing  是强制模式系统——它受selinux保护,就是违反了策略你就无法继续操作下去。
permissive 是提示模式系统不会受到selinux保护,只是收到警告信息——permissive就是selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你违反的内容记录下来(警告信息)
disabled   禁用selinux——关闭selinux

临时开启 selinux:

$ setenforce 0
$ getenforce 
Permissive
$ setenforce 1
$ getenforce 
Enforcing

$ tail /var/log/audit/audit.log 查看日志

永久开启:

$ vim /etc/selinux/config  # 下次重启前生效
SELINUX=permissive

关闭selinux 需要修改配置文件:

$ ls -l   # 开启selinux时
-rw-------. 1 root root 1328 5月   6 23:38 anaconda-ks.cfg
关闭selinux
$ vim /etc/selinux/config
SELINUX=disabled
$ getenforce 
Disabled
$ setenforce 1
setenforce: SELinux is disabled

selinux 布尔值

$ semanage boolean -l  # 查看
$ setsebool -P samba_create_home_dirs on   # 打开
$ setsebool -P samba_create_home_dirs off  # 关闭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/566074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

创客匠人CEO蒋洪波:抓住抓住市场需求发展

拍手访谈创客匠人CEO蒋洪波&#xff1a;创客匠人是如何开始的&#xff1f;未来又将如何发展&#xff1f; 一、创客匠人知识付费是如何开始的&#xff1f; 1.从爱好出发 我本人喜欢做产品&#xff0c;或者说是喜欢研究产品。 得益于在研发产品上的一些天赋&#xff0c;我们产品…

第五十一天学习记录:C语言进阶:枚举和联合(共用体)

枚举顾名思义就是一一列举。 枚举的优点 我们可以使用#define定义常量&#xff0c;为什么非要使用枚举&#xff1f; 1、增加代码的可读性和可维护性 2、和#define定义的标识符比较枚举有类型检查&#xff0c;更加严谨 3、防止了命名污染&#xff08;封装&#xff09; 4、便于…

【Simulink】示波器图形数据导入Matlab重新绘图(论文)

版本&#xff1a;Matlab2019b 效果 示波器波形图片&#xff1a; 黑色背景&#xff0c;而且坐标轴字体较小&#xff0c;不方便修改&#xff0c;不能直接用在论文上面 对比 Matlab 绘图&#xff1a; 接下来介绍如何设置~ Simulink 设置 选择需要导入的示波器数据 点击 Vi…

termux-x11教程

小粉丝已经求稿两个星期了&#xff0c;不写是不行了。 termux-x11 是Termux的一个图形化项目&#xff0c;官方是这么介绍的。 A Termux add-on app providing Android frontend for Xwayland.安装工具 我们需要在Termux和安卓系统上安装工具以成功的运行程序。 x11-repo&am…

实现图片懒加载的5种方式

目录 1、懒加载介绍 2、实现懒加载技术的方案 3、具体实现代码 1、懒加载介绍 当页面需要展示大量图片时&#xff0c;如果一次性渲染所有图片&#xff0c;会向服务器发出大量请求&#xff0c;导致服务器响应慢&#xff0c;出现页面卡顿或崩溃等问题。采用懒加载技术只预先加…

渗透测试 | 指纹识别

0x00 免责声明 本文仅限于学习讨论与技术知识的分享&#xff0c;不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;本文作者不为此承担任何责任&#xff0c;一旦造成后果请自行承担…

LC-3中断实验

一、实验目的 学会分析和理解给定的编程问题&#xff1b;掌握中断驱动的基本原理&#xff1b;掌握键盘数据寄存器&#xff08;KBDR)及键盘状态寄存器&#xff08;KBSR&#xff09;工作基本原理&#xff1b;掌握输出数据寄存器&#xff08;DDR)及输出状态寄存器&#xff08;DSR…

Splunk安装配置

前言 Splunk 社区 &#xff0c;包括白皮书&#xff0c;各类手册&#xff0c;资源下载&#xff0c;社区问答等 入门&#xff1a;Splunk 入门指南 | Splunk 手册&#xff1a;Splunk Enterprise - Splunk Documentation 资源下载:数据可视化工具Splunk Enterprise免费下载 | S…

chatgpt赋能python:Python对Word文档的支持——打造高效办公新选择

Python对Word文档的支持——打造高效办公新选择 在现代社会&#xff0c;文档处理和管理已成为各行各业不可或缺的一部分。在这个领域中&#xff0c;Word文档一直占据主导地位&#xff0c;成为了几乎所有企业和机构必备的工具。而Python作为一门众所周知的高效编程语言&#xf…

雅思口语话题准备(一)

目录 where are you from&#xff1f; 3.Will you live in the countryside in the future? 4.Have you learned the history of your hometown at school? Does your name have any particular(or special)meaning? 作为一个英语音标大师&#xff0c;请问ɒ和ɔ他们之间有…

chatgpt赋能python:Python%(.2f)怎么用?从入门到进阶

Python%(.2f)怎么用&#xff1f;从入门到进阶 Python作为一种高效的编程语言&#xff0c;拥有广泛的应用领域&#xff0c;尤其在AI、数据分析、Web开发以及自动化运维等方面得到了广泛的应用&#xff0c;成为当下最受欢迎的编程语言之一。在这篇SEO文章中&#xff0c;我们将介…

5月25日第壹简报,星期四,农历四月初七

5月25日第壹简报&#xff0c;星期四&#xff0c;农历四月初七坚持阅读&#xff0c;静待花开1. 教育部&#xff1a;2023年为中西部乡镇卫生院培养订单定向免费五年制本科医学生共计6150人。2. 全球第一个集成人工智能功能的PC系统诞生&#xff01;微软宣布将在6月推出Windows Co…

c++ ffmpeg 浅谈YUV444、YUV422、YUV420(2)

本期将会给大家介绍YUV相关基础知识&#xff0c;同时也介绍威创网络分布式系统的卓越色彩处理技术。 1.什么是YUV色彩空间 2.YUV采样格式 3.YUV不同采样格式对图像画质的影响分析 一、什么是YUV色彩空间? YUV是视频、图片、相机等应用中常常使用的一类图像格式&#xff0c;是…

达美乐面试(部分)(未完全解析)

Java如何保证非线程安全的数据结构&#xff08;比如HashMap&#xff09;的原子性&#xff1f;读多写少时用哪种锁好? A: 方法1&#xff1a;CAS等乐观锁机制&#xff0c;方法2&#xff1a;如果读多写少&#xff0c;可以使用读写锁&#xff08;ReentrantReadWriteLock&#xff0…

【MySQL 数据库】3、多表查询

目录 一、多表关系二、多表查询三、内连接四、外连接五、自连接六、联合查询七、什么是子查询八、标量子查询九、列子查询十、行子查询十一、表子查询十二、多表查询练习题 一、多表关系 项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块…

移动端H5页面PDF操作及预览

环境&#xff1a;nodejs 适配&#xff1a;移动端主流浏览器支持企业微信低版本 插件&#xff1a;pdfjs-dist 2.6.347 方案一 本地构建 拉取项目&#xff1a; git clone https://github.com/mozilla/pdfjs-dist.git 全局安装gulp npm install -g gulp-cli 安装项目依赖 np…

chatgpt赋能python:Python中的s.len()方法介绍

Python中的s.len()方法介绍 Python中有各种字符串处理方法&#xff0c;其中s.len()方法是一个重要的方法之一。s.len()返回一个字符串s的长度。这是一个非常基本的方法&#xff0c;但是在很多情况下都会被使用。本文将介绍Python中s.len()方法的一些用法和注意事项。 s.len()…

Redis持久化及集群

Redis可以通过将数据保存在磁盘里实现持久化功能, 以防止宕机导致的数据大量丢失.但是持久化只能保证在磁盘不损坏的情况下, 长时间保存数据, 如果一旦磁盘损坏, 数据仍然会丢失. 为了解决这个问题, 主从复制应允而生. 主从复制是Redis集群中的一总, 其中一个Redis做主, 其他R…

C++数据结构:线性顺序表(数组)

文章目录 前言一、vector简介二、泛型编程自定义数组结构1、定义类2、删除、读取元素和首尾指针3、修改元素、获取元素数量、和插入 总结 前言 将一个线性表存储到计算机中&#xff0c;把线性表的结点按逻辑顺序依次存放到一组地址连续的存储单元里&#xff0c;用这种方法存储…