系统之家 - 系统光盘下载网站!

当前位置:系统之家 > 系统教程 > Linux普通用户使用小于1024的端口

Linux中如何让普通用户使用小于1024的端口

时间:2015-07-24 13:58:46 作者:zhijie 来源:系统之家 1. 扫描二维码随时看资讯 2. 请使用手机浏览器访问: https://m.xitongzhijia.net/xtjc/20150724/53742.html 手机查看 评论

  在Linux系统中,一般情况下,小于1024的端口是不对没有root的Linux普通用户开放的。但是还是有一些技巧能够让没有root的用户使用小于1024的端口的。本文就来介绍一下Linux中如何让普通用户使用1024以下端口。

Linux中如何让普通用户使用小于1024的端口

  方法一:SetUID

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

  使用的方法是:

  1.chown root.root /path/to/application

  2.#使用SetUID

  3.chmod u+s /path/to/application

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

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

  方法二:CAP_NET_BIND_SERVICE

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

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

  1.# 设置CAP_NET_BIND_SERVICE

  2.setcap cap_net_bind_service =+ep /path/to/application

  Note:

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

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

  方法三:Port Forwarding

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

  1.# Enable the IP FORWARD kernel parameter.

  2.sysctl -w net.ipv4.ip_forward=1

  3.# Use iptables rules to redirect packets

  4.iptables -F -t nat

  5.iptables -t nat -A PREROUTING -p tcp --dport 80-j DNAT --to:8088

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

  1.# Default value is 0, need change to 1.

  2.# net.ipv4.ip_forward = 0

  3.net.ipv4.ip_forward =1

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

  1.# load new sysctl.conf

  2.sysctl -p /etc/sysctl.conf

  3.# or sysctl -p

  4.# default filename is /etc/sysctl.conf

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

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

  方法四:RINETD

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

  以上就是Linux中如何让普通用户使用小于1024端口的方法了,前面三种方法都可以不用root而且没有什么风险,大家可以放心使用。

标签 端口

发表评论

0

没有更多评论了

评论就这些咯,让大家也知道你的独特见解

立即评论

以上留言仅代表用户个人观点,不代表系统之家立场

其他版本软件

热门教程

人气教程排行

Linux系统推荐

扫码关注
扫码关注

扫码关注 官方交流群 软件收录