反向代理到本地 web 应用程序,iptables 必须打开哪个端口?

反向代理到本地 web 应用程序,iptables 必须打开哪个端口?

我想为我的 tomcat 应用程序使用反向代理(nginx 或 apache)。我想将端口 80、443 从反向代理重定向到 tomcat 端口 8080、8443。设置反向代理后,必须打开哪个端口以进行入站和出站?

对吗?iptables inbound:开放端口 80、443 iptables outbound:开放端口 8080、8443

亲切的问候

黑胡子

答案1

ATCP连接始终在两个(而不是多个)参与者之间进行。每个参与者都有一个 IP 地址端口。因此,实际上,当您使用反向代理时,您需要:

  • 客户端<client_IP>:<random_port>nginx <server_public_IP>:80通过您的物理接口。
  • 之间的联系nginx 127.0.0.1:80雄猫 127.0.0.1:8080通过环回接口

防火墙没有理由阻止环回接口上的通信。因此,您可能希望允许传入流量目的地端口80443出站流量来源港口80443

然而,通常情况下,出站流量是不是阻止(策略ACCEPT),您只需要以下 iptables 规则:

iptables -A INPUT -i lo -j ACCEPT # loopback interface
# don't block existing traffic
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m comment nginx -j ACCEPT
# Probably you want to allow ssh
iptables -A INPUT -p tcp --dport 22 -m comment SSH -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

附言:您还可以运行雄猫直接在端口上80443具有相同的防火墙规则。

相关内容