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相互匹配成功。

nginx降权及匹配php相关推荐

  1. nginx降权+安装php

    nginx降权 使用普通用户启动Nginx 为什么要让nginx服务使用普通用户 默认情况下,nginx的master进程使用的是root用户,worker进程使用的是nginx指定的普通用户,使用r ...

  2. nginx降权运行和php环境部署

    nginx降权 示例环境:centos7 降权运行的应用场景 首先我们来看.默认模式下nginx的运行状态: [root@blackstone batman]# ps -elf | grep ngin ...

  3. 普通用户nginx访问不了_Nginx降权启动之使用普通用户管理 | it运维_it技术_linux运维-追梦人博客...

    一.介绍 1.1.什么是nginx降权启动 降权启动:即nginx的启动与管理使用非root用户来启动与管理,这样就防止每次修改配置重启时都需要用root用户来重启了. 注意:普通用户只能只用1024 ...

  4. 榆熙电商:拼多多怎样判断商品是否被降权?原因有哪些?

    很多商家可能在不经意间就被降权了,甚至都还可能不知道自己的店铺或产品被降权了,那么关于降权,作为商家的你知道如何进行判断吗?想要了解的小伙伴一起跟着榆熙电商小编来看看吧. 一.如何判断产品是否被降权? ...

  5. 导致网站首页降权的10个因素

    网站降权是对网站来说是一件大事,会导致网站排名.关键词下降,甚至连新页面都不一定会被搜索引擎收录.那么,都有哪些因素可能导致网站被降权呢?接下来小编就跟大家分享下导致网站首页降权的原因,一起来看看吧! ...

  6. 抖音删除作品会有哪些影响,限流降权该如何挽回丨国仁网络资讯

    玩抖音,我们常常会遇到一些操作上的问题,虽然听上去很简单,操作起来也很简单,但是,也有很多人不会操作. 更重要的是,一些小动作后面可能产生的影响大部分人都不知道.例如,最近频繁有人反馈猫哥,抖音怎么删 ...

  7. 弘辽科技:淘宝店铺被降权后,流量不短下滑,如何扭转局面

    我们要注意,单品违规对流量的影响有大有小,常见的判断标准是: 1.店铺层级越高,影响越小,店铺层级越低,影响越大: 2.店铺基础越好,影响越小,店铺基础越差,影响越大: 3.竞品越多,影响越大,竞品越 ...

  8. 隐形降权是什么, 什么行为会导致店铺被隐形降权,如何避免降权

    一.什么是隐形降权 隐形降权通俗来讲就是你的宝贝被淘宝监控了,质量得分被扣了较大的分数,导致排名直线下滑,甚至通过关键词搜索都找不到你的宝贝,通过关键词搜索怎么也找不到你的宝贝,就有被隐形降权的嫌疑了 ...

  9. 2022年电商商家如何用微查宝防止降权号引响店铺权重

    天猫全球狂欢节十周年终于结束了,毫无悬念的一个新的记录诞生,2135亿.在11月11日这一天,全民再一次掀起了购物的高潮,众商家迎来了残暴的欢愉.就连电商商家背后的服务商也赫然加入到了狂欢的队伍当中. ...

最新文章

  1. 深度学习 dns tunnel检测 使用统计特征 全连接网络——精度99.8%
  2. arm开发板上电设置静态ip_与X86/Arm三分天下,RISCV还需几步?
  3. Linux /etc/init.d目录
  4. c++如何让字符串重复输出_2020.10.02错题总结之字符串相关函数
  5. BOM事件对象even
  6. File System Auditor 安装全程截图
  7. python用cmd运行失败_解决python在cmd运行时导入包失败,出现错误信息 ModuleNotFoundError: No module named ***...
  8. linux系统支持u盘格式,linux下U盘格式化
  9. matlab cftool 最小二乘,【转】最小二乘法与matlab拟合工具箱cftool
  10. 同济线性代数教材(第五版)-第2章 矩阵及其运算
  11. IDEA实用插件推荐
  12. vscode 格式化文件配置说明
  13. 六祎-简单的排版表(python)
  14. Visual C++网络编程经典案例详解 第9章 实用播放器 编程基础 播放mp3文件 读取文件
  15. Git提交前端代码遇到Lint errors found in the listed files.和husky - pre-push hook failed (add --no-verify)
  16. 重磅!李沐「动手学深度学习」中文课程笔记来了!
  17. 怎么禁用笔记本触摸板
  18. 信捷总线11轴伺服程序,本人原创,客户设备完美运行,plc程 序框架逻辑很顺畅,梯形图只有逻辑程序,不包含任何运算,运用大量c语言完美简化程序
  19. 百度人脸识别API 的使用
  20. vbox虚拟机运行android,利用VM或VBOX安装安卓虚拟机

热门文章

  1. python网易云_[Python] 网易云歌单/歌曲下载
  2. Java实现十字形开关问题(“飞行员兄弟“)
  3. 微信公众号链接更新静态资源文件
  4. 区块链实际应用中痛点
  5. sublime运行python只显示时间_sublime3-python 编译运行不显示内容
  6. JAVAFX窗口设置阴影效果
  7. 关于前端 后端 数据库 时间的设置与传递
  8. 命令行快速清理Mac版搜狗输入法
  9. 【BZOJ1123】[POI2008]BLO【割顶】
  10. 集中化运维管理——Puppet管理之路