nginx降权及匹配php

news2025/3/1 18:39:59

1.nginx降权

1.1 capabilities的介绍与运用

1.2 用普通用户启动nginx

1.3 root用户权限赋予

1.4 查看普通用户的nginx权限

1.5 查看nginx的欢迎网页

 2.nginx与php的相互匹配

2.1 安装php及php-fpm包

2.2 检查php-fpm服务运行状态

2.3 php-fpm上的配置

2.4 nginx上的配置

2.4 检测nginx与php是否匹配成功


1.nginx降权

1.1 capabilities的介绍与运用

在Linux内核2.2之前,为了检查进程权限,将进程区分为两类:特权进程(euid=0)和非特权进程。特权进程(通常为带有suid的程序)可以获取完整的root权限来对系统进行操作,但是如此操作会导致普通用户的权限过大,使得攻击者也会拥有重要进程的root权限,十分危险。

在linux内核2.2之后引入了capabilities机制,来对root权限进行更加细粒度的划分。如果进程不是特权进程,而且也没有root的有效id,系统就会去检查进程的capabilities,来确认该进程是否有执行特权操作的的权限。

这样一来,权限检查的过程就变成了:在执行特权操作时,如果线程的有效身份不是root,就去检查其是否具有该特权操作所对应的capabilities,并以此为依据,决定是否可以执行特权操作。

注意:如果Capabilities设置不正确,就会让攻击者有机可乘,实现权限提升。

可以通过man capabilities来查看具体的capabilities。

capability名称描述
CAP_AUDIT_CONTROL启用和禁用内核审计;改变审计过滤规则;检索审计状态和过滤规则
CAP_AUDIT_READ允许通过 multicast netlink 套接字读取审计日志
CAP_AUDIT_WRITE将记录写入内核审计日志
CAP_BLOCK_SUSPEND使用可以阻止系统挂起的特性
CAP_CHOWN修改文件所有者的权限
CAP_DAC_OVERRIDE忽略文件的 DAC 访问限制
CAP_DAC_READ_SEARCH忽略文件读及目录搜索的 DAC 访问限制
CAP_FOWNER忽略文件属主 ID 必须和进程用户 ID 相匹配的限制
CAP_FSETID允许设置文件的 setuid 位
CAP_IPC_LOCK允许锁定共享内存片段
CAP_IPC_OWNER忽略 IPC 所有权检查
CAP_KILL允许对不属于自己的进程发送信号
CAP_LEASE允许修改文件锁的 FL_LEASE 标志
CAP_LINUX_IMMUTABLE允许修改文件的 IMMUTABLE 和 APPEND 属性标志
CAP_MAC_ADMIN允许 MAC 配置或状态更改
CAP_MAC_OVERRIDE忽略文件的 DAC 访问限制
CAP_MKNOD允许使用 mknod() 系统调用
CAP_NET_ADMIN允许执行网络管理任务
CAP_NET_BIND_SERVICE允许绑定到小于 1024 的端口
CAP_NET_BROADCAST允许网络广播和多播访问
CAP_NET_RAW允许使用原始套接字
CAP_SETGID允许改变进程的 GID
CAP_SETFCAP允许为文件设置任意的 capabilities
CAP_SETPCAP参考 capabilities man page
CAP_SETUID允许改变进程的 UID
CAP_SYS_ADMIN允许执行系统管理任务,如加载或卸载文件系统、设置磁盘配额等
CAP_SYS_BOOT允许重新启动系统
CAP_SYS_CHROOT允许使用 chroot() 系统调用
CAP_SYS_MODULE允许插入和删除内核模块
CAP_SYS_NICE允许提升优先级及设置其他进程的优先级
CAP_SYS_PACCT允许执行进程的 BSD 式审计
CAP_SYS_PTRACE允许跟踪任何进程
CAP_SYS_RAWIO允许直接访问 /devport、/dev/mem、/dev/kmem 及原始块设备
CAP_SYS_RESOURCE忽略资源限制
CAP_SYS_TIME允许改变系统时钟
CAP_SYS_TTY_CONFIG允许配置 TTY 设备
CAP_SYSLOG允许使用 syslog() 系统调用
CAP_WAKE_ALARM允许触发一些能唤醒系统的东西(比如 CLOCKBOOTTIMEALARM 计时器)

由于这里我们的目标是为nginx降权,所以我们这里主要使用的capabilities指令为CAP_NET_BIND_SERVICE 用它绑定 nginx 的端口赋予普通用户nginx的端口权限。(nginx的默认端口为80)

