我想运行自定义 DNS 服务器(Nx过滤器准确地说)在Synology DS115j NAS,当然绑定在端口 53 上。这在以 root 身份运行时有效,但我现在想锁定该进程。
该 NAS 运行 Linux 的 busybox 版本(用 Synology 的话说,使用 DSM5)。我已经使用 Java 管理器包安装了 Java。现在,我寻找一种在非 root 帐户下运行 java 进程的方法,同时仍然允许它绑定到特权端口 53。
我研究过这个很好的答案:https://superuser.com/questions/710253/allow-non-root-process-to-bind-to-port-80-and-443但这在我的 Synology 盒子上不起作用。我既没有setcap
也authbind
没有。
所以问题是:如何专门允许进程/二进制文件绑定到 busybox linux 上的特权端口?
答案1
你可以访问iptables吗,我依稀记得群晖NAS盒子有吗?如果是这样,您可以使用以下命令进行重定向:-
iptables -I INPUT 1 -p tcp --dport 53 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 7000 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 53 -j REDIRECT --to-port 7000
第 1 行添加了对端口 53 的开放,第 2 行添加了对端口 7000 的开放,您应该将 java 应用程序设置为使用该端口,第 3 行添加了一个重定向,将端口 53 上的任何入站流量都定向到端口 7000。