BIG-IP Forward Proxy セットアップガイド
最終更新日: 2020年7月13日
本ドキュメントでは、BIG-IPのForward Proxy設定について解説します。
はじめに
このページでは、これらのオフィシャルなドキュメントの補足となる資料や、複数の機能を組合せてソリューションを実現する方法をご紹介いたします。 F5のオフィシャルなドキュメントはこちらにございます。
- AskF5: https://support.f5.com/csp/home
- F5 Cloud Docs: https://clouddocs.f5.com/
- F5 DevCentral(コミュニティ): https://devcentral.f5.com/
BIG-IP Forward Proxyにおける基礎知識
本章では、BIG-IPをForward Proxyとして構成する際に前提となる基礎知識について、紹介します。
関連するオブジェクト
本節では、BIG-IPをForward Proxyで利用する上で必要となる、オブジェクトの概要について紹介します。 詳細は、下図をご参照ください。
HTTP Explicit Profile
BIG-IPをクライアントから見た明示 (Explicit) プロキシとして設定する場合に利用するプロファイルです。
HTTP Transparent Profile
BIG-IPをクライアントから見た透過 (Transparent) プロキシとして設定する場合に利用するプロファイルです。
DNS Resolver
Forward Proxyとして動作するBIG-IPがクエリを行う、DNSサーバのアドレスを指定します。DNSサーバのレスポンスは、BIG-IP内にキャッシュされます。
Virtual Server
BIG-IPで、サービスを受け付けるリスナーとして動作します。Virtual Serverで指定したIPアドレスおよびポート番号を、クライアント端末のWebブラウザ等に設定します。
HTTPプロファイルの種類
プロキシモードを指定するHTTPプロファイルは、下表の通りです。
プロキシモード | 説明 |
---|---|
Reverse (デフォルト) | リバースプロキシとして利用 |
Explicit | 明示プロキシとして利用 |
Transparent | 透過プロキシとして利用 |
アウトバウンド (=内部からインターネットへのアクセス)通信処理を行う際には、ExplicitもしくはTransparentを指定したHTTPプロファイルを割り当てます。
HTTP-Tunnel
プロキシサーバを経由したHTTPS通信では、httpのCONNECTメソッドが使われます。クライアントからCONNECTメソッドを受け取ると、HTTPSプロキシ (=BIG-IP)は対象ホストにTCP 3-wayハンドシェイクによる接続を行います。HTTPSプロキシはソケット接続を代行して送受信データを処理するのみ で、流れるデータの内容には一切関与はしません。(IPヘッダとTCPヘッダのみ変更します。)
上記の処理を、BIG-IPでは”HTTP-Tunnel”と明記しています。
Explicit Forward Proxy トポロジー
BIG-IPを明示 (Explicit)プロキシとして使用するの場合のトポロジーは、下図の通りです。

- BIG-IPを明示 (Explicit)プロキシとして構成する場合は、クライアント端末のWebブラウザ等でリクエストをプロキシサーバ宛に送信するように設定します。PAC (Proxy Auto Config)ファイルやWPAD (Web Proxy Auto Discovery Protocol)を使用することで、ブラウザ側の設定を自動化することも可能です。
- 既存ネットワーク構成の変更は最小限で済むトポロジーです。
Transparent Forward Proxy トポロジー
BIG-IPを透過 (Transparent)プロキシとして使用するの場合のトポロジーは、下図の通りです。

- BIG-IPを透過 (Transparent)プロキシとして構成する場合は、BIG-IPをルータやFireWall等の間に"挟み込む"形で導入することで、クライアントからのリクエストが自動的にプロキシサーバに送信されます。この構成の場合、クライアントはプロキシの存在を意識しないため、Webブラウザ等の設定は不要です。
- リクエストがプロキシサーバに送られるようにするために、既存ネットワーク構成の変更が必要となる場合があります。
HTTPS Explicit Forward Proxyの基本設定
本章では、BIG-IPをHTTPS用のExplicitプロキシとして構成する手順について、紹介します。
サンプル構成
本章で紹介する構成は、以下の通りです。

- クライアントソフトウェア (ブラウザ)では、リクエストを直接プロキシサーバ (=BIG-IP)に転送するように設定します。
- BIG-IPにおいて、プロキシサーバとして動作するVirtual Serverを設定します。また、BIG-IP (プロキシサーバ)はホストの名前解決にDNSリゾルバを使用します。 (例: www.f5.com → 104.219.104.148)