1.2 用普通用户启动nginx

 现在在普通用户的 /www/env/nginx/sbin目录即 nginx安装目录下无法启动nginx服务说明,说明现在普通用户没有nginx的使用权限。

1.3 root用户权限赋予

指令:setcap CAP_NET_BIND_SERVICE=eip nginx  

 使用 getcap 指令查看nginx的端口权限绑定成功

注意:这里要更改nginx的所属关系为普通用户

1.4 查看普通用户的nginx权限

用普通用户启动nginx

 查看nginx程序的进程都为普通用户创建

 说明nginx的降权操作成功

1.5 查看nginx的欢迎网页

 2.nginx与php的相互匹配

2.1 安装php及php-fpm包

apt install php
apt install php-fpm

2.2 检查php-fpm服务运行状态

systemctl status php8.1-fpm

 2.3 php-fpm上的配置

在php的安装目录下找到 php/8.1/fpm/pool.d/www.conf 的配置文件打开

  修改php监听的端口号为本机的9000端口

取消所选框字段的注释  listen.allowed_clients 字段是允许监听的服务端,这里设为只允许本机监听,否则会触发 php-fpm服务的未授权访问漏洞。

2.4 nginx上的配置

在nginx的安装目录下找到 nginx/conf/nginx.conf 的配置文件打开

 找到所选框内关于与php相互匹配的注释,将注释取消,开通二者的匹配关系。

2.4 检测nginx与php是否匹配成功

在nginx/html 的目录下创建一个 index.php 文件:

文件内容:

<?php
phpinfo()
?>

从浏览器的nginx界面打开 index.php 文件

成功标志着nginx与php相互匹配成功。

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

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

相关文章

基于matlab的精馏塔作业模拟仿真

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 原料物性表如下&#xff1a; 表3-1原料物理性质表 组分 质量流率 质量分数 摩尔流率 摩尔分数 分子量 常压沸点 丙烷 472.938 7.567…

SpringBoot SpringBoot 原理篇 1 自动配置 1.9 bean 的加载方式【七】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.9 bean 的加载方式【七】1.9.1 ImportBeanDefinitionRegistrar1 …

mysql 到底是 join性能好,还是in一下更快呢

先总结&#xff1a; 数据量小的时候&#xff0c;用join更划算数据量大的时候&#xff0c;join的成本更高&#xff0c;但相对来说join的速度会更快数据量过大的时候&#xff0c;in的数据量过多&#xff0c;会有无法执行SQL的问题&#xff0c;待解决 事情是这样的&#xff0c;去…

浅谈Spring Cloud Gateway源码

本文不谈Spring Cloud Gateway相关的使用&#xff0c;仅梳理在微服务项目中&#xff0c;在使用Spring Cloud Gateway做为服务网关后&#xff0c;接收到请求后的大体执行流程。 文章目录大致流程图具体流程一、DispatcherHandler二、getHandler1、getHandlerInternal2、lookupRo…

【GlobalMapper精品教程】027:路径剖面和和视线工具的使用

文章目录 一、路径剖面简介二、创建剖面图1. 加载DEM2. 创建剖面图3. 计算填挖方3. 保存剖面图一、路径剖面简介 路径剖面视线工具允许您使用加载的高程数据集沿用户指定的路径获取垂直剖面。 要定义生成3D路径剖面所遵循的路径,只需单击鼠标左键选择路径的点,然后石键单击…

[acwing周赛复盘] 第 60 场周赛20220716

[acwing周赛复盘] 第 60 场周赛20220716 一、本周周赛总结二、 4722. 数列元素1. 题目描述2. 思路分析3. 代码实现三、4723. 队列1. 题目描述2. 思路分析3. 代码实现四、4724. 靓号1. 题目描述2. 思路分析3. 代码实现六、参考链接一、本周周赛总结 第一次打acwing&#xff0c;…

POJ1007:DNA排序

一、Description One measure of unsortedness in a sequence is the number of pairs of entries that are out of order with respect to each other. For instance, in the letter sequence DAABEC’‘, this measure is 5, since D is greater than four letters to its ri…

傻白入门芯片设计,典型的2D/2D+/2.5D/3D封装技术(六)

集成电路终于成为了一级学科&#xff0c;对集成电路领域的投入也日益加大&#xff0c;集成电路属于电子集成技术的一种&#xff0c;那么&#xff0c;现在的电子集成技术发展到了什么程度呢&#xff1f; 先进的电子集成技术可以在不到芝麻粒大小的1平方毫米内集成1亿只以上的晶体…

Tableau 合集3:格式设置之可视化图显示百分比和提示工具对齐问题

