Apache - 允许代理,阻止直接端口调用

Apache - 允许代理,阻止直接端口调用

我有一个 VPS,它充当 ssh 隧道网络服务器的代理。现在您可以调用: http://myserverdomain.com:1234您正在连接到 server1 http://myserverdomain.com:2345您正在连接到 server2

我添加了以下几行 apache 配置:

ProxyPass /server1 http://localhost:1234/
ProxyPassReverse /server1 http://localhost:1234/

我可以通过调用来访问该服务器http://myserverdomain.com/server1 (不过我必须更改相对 URL,不过那是另一回事)

问题是我想阻止通过端口号直接调用,这样就没有人可以通过扫描发现当前连接的所有隧道网络服务器http://myserverdomain.com开放端口。

我尝试设置 iptablesiptables -A INPUT -p tcp --destination-port 1234 -j DROP但是它也阻止了我的 apache 代理(如果我理解正确的话,那是因为 iptables 的工作级别低于 apache 服务器 - 如果我错了,请纠正我)。

如果是这样,我该如何实现阻止端口直接调用它而不是 apache 代理重定向的目标?

答案1

如果您在同一台机器上同时拥有隧道和 Apache,则只需对隧道使用 127.0.0.1:1234 和 127.0.0.1:2345。

否则,在有隧道的机器上使用 iptables:

iptables -I INPUT -p tcp --dport 1234 -J DROP
iptables -I INPUT -p tcp -s 127.0.0.1 -J ACCEPT
iptables -I INPUT -p tcp -s $APACHE_IP -J ACCEPT

应该管用

相关内容