linux普通用户使用1024以下的端口(80)

linux普通用户使用1024以下的端口(80)

Intro

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

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

nginx 等软件做反向代理

利用 nginx 做反向代理,nginx 监听 80 端口,将请求转发到实际监听的端口,示例:

nginx

iptables端口转发

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

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

setuid

root账户下执行

chown root:root nginx
chmod 4755 nginx

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

CAP_NET_BIND_SERVICE

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

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

sudo 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@centoshttps://superuser.com/questions/710253/allow-non-root-process-to-bind-to-port-80-and-4437 sbin]$

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

 setcap -r nginx

Reference

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容