一、前言 本文通过可视化图中显示不了百分比和提示工具无法对齐两个小问题出发&#xff0c;介绍了关于Tableau设置格式和工具提示的一些使用方法。 环境&#xff1a;Windows11 64位、Tableau desktop 2021.2 二、问题1&#xff1a;可视化图中显示不了百分比 问题描述&#…

springboot整合其它项目(连接池和监控)

目录 一、整合Druid 1. Druid是什么&#xff1f; 2.如何在Spring Boot中集成Druid连接池和监控&#xff1f; 二、整合Redis 1.集成redis之非注解式开发 2.集成redis之注解缓存开发 一、整合Druid 1. Druid是什么&#xff1f; Druid是Java语言中最好的数据库连接池。…

paddleocr识别模型训练记录

准备数据集 自己新建目录 下载识别预训练模型 下载之后是一个压缩包&#xff0c;解压后&#xff08;注意&#xff1a;rec是自己新建的目录&#xff09; 修改配置文件 修改内容&#xff1a; 1.训练后模型存储目录&#xff1b; 2.是否训练可视化&#xff1b; 3.训练数据集图…

tensorflow2 minist手写数字识别数据训练

✨ 博客主页&#xff1a;小小马车夫的主页 ✨ 所属专栏&#xff1a;Tensorflow 文章目录前言一、tenosrflow minist手写数字识别代码二、输出三、参考资料总结前言 刚开始学习tensorflow&#xff0c; 首先接触的是minist手写数字识别&#xff0c;用的梯度下降算法&#xff0c;…

linux下mysql的三种安装方法

目录1. 离线安装&#xff08;.tar.gz安装包&#xff09;2. 离线安装&#xff08;rpm安装包&#xff09;3. 在线安装&#xff08;yum安装&#xff09;前言安装环境 : Redhat Enterprise Linux 81. 离线安装&#xff08;.tar.gz安装包&#xff09; 参考这篇博客 2. 离线安装&am…

HTB-Toolbox

HTB-Toolbox信息收集提权信息收集 使用nmap简单扫描一下网站端口。 21 ftp22 ssh443 https&#xff1f; 去https看看。 网站基本是静态的。因为是https&#xff0c;所以有ssl协议&#xff0c;去看看吧。 more information里面能找到协议。 找到admin.megalogistic.com子域。…

Spring(完整版)

文章目录一、Spring(一)、Spring简介1、Spring概述2、Spring家族3、Spring Framework1、Spring Framework五大功能模块2、Spring Framework特性(二)、控制反转IOC1、IOC容器1、IOC思想2、IOC容器在Spring中的两种实现方式①BeanFactory②ApplicationContext③ApplicationContex…

配置elasticsearch用windows account(AD)登录

配置elasticsearch用windows account&#xff08;AD&#xff09;登录编辑es的配置文件创建role mapping文件添加windows account的密码给role mapping和cacert文件正确的权限重启kibana和elasticsearch在kibana页面登陆elasticsearch参考文章&#xff1a;• https://www.elasti…

vue中如何使用swiper以及解决swiper初始化过早的问题

后端的返回的数据用数组接收; 把swiper放到根组件里的mounted&#xff0c;也会出现swiper先初始化&#xff0c;dom再加载的问题&#xff1a; swiper初始化在mounted里执行&#xff1b;setTimeout定时器是从后端请求回来的数据&#xff1b; 代码执行顺序是&#xff1a;当组件创…

Eureka Server配置

01.Eureka Server配置 Eureka Server提供注册服务&#xff0c;各个节点启动后&#xff0c;会在EurekaServer中进行注册&#xff0c;Eureka Server会存储所有可用信息的服务节点&#xff0c;其信息可以在界面中直观的观察到。&#xff08;服务注册中心 CAP核心理论 一个分布式…

(十六)Spring对事务的支持

文章目录环境事务概述引入事务场景第一步&#xff1a;准备环境第二步&#xff1a;编写持久层第三步&#xff1a;编写业务层第四步&#xff1a;编写Spring配置文件第五步&#xff1a;编写表示层&#xff08;测试程序&#xff09;模拟异常Spring对事务的支持Spring事务管理API声明…

mysql-6-主从复制搭建

1 总结 1&#xff1a;主从复制最大缺陷就是延迟。 2 搭建前的准备 2.1复制的基本原则 每个slave只有一个master每个slave只能有一个唯一的服务器ID每个master可以有多个slavemysql版本尽量一致&#xff0c;防止出问题。两台服务能ping通MySQL主从是基于binlog的&#xff0c;主上…