cloudflare で 80 と 443 以外のすべてのポートをブロックする

cloudflare で 80 と 443 以外のすべてのポートをブロックする

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 アプリケーションと通信するために、また他の多くの内部サービスが互いに通信するために必要であり、これまでに使用したすべてのプロフェッショナル ファイアウォール ビルダーは、疑問を抱くことなくローカルホスト トラフィックを許可するだけです。

(追記: パス MTU 検出などの他の種類の破損を防ぐために、ICMP を有効にしたままにしておく必要があります。)

関連情報