はじめに
このドキュメントでは、Webセキュリティアプライアンス(WSA)がオープンプロキシになることを防止する方法について説明します。
環境
Cisco WSA、AsyncOSのすべてのバージョン
WSAがオープンプロキシであると見なされる領域は2つあります。
- ネットワークに存在しないHTTPクライアントは、を介してプロキシできます。
- HTTP CONNECT要求を使用して非HTTPトラフィックをトンネリングするクライアント。
これらのシナリオはそれぞれ、まったく異なる意味を持っています。これらのシナリオについては、次のセクションで詳しく説明します。
ネットワークに存在しないHTTPクライアントは、
WSAは、デフォルトで、送信されたすべてのHTTP要求をプロキシします。これは、要求がWSAがリッスンするポート上にあることを前提としています(デフォルトは80および3128)。 どのネットワークのクライアントもWSAを使用できないようにするため、これは問題になる可能性があります。WSAがパブリックIPアドレスを使用し、インターネットからアクセスできる場合、これは大きな問題になる可能性があります。
これを修正するには、次の2つの方法があります。
- WSAへのアップストリームのファイアウォールを利用して、不正な送信元によるHTTPアクセスをブロックします。
- 目的のサブネット上のクライアントだけを許可するようにポリシーグループを作成します。このポリシーの簡単な例を次に示します。
ポリシーグループ1:サブネット10.0.0.0/8に適用されます(これがクライアントネットワークであると仮定)。 必要なアクションを追加します。
デフォルトポリシー:すべてのプロトコル(HTTP、HTTPS、FTP over HTTP)をブロック
より詳細なポリシーは、ポリシーグループ1の上に作成できます。他のルールが適切なクライアントサブネットだけに適用される限り、他のすべてのトラフィックは一番下の「すべて拒否」ルールをキャッチします。
HTTP CONNECT要求を使用して非HTTPトラフィックを
HTTP CONNECT要求は、HTTPプロキシ経由で非HTTPデータをトンネリングするために使用されます。HTTP CONNECT要求の最も一般的な使用方法は、HTTPSトラフィックのトンネル化です。明示的に設定されたクライアントがHTTPSサイトにアクセスするには、最初にWSAにHTTP CONNECT要求を送信する必要があります。
CONNECT要求の例:CONNECT http://www.website.com:443/ HTTP/1.1
これにより、クライアントがWSAを介してポート443でhttp://www.website.com/にトンネル伝送することをWSAに指示します。
HTTP CONNECT要求は、任意のポートのトンネル化に使用できます。潜在的なセキュリティの問題により、WSAはデフォルトで次のポートへのCONNECT要求のみを許可します。
20、21、443、563、8443、8080
セキュリティ上の理由から、CONNECTトンネルポートを追加する必要がある場合は、追加のポリシーグループに追加することを推奨します。追加のポリシーグループは、この追加のアクセスを必要とするクライアントIPサブネットにのみ適用されます。許可されるCONNECTポートは、各ポリシーグループのApplications > Protocol Controlsにあります。
オープンプロキシを介して送信されるSMTP要求の例を次に示します。
myhost$ telnet proxy.mydomain.com 80
Trying xxx.xxx.xxx.xxx...
Connected to proxy.mydomain.com.
Escape character is '^]'.
CONNECT smtp.foreigndomain.com:25 HTTP/1.1
Host: smtp.foreigndomain.com
HTTP/1.0 200 Connection established
220 smtp.foreigndomain.com ESMTP
HELO test
250 smtp.foreigndomain.com