- HTTPS Forward Proxyの場合は、HTTPにおける設定に加えて、前述のHTTPトンネル用のVirtual Serverの設定が必要となります。
DNSリゾルバの設定
BIG-IPのConfiguration Utilityで、DNSリゾルバを設定します。
Network >> DNS Resolver を選択して、DNSリゾルバを作成します。下図の例では"dns_resolover"という名前のDNSリゾルバを作成しています。
作成したDNSリゾルバにおいて、Forward Zone を選択します。
Forward Zoneの名前を". (ドット)"と指定して、BIG-IPがクライアントとして名前解決を行うDNSサーバのアドレスを入力します。
TLSをサポートするHTTP Tunnelの設定
TLS (SSL)をサポートするHTTP Tunnelを設定します。
Network >> Tunnels を選択して、HTTP Tunnelを作成します。ここではForward Proxyとして構成するため、Profileとして tcp-forward を指定します。
HTTPプロファイル設定
Explicit Forward Proxyを構成するHTTPプロファイルを設定します。
Local Traffic >> Profiles >> Services を選択して、HTTPプロファイルを作成します。
General Properties のセクションで以下の設定を行います。
- Proxy Mode: "Explicit"を選択
- Parent Profile: "http-explicit"を選択
Explicit Proxy用Virtual Server設定
Explicit Forward Proxyを構成するVirtual Serverを設定します。このVirtual Serverは、クライアントから見たプロキシサーバとして動作します。
Local Traffic >> Virtual Server を選択して新規にVirtual Serverを構成し、以下の設定を行います。
Destination Address/Mask: クライアントのブラウザで指定するIPアドレス、およびサブネットマスク
Service Port: クライアントのブラウザで指定するポート番号
HTTP Profile: "HTTP Profile設定"の項で作成したものを指定
VLAN and Tunnel Traffic: 必要なVLANとトンネルを指定
Source Address Translation: "Automap"もしくは"SNAT"を指定
Address Translation: 有効 (チェックを入れる)
Port Translation: 有効 (チェックを入れる)
トンネル用Virtual Server設定
HTTPS通信においてトンネルを構成するVirtual Serverを設定します。
Local Traffic >> Virtual Server を選択して新規にVirtual Serverを構成し、以下の設定を行います。
Destination Address/Mask: "0.0.0.0/0"を指定
Service Port: 通常は"443" (HTTPS)を指定
Source Address Translation: "Automap"もしくは"SNAT"を指定
Address Translation: 無効 (チェックを外す)
Port Translation: 無効 (チェックを外す)
SSL Forward Proxyの基本設定
本章では、BIG-IPをSSL Forwardプロキシとして構成する手順について、紹介します。SSL Forwardプロキシを構成することで、BIG-IPでSSL通信を可視化することができます。
以下の設定については、前章の手順を参照してください。
- サンプル構成
- DNSリゾルバの設定
- TLSトンネルをサポートするHTTP Tunnelの設定
- HTTPプロファイル設定
- Explicit Proxy用Virtual Server設定
本章では上記の設定に加えて、以下の内容を紹介します。
CA証明書の設定例
SSL Forward Proxyを構成する場合は、BIG-IPにCA証明書と秘密鍵をインストールします。ここでは、BIG−IP上でCLIで設定する手順を紹介します。
# opensslに必要なファイルとディレクトリの作成
mkdir /config/ca
cd /config/ca
mkdir /config/ca/newcerts
mkdir /config/ca/private
mkdir /config/ca/crl
touch /config/ca/index.txt
echo 01 > /config/ca/serial
# openssl設定ファイルをコピー
cp /etc/pki/tls/openssl.cnf /config/ca
# openssl.cnfファイルの設定
vi /config/ca/openssl.cnf
unique_subject = no
dir = /config/ca
# BIG-IPがSSL可視化を行うために使用する、CA証明書とキーを生成
# 注: Common Nameとして"proxy_ca.example.com"を指定
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out proxy_ca.pem -outform PEM -keyout proxy_ca.key
# CA証明書を確認
openssl x509 -in proxy_ca.pem -noout -text
# BIG-IPのファイルストアにインポート
tmsh install sys crypto cert proxy_ca.crt from-local-file /config/ca/proxy_ca.pem
tmsh install sys crypto key proxy_ca.key from-local-file /config/ca/proxy_ca.key
ブラウザでのアクセス時にセキュリティ警告が表示されるのを防ぐため、上記で生成したCA証明書をクライアント端末にインポートします。例えばWindowsの場合、「信頼されたルート証明機関」にBIG-IPが再署名に使用する証明書を追加します。
SSLプロファイル設定
Explicit Forward Proxyを構成するクライアントおよびサーバSSLプロファイルを設定します。
クライアントSSLプロファイル
- Local Traffic >> Profiles >> SSL >> Client を選択して、クライアントSSLプロファイルを作成します (この例では"clientssl_proxy")。親プロファイル (Parent Profile)として、clientsslを指定します。
- SSL Forward Proxy のセクションで以下の設定を行います。
サーバSSLプロファイル
- Local Traffic >> Profiles >> SSL >> Server を選択して、サーバSSLプロファイルを作成します (この例では"serverssl_proxy")。親プロファイル (Parent Profile)として、serversslを指定します。合わせて、以下の設定を行います。
- SSL Forward Proxy: 有効 (Enabled)
- SSL Forward Proxy Bypass: 有効 (Enabled)
- Server Authentication のセクションで以下の設定を行います。
- Server Certificate: "require..."を選択
- Trusted Bundled Authority: "ca-bundle.crt"を選択
- Local Traffic >> Profiles >> SSL >> Server を選択して、サーバSSLプロファイルを作成します (この例では"serverssl_proxy")。親プロファイル (Parent Profile)として、serversslを指定します。合わせて、以下の設定を行います。
トンネル用Virtual Server設定
HTTPS通信においてトンネルを構成するVirtual Serverを設定します。
Local Traffic >> Virtual Server を選択して新規にVirtual Serverを構成し、以下の設定を行います。
Destination Address/Mask: "0.0.0.0/0"を指定
Service Port: 通常は"443" (HTTPS)を指定
SSL Profile (Client): "SSLプロファイル設定"の項で作成したClient SSL Profileを指定
SSL Profile (Server): "SSLプロファイル設定"の項で作成したServer SSL Profileを指定
Source Address Translation: "Automap"もしくは"SNAT"を指定
Address Translation: 無効 (チェックを外す)
Port Translation: 無効 (チェックを外す)
アクセス確認
クライアントPCのWebブラウザから正常にアクセスできることを確認します。この例では https://www.f5.com にアクセスします。
また、証明書の詳細を確認します。
"CA証明書の設定例"の項で作成した証明書が利用されていることがわかります。