
我嘗試阻止除 22、80 和 443 之外的所有連接埠iptables
。
*filter
:INPUT ACCEPT [36878:18003219]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [33947:26518456]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -s MY_IP -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -j DROP
COMMIT
連接埠 22 正在工作,但 Cloudflare 無法連接到 Web 伺服器。-A INPUT -j DROP
導致問題。事實上,443連線直到清單末尾才符合規則。
答案1
因此,經過長時間的評論會議,我們整理了以下內容:
當您啟用自訂防火牆時,CloudFlare 會報告 504 網關逾時。但值得注意的是,它表示這是從您的伺服器收到的錯誤,而不是嘗試存取您的伺服器逾時。差異很微妙但很重要:這意味著 CloudFlare 可以與您的伺服器正常通信,但您的伺服器無法與自身通訊。
您有一個 Web 伺服器,它代理在本機上運行的內部 Web 應用程式。但您的自訂防火牆不允許本地主機連線。這是 Web 伺服器與 Web 應用程式通訊所必需的,也是許多其他內部服務相互通訊所必需的,因此您可能使用的每個專業防火牆建構器都會毫無疑問地允許本地主機流量。
(PS:您應該啟用 ICMP 以防止其他類型的破壞,例如路徑 MTU 發現。)