web-dev-qa-db-ja.com

ファイアウォールに対するWebSocketの影響

(ここではwebsocketに関するいくつかの質問を読みましたが、どうやらwebsocketタグがありません)

私が正しく理解している場合、WebSocketはポートTCPトラフィックをポート80で使用しています。

厳密なファイアウォールルールの影響は何ですか?たとえば、関連して確立されたトラフィックと受信「状態NEWのTCPパケット」(他のものは関連して確立されたパケットによって処理されている)のみを受け入れるファイアウォールがある場合でも、WebSocketトラフィックは通過できますか?

また、ユーザーがWebサイトに接続するとき、WebSocketトラフィックは、すでに確立されているトラフィックの一部ですか?

これはiptablesに関する質問ではなく、次の例は単に上記の目的を説明するためのものです。私がこのようなものを持っているとしましょう:

a) iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
b) iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
c) iptables -I OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

webSocketはどのルールに一致しますか? b)とc)のみ、またはwebsocket createがそれ自体を開始するTCP接続?(クライアントから?)

基本的に私は私の質問を要約すると思います:WebSocketを許可するために実行する必要がある特定のファイアウォール設定はありますか?

また、重大なWebSocketセキュリティの問題が発見された場合、またはWebSocketを使用しないことをWebサイトが決定した場合、ファイアウォールレベルでブロックできますか?

6
Cedric Martin

TCPレベルで、双方向のメッセージパッシングを許可しながら、WebSocketsプロトコルについて知っていることから、接続はクライアントによって開始されるため、ほとんどのファイアウォール構成(たとえば、標準のWebを許可するもの)参照)は、追加の構成なしでWebSockets通信を許可します Wikipedia Article を見ると、これはプロトコルの利点の1つとして宣伝されています。

これの裏側は、ファイアウォールがIPアドレスでのみ機能する場合はブロックできないことです/ TCPポートレベル、プロトコルのセマンティクスの詳細を理解する必要があります。また、SSLを介してWebSocket接続をブロックする必要がある場合は、プロキシデバイスがSSL接続を傍受して復号化できる必要があります。

4
Rory McCune