如何在Linux利用Mount -O Nosuid,Noexec,Nodev实现对对外开放的公共挂载点进行最高等级的安全防御加固

冬丽同学_3762

冬丽同学_3762

2026-06-06

958人浏览

原创

必须对独立挂载、用户可写且无本地执行需求的路径(如/tmp、/var/tmp、独立挂载的/home、web上传目录、容器bind挂载目标)强制启用noexec,nosuid,nodev三者组合,缺一不可;单独启用任一选项均存在明确绕过路径。

如何在linux利用mount -o nosuid,noexec,nodev实现对对外开放的公共挂载点进行最高等级的安全防御加固

要对对外开放的公共挂载点做最高等级安全防御,核心不是堆砌参数,而是精准识别风险路径、严格匹配“用户可写 + 无合法执行需求”这一前提,并强制组合启用 noexec,nosuid,nodev 三项选项——缺一不可。

哪些挂载点必须启用这组组合

只对以下独立挂载、用户可控写入、且业务本身不依赖本地执行的路径启用:

  • /tmp 和 /var/tmp:攻击者上传 shell 脚本或二进制后常直接 ./xxx 执行,是提权第一入口
  • 独立挂载的 /home:普通用户主目录极少需要运行编译程序;启用后可阻断恶意 suid 工具或临时 payload
  • Web 上传目录(如 /var/www/uploads):PHP/Python 由解释器处理,不应允许 chmod +x 后直接执行
  • 容器 bind 挂载目标(如 /host/logs、/host/config):宿主机暴露给容器的路径,应设为只读并加三件套

为什么必须三者同时存在

单独启用任一选项都存在明确绕过路径:

Linux Ai Server
Linux Ai Server

Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。

下载
  • 没 nodev:用户可在 /tmp 下用 mknod 创建 /dev/zero 或 /dev/sda,再通过 dd 或 raw I/O 绕过文件系统层限制
  • 没 nosuid:即使不能执行,仍可能利用已存在的 setuid 程序(如 suid bash)完成提权
  • 没 noexec:上传的恶意二进制或 shell 脚本仍可直接运行,完全失去执行拦截能力

操作要点:先验证,再固化

切勿直接改 fstab 上线,务必分步验证兼容性:

  • 临时启用测试:sudo mount -o remount,noexec,nosuid,nodev /tmp
  • 验证是否生效:在 /tmp 下新建脚本 echo '#!/bin/sh; echo ok' > test.sh && chmod +x test.sh,再执行 ./test.sh —— 应报 Permission denied
  • 若业务异常(如 Java 工具需在 /tmp 解压 native lib),立即回退:sudo mount -o remount,exec,suid,dev /tmp
  • 确认无误后,编辑 /etc/fstab,在对应行第 4 列追加逗号分隔选项,例如:
    UUID=abcd1234 /tmp tmpfs defaults,nosuid,nodev,noexec 0 0
  • 保存后执行 sudo mount -a 测试语法是否合法,无报错再重启或重新挂载

注意事项与常见误区

这些限制有效但有边界,部署前需厘清:

  • noexec 不影响解释器调用:python script.py 或 php shell.php 仍可运行,它只禁止 ./script.py 这类直接 execve 调用
  • 仅对独立挂载点生效:若 /home 是根分区子目录(非独立分区),nodev 和 nosuid 都不会起作用,可用 findmnt /home 确认
  • 别误伤系统关键路径:/、/usr、/bin、/lib 等绝对不可加 noexec/nosuid,否则 sudo、passwd 等命令会失效
  • 某些旧工具依赖 suid 行为:如特定备份软件或容器运行时,上线前必须在测试环境走通完整流程

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux node

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

920

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2992

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

996

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

889

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

454

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2716

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5072

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

807

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习