打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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
  • 1
  • 2
  • 3
  • 4
  • 5




iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 8080
  • 1
  • 2




3. setuid



root账户下执行





chown root:root nginxchmod 4755 nginx
  • 1
  • 2




从图片可以看出来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
  • 1
  • 2


切换到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      Inode397136      硬链接: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 nginxtengine  18014  0.0  0.1  45500  1124 ?        Ss   18:49   0:00 nginx: master process ./nginxtengine  18015  0.0  0.1  45960  1596 ?        S    18:49   0:00 nginx: worker processtengine  18017  0.0  0.0 112664   984 pts/0    R+   18:49   0:00 grep --color=auto nginx[tengine@centos7 sbin]$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18




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





 setcap -r nginx
  • 1




authbind



暂时省略

            请选中你要保存的内容,粘贴到此文本框
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Linux学习9-CentOS搭建nginx环境
在CentOS上使用Nginx和Tomcat搭建高可用高并发网站
CentOS7离线安装Nginx,包含gcc、g++环境
centos下配置LNMP环境(源码安装)
Centos7环境下搭建Nginx反向代理多个Tomcat的负载均衡集群
Tomcat Nginx 实现负载均衡,稳的一批!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服