是否有一个包装器可以限制可执行文件以使其只能监听某些端口?

是否有一个包装器可以限制可执行文件以使其只能监听某些端口?

是否有包装器可以阻止可执行文件监听端口?或者,是否有包装器可以重新映射端口,这样可执行文件就会认为它正在监听 80,但实际上它正在监听 8080

我梦想的命令行是:

server:~ # remapper -f 80 -t 8080 /usr/bin/some_binary

答案1

在 SELinux、AppArmor(或者,我相信是 Solaris Trusted Extensions)中创建强制访问控制器策略是确保不允许应用程序绑定到策略中未明确指定的端口的唯一真正方法。如果您想将一个端口映射到另一个端口以进行传入连接,则需要在系统防火墙/数据包过滤器级别完成 - Linux 上的 iptables、Solaris 上的 ipf 等。

然而,Benoit 的问题仍然存在,并且你正在尝试做的事情可能有些过度了。

答案2

您在端口 80 上运行一个只能执行某些脚本类型的 Web 服务器。然后,您可以允许用户上传到 Web 服务器并通过 Web 浏览器执行他们的脚本,从而强制仅通过 http 访问它。只是一个想法。

例如,从 cgi-bin 执行此操作:

#!/bin/bash
# get today's date
OUTPUT="$(date)"
# You must add following two lines before
# outputting data to the web browser from shell
# script
 echo "Content-type: text/html"
 echo ""
 echo "<html><head><title>Demo</title></head><body>"
 echo "Today is $OUTPUT <br>"
 echo "Current directory is $(pwd) <br>"
 echo "Shell Script name is $0"
 echo "</body></html>"

相关内容