反向代理到本地Web應用程序,iptables必須打開哪個連接埠?

反向代理到本地Web應用程序,iptables必須打開哪個連接埠?

我想為我的 tomcat 應用程式使用反向代理(nginx 或 apache)。我想將連接埠 80,443 從反向代理重新導向到 tomcat 連接埠 8080、8443。

是對的嗎 ? iptables 入站:開啟連接埠 80、443 iptables 出站:開啟連接埠 8080,8443

親切的問候

黑鬍子

答案1

A傳輸控制協定連結總是在兩個(而不是更多)參與者之間。每一個都用一個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具有相同的防火牆規則。

相關內容