Security

Azure 入站安全規則疑難解答

  • August 18, 2016

我有一個在 Ubuntu 伺服器上執行的 node.js 應用程序。我能夠進入-X SSH並檢查它是否在 localhost:4000 上使用 Firefox 正常執行。

然後,我從 Azure 門戶添加新的入站安全規則。

仍然無法從伺服器外部訪問該站點。我從桌面執行以下命令:

telnet 104.99.99.99 4000

我得到連接超時。

結果來自sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootpc

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

安全規則:

在此處輸入圖像描述

我想到了3件事:

  • 您的應用程序在 localhost:4000 上偵聽,這不是您的網路介面 IP,因此儘管 Azure 防火牆設置正確,但仍無法從伺服器本身以外的任何地方訪問。檢查netstat -anep | grep -w 4000並確保它正在偵聽您使用的網路介面的 0.0.0.0 或 IP(無論是 eth0 還是其他任何東西)。如果它在 127.0.0.1 上監聽,那麼外部世界將無法訪問它
  • 來自伺服器的傳出流量:4000 被 Azure 防火牆阻止。不太可能,但嘗試創建另一個防火牆規則,以允許您的伺服器從埠 4000 的傳出流量 100% 確保它不是阻止程序
  • 額外的 iptables 過濾器在iptables -L. 要全部顯示它們,請使用:iptables -vL -t filter, iptables -vL -t nat, iptables -vL -t mangle, iptables -vL -t raw,iptables -vL -t security

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