Linux

本地 webapplication 的反向代理,iptables 必須打開哪個埠?

  • January 24, 2020

我想為我的 tomcat 應用程序使用反向代理(nginx 或 apache)。我想將埠 80,443 從反向代理重定向到 tomcat 埠 8080、8443。設置反向代理後,必須為入站和出站打開哪個埠?

是對的嗎 ?iptables inbound : 打開埠 80, 443 iptables outbound: 打開埠 8080,8443

親切的問候

黑鬍子

TCP連接總是在兩個(而不是更多)參與者之間。每一個都用一個 IP 地址一個埠來標識。所以實際上,當您使用反向代理時,您有:

  • 客戶端<client_IP>:<random_port>nginx <server_public_IP>:80之間通過物理介面的連接。
  • 通過環回介面連接nginx 127.0.0.1:80Tomcat127.0.0.1:8080

防火牆沒有理由阻止環回介面上的通信。因此,您可能希望允許使用目標埠的傳入流量80和使用443的出站流量和.80``443

但是,通常,出站流量不會被阻止(策略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

PS:您也可以直接在埠上執行Tomcat80 ,並443使用相同的防火牆規則。

引用自:https://serverfault.com/questions/1000279