怎么利用Sudoers权限控制防止普通用户擅自开启已被关闭的端口

老明姑娘_3692

老明姑娘_3692

2026-05-26

437人浏览

原创

不能靠sudoers直接禁止开启端口,而应通过预定义带端口白名单校验的专用脚本(如open-nginx-port)、精确sudo授权、脚本锁定、安全日志及环境隔离等组合措施,实现端口操作的受控、可审计与防绕过。

怎么利用sudoers权限控制防止普通用户擅自开启已被关闭的端口

不能靠 sudoers 直接“禁止开启端口”,而应通过精确授权管理端口操作的命令入口,把“改端口状态”变成一个受控、可审计、带校验的有限动作。

核心思路:不拦动作,只控入口

Linux 中开启端口本质是修改防火墙规则(iptables/nftables)或启动监听服务。普通用户若能随意执行 systemctl start xxx 或 iptables -I,就等于绕过所有控制。正确做法是:

  • 禁用所有原始防火墙和服务管理命令的直接 sudo 权限
  • 为每个需开放的端口/服务,预定义白名单式操作脚本
  • 只授权用户运行这些脚本,且脚本内嵌端口合法性检查与审批日志

具体配置步骤

以“仅允许 ops 组重启 nginx(监听 80/443)且禁止擅自打开其他端口”为例:

造次
造次

一款AI视频创作工具,主要用于Liblib打造的AI原创IP视频创作社区,适合需要提升相关任务效率的用户。

下载
  • 第一步:剥离服务控制权
    停用直接 systemctl 权限:
    %ops ALL=(root) !/usr/bin/systemctl start *, !/usr/bin/systemctl enable *
  • 第二步:提供带校验的专用脚本
    新建 /usr/local/bin/open-nginx-port,内容含端口白名单判断:
    if [[ "$1" != "80" && "$1" != "443" ]]; then echo "Port $1 not allowed"; exit 1; fi
    再调用 firewall-cmd --add-port="$1"/tcp --permanent 并重载
  • 第三步:sudoers 精确授权
    在 /etc/sudoers.d/30-nginx-port 中写:
    %ops ALL=(root) NOPASSWD: /usr/local/bin/open-nginx-port [0-9][0-9][0-9][0-9]
    注意:用 [0-9][0-9][0-9][0-9] 限制参数为 4 位数字,比通配符 * 安全得多

配套加固要点

单靠 sudoers 不够,必须组合以下措施:

  • 确保 /usr/local/bin/open-nginx-port 属主为 root:root,权限 755,并用 chattr +i 锁定防止篡改
  • 在 sudoers 中启用 Defaults env_reset 和 Defaults secure_path,杜绝通过 PATH 劫持或环境变量绕过
  • 所有脚本操作自动记录到独立日志(如 /var/log/firewall-audit.log),包含执行者、时间、端口号
  • 定期用 sudo -l -U username 审计用户实际可用命令,确认无意外暴露的 iptables 或 nft 路径

为什么不用直接禁用 iptables?

因为禁用命令本身容易被绕过——用户可写 shell 脚本、调用 python 子进程、甚至用 socat 监听端口。真正安全的方式是:让“开一个端口”这件事,只能通过你写的、经过签名和校验的脚本完成,而不是靠堵命令列表。

相关文章

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

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

下载

相关标签:

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

相关专题

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

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

2023.08.15

457

5

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

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

2023.09.08

960

5

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

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

2023.09.19

3192

5

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

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

2023.10.09

1056

5

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

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

2023.10.17

949

5

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

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

2023.10.17

494

3

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

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

2023.10.18

2916

4

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

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

2023.10.20

5472

4

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

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

2023.10.20

847

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

如何在 Windows 11 上安装 XAMPP
如何在 Windows 11 上安装 XAMPP

共1课时 | 220人学习