每天进步一点点: Linux普通用户下程序绑定特权端口(iptables转发)

我在Linux的普通用户下运行一组程序,想让其中的一个程序监听1024以下的端口,结果运行程序提示权限不足,无法绑定端口。


(图源 :pixabay)

难道需要我把这组程序复制到root用户下,以root权限执行?那这样的话,为了安全我特意搞了个普通用户岂不是就没有意义了。

想了想,最简单的办法就是使用iptables转发啦,执行下列指令即可:

sudo iptables -t nat -A PREROUTING -p tcp --dport 666 -j REDIRECT --to-ports 12345

这句的意思是,将666的端口tcp访问,重定向到12345。效果就是如果我们的程序绑定到12345端口,但是使用666端口也可以访问,和绑定666端口效果相当

尽管iptables也需要root权限来执行,但是这类酒精久经考验的软件安全性要靠谱得多得多。

使用iptables转发,需要先开启相关功能

sudo vi /etc/sysctl.conf

在其中将net.ipv4.ip_forward = 0修改为net.ipv4.ip_forward = 1,然后执行如下指令使其生效:

sudo sysctl -p

是不是很简单啦?明天再介绍另外一种方法。

H2
H3
H4
3 columns
2 columns
1 column
3 Comments