Linux非root用户程序如何使用小于1024端口

42次阅读
没有评论

共计 1828 个字符,预计需要花费 5 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 Linux 非 root 用户程序如何使用小于 1024 端口,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

*** 种方法:

SetUID

为用户的应用程序在执行位设置 user ID 能够使程序可以有 root 权限来运行,这个方法让程序能够像在 root 下运行有同样的效果,不过需要非常小心,这种方法同样会带来安全风险,特别是当要执行的程序本身存在安全风险。使用的方法是:

chown root.root /path/to/application # 使用 SetUID chmod u+s /path/to/application

我们可以看到在系统下,/usr/bin/passwd 这种文件,就使用了 SetUID,使得每个系统的用户都能用 passwd 来修改密码 mdash; mdash; 这是要修改 /etc/passwd 的文件(而这个只有 root 有权限)。

既然要使用非 root 用户运行程序,目的就是要降低程序本身给系统带来的安全风险,因此,本方法使用的时候需要特别谨慎。

第二种方法:

CAP_NET_BIND_SERVICE

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

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

# 设置 CAP_NET_BIND_SERVICE setcap cap_net_bind_service =+ep /path/to/application

Note:

1. 这个方法并不是所有 Linux 系统通适,内核在 2.1 之前的并没有提供,因此你需要检查要使用此方法所在系统是否支持(Linux must support capacity);

2. 另外需要注意的是,如果要运行的程序文件是一个脚本,这个方法是没有办法正常工作的(Script won t work)。

第三种方法:

Port Forwarding

如果要运行的程序有权限监听其他端口,那么这个方法是可以使用的,首先让程序运行在非 root 帐户下,并绑定高于 1024 的端口,在确保能正常工作的时候,将低端口通过端口转发,将低端口转到高端口,从而实现非 root 运行的程序绑定低端口。要使用此方法可以使用下面的方式:

# Enable the IP FORWARD kernel parameter. sysctl -w net.ipv4.ip_forward=1 # Use iptables rules to redirect packets iptables -F -t nat iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to:8088

*** 步使用 sysctl 确保启用 IP FORWARD 功能(此功能在 Red Hat/CentOS 默认是被禁用的),注意,代码中使用的 sysctl 设置是临时性设置,重启之后将会被重置,如果要长久保存,需要在 /etc/sysctl.conf 文件内修改:

# Default value is 0, need change to 1. # net.ipv4.ip_forward = 0 net.ipv4.ip_forward = 1

然后从文件中加载新的配置

# load new sysctl.conf sysctl -p /etc/sysctl.conf # or sysctl -p # default filename is /etc/sysctl.conf

第二步就是使用 iptables 的规则来实现端口转发到程序所在的端口,示例中我们要将 80 端口转发到 8088。

此种方法能够比较好的达到我们的目的,我们的程序可以通过非 root 用户来运行,并能够对外提供低端口号的服务。

第四种方法:

RINETD2

这种方法使用的也是端口转发,此工具可以将本地端口映射到远程端口,但此功能对于我们当前的功能来说,有点鸡肋,毕竟我们新增了一个额外的程序,这将可能会增加我们系统的风险性。在此不做推荐。

以上是“Linux 非 root 用户程序如何使用小于 1024 端口”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计1828字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)