博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux普通用户使用1024以下的端口(80)
阅读量:5462 次
发布时间:2019-06-16

本文共 1493 字,大约阅读时间需要 4 分钟。

linux对于非root权限用户不能使用1024以下的端口,对于一些服务,过高的权限,会带来一定的风险。那么对于低权限的用户如何对外开放1024以下的端口。我这里找到几种办法并且亲测可行

首先搭建环境centos7 账户tengine没有sudo 权限

1.nginx 等软件做反向代理

反向代理不说了。网上以查到

2.iptables端口转发

首先程序绑定1024以上的端口,然后root权限下做转发注意有些系统需要手动开启IP FORWARD功能

vi /etc/sysctl.conf#修改net.ipv4.ip_forward = 1 #重新加载 sysctl -p /etc/sysctl.conf

3. setuid

root账户下执行

chown root:root nginxchmod 4755 nginx

suid

从图片可以看出来nginx可以运行,但是主进程仍然是以root权限运行,这样并不安全。

4.CAP_NET_BIND_SERVICE

从 2.1 版本开始,Linux 内核有了能力的概念,这使得普通用户也能够做只有超级用户才能完成的工作,这包括使用端口。

获取CAP_NET_BIND_SERVICE能力,即使服务程序运行在非root帐户下,也能够banding到低端口。使用的方法:

root账户下执行

setcap cap_net_bind_service=+eip /home/tengine/nginx/tengine/sbin/nginx

切换到tengine账户下

信息如下

[root@centos7 sbin]# setcap cap_net_bind_service=+eip /home/tengine/nginx/tengine/sbin/nginx[root@centos7 sbin]# su tengine[tengine@centos7 sbin]$ stat nginx 文件:"nginx" 大小:6054330 块:11832 IO 块:4096 普通文件 设备:fd00h/64768d Inode:397136 硬链接:1 权限:(0755/-rwxr-xr-x) Uid:( 1001/ tengine) Gid:( 1001/ tengine) 最近访问:2016-10-11 18:43:05.402239835 +0800 最近更改:2016-10-11 18:25:47.273183401 +0800 最近改动:2016-10-11 18:48:23.084257104 +0800 创建时间:- [tengine@centos7 sbin]$ ./nginx [tengine@centos7 sbin]$ ps -aux| grep nginx tengine 18014 0.0 0.1 45500 1124 ? Ss 18:49 0:00 nginx: master process ./nginx tengine 18015 0.0 0.1 45960 1596 ? S 18:49 0:00 nginx: worker process tengine 18017 0.0 0.0 112664 984 pts/0 R+ 18:49 0:00 grep --color=auto nginx [tengine@centos7 sbin]$

cap_net_bind_service

最后别忘记怎么清除这个能力

setcap -r nginx

转载于:https://www.cnblogs.com/qianzf/p/7606191.html

你可能感兴趣的文章
3. Longest Substring Without Repeating Characters
查看>>
织梦添加搜索功能
查看>>
JDK的安装和环境变量配置
查看>>
jmeter学习记录--05--Beanshell2
查看>>
【动态语言和静态语言】动态语言和静态语言的认识,定义
查看>>
如何实现Android欢迎页
查看>>
Java 解析chm文件实战(原创)
查看>>
(HttpMessageNotWritableException ) No converter found for return value of type xxxx
查看>>
个人工作总结18
查看>>
yui cookie Dynamically Change Text Size Using Javascript 动态设置字体大小,写入Cookie
查看>>
elasticsearch-query-builder, 一款可以基于配置化以及参数绑定的ES语句构造神器
查看>>
Java 异常处理
查看>>
Sql中获取表结构(字段名称,类型,长度,说明)
查看>>
90. Subsets II
查看>>
jQuery常用语法
查看>>
隐藏浏览器原生的滚动条
查看>>
[spring mvc]<mvc: annotation-driven />的作用
查看>>
jsplumb
查看>>
20135304刘世鹏——信息安全系统设计基础第十二周总结
查看>>
C++ 连接mysql数据库
查看>>