F5 BIG-IP Virtual Edition for AWSでSSL-VPN環境を作ってみた

記事タイトルとURLをコピーする

はじめに

こんにちは、技術3課の紅林です。大阪新オフィスの部屋の温度差に悩まされている今日この頃です。
今回、F5 BIG-IP Virtual Edition for AWSでSSL-VPN環境を構築してみましたので、その手順概要をご紹介します。

F5 BIG-IP Virtual Edition for AWSについて

F5 BIG-IP Virtual Edition for AWSはF5 BIG-IPのAWS環境向けの仮想アプライアンスです。
ライセンス体系として、GOOD/BETTER/BESTが存在し、タイプによって、利用できる機能やインスタンスタイプに差があるため、事前に要件を確認して選択する必要があります。今回は、SSL-VPN機能を試してみるため、APMが使えるBESTを選択します。

SSL-VPNについて

SSL-VPNとは暗号化プロトコルであるSSL(TLS)を用いてVPNを実現する技術です。SSL-VPNサーバをAWS上に構築することで、クライアントはインターネットを介してVPC内のインスタンスにセキュアにアクセス可能となります。

構成概要

  • サブネットを3つ作成することを想定します(BIG-IPの構築に直接関係する(ENIをアタッチする)サブネットは2つ)
    • マネジメント用サブネット:BIG-IPのマネジメント用のIPアドレスのあるサブネット
    • 外部用サブネット:Big-IPとの実通信に用いるアドレスのあるサブネット
    • 内部用サブネット:その他のサーバ用のサブネット
  • マネジメント用サブネットのENI、外部用サブネットのENIのセカンダリIP(Virtual Server)にそれぞれEIPを付与します
  • マネジメント用サブネット、外部用サブネットはデフォルトルートをIGWに向けます
  • Virtual ServerのアドレスがSSL-VPNの終端先のアドレスとなります

f5-%e6%a7%8b%e6%88%90

手順

前提

  • 構成図と同様のVPCを構築済であること
  • F5 BIG-IP Virtual Edition for AWSのインスタンスをローンチ済であること
    • APMを使用するため、ライセンスはBESTを選択すること
  • 本手順ではSSL-VPN接続環境の構築に必要な最低限の手順のみ紹介する
  • 本手順では証明書のインストールは行わない
  • VPN接続するクライアントにはBig-IPのEdge Clientがインストールされていること

手順

初期設定

パスワード設定

インスタンスがローンチされたらSSHにてマネジメント用のグローバルIPアドレス宛にログインします。

  • ユーザ名:admin
  • 鍵指定:インスタンスローンチ時に指定した秘密鍵

ログイン後、以下のコマンドを実行し、adminユーザのパスワードを設定します。

# modify auth password admin

リソースのプロビジョニング

HTTPSでマネジメント用のIPアドレスにアクセスし、BIG-IPのWebコンソールで先ほどadmin/[設定したパスワード]でログインし、画面のメッセージにしたがって、リソースのプロビジョニングを行います。このとき、APMの選択を忘れないようにします。

ネットワーク設定

VLAN設定

まずはじめに、外部ネットワーク用のVLANを作成します。
BIG-IPのWebコンソールで、Network→VLANsをクリックし、Createボタンをクリックします。
snapcrab_noname_2016-12-30_17-6-9_no-00

Nameに適当な名前を入力し、Interfacesで、

  • 1.1
  • Untagged を選択し、Addボタンをクリックします。
    Finishedをクリックし、VLANを作成します。
    snapcrab_noname_2016-12-30_17-6-28_no-00

Self-IP設定

Network→Seld IPsをクリックし、Createボタンをクリックします。 snapcrab_noname_2016-12-30_17-5-43_no-00

  • Nameに任意の名称
  • IP Addressに外部用サブネットのENIのプライマリIPアドレス
  • Netmaskに外部用サブネットのサブネットマスク
  • VLAN/Tunnnelに、さきほど作成したVLAN
    を入力して、Finishedをクリックします。 snapcrab_noname_2016-12-30_17-5-34_no-00

ルーティング設定

Network→Routesをクリックし、

  • Nameに任意の名称
  • Destinationに「0.0.0.0」
  • Netmaskに「0.0.0.0」
  • Gateway AddressにインターネットゲートウェイのIPアドレス
    を入力し、Finishedをクリックします。(画像は省略)

SSL-VPN設定

次にSSL-VPN機能となるNetwork Accessを作成します。
Wizards→Device Wizardsを選択し、「Network Access Setup Wizard Remote Access」をクリックします。
snapcrab_noname_2016-12-30_16-58-17_no-00

以下の画面で、

  • Policy Nameに任意の名称
  • Captionに任意の名称
    を入力し、Nextボタンをクリックします。 snapcrab_noname_2016-12-30_16-58-44_no-00

以下の画面で、

  • Authentication Optionsに「Create New」
  • Select Authenticationに「No Authentication」(Big-IPに作成されているユーザ情報での認証 ) を選択し、Nextボタンをクリックします。 snapcrab_noname_2016-12-30_16-59-16_no-00

以下の画面で、VPN接続時に端末に払い出すアドレス帯を入力します。

  • Typeに「IP Address Range」を選択
  • Start IP AddressおよびEnd IP Addressに払い出すアドレス帯を入力
    して、Addボタンをクリックし、Nextボタンをクリックします。 snapcrab_noname_2016-12-30_16-59-52_no-00

以下の画面で、圧縮の有無やクライアントのトラフィックの扱い等が設定出来ますので、必要に応じて設定します。
今回はそのままNextボタンをクリックします。 snapcrab_noname_2016-12-30_17-0-13_no-00

以下の画面で、DNSサーバやDNSサフィックス等が設定出来ますので、必要に応じて設定します。
今回はそのままNextボタンをクリックします。 snapcrab_noname_2016-12-30_17-0-29_no-00

以下の画面で、「Virtual Server IP Address」に外部用サブネットのENIのセカンダリIPアドレスを入力し、Nextボタンをクリックします。 snapcrab_noname_2016-12-30_17-0-47_no-00

設定の確認画面が表示されるため、確認してNextボタンをクリックします。 snapcrab_noname_2016-12-30_17-1-10_no-00

設定のサマリ画面が表示されるため、確認してFinishedボタンをクリックします。 snapcrab_noname_2016-12-30_17-1-26_no-00

クライアントからの接続

Big-IP Edge Clientを起動し、「サーバの変更」がクリックします。 snapcrab_noname_2016-12-30_17-1-55_no-00

「サーバを選択」フォームにVirtual ServerのグローバルIPアドレスを入力し、「次へ」をクリックします。「接続」をクリックすると、認証画面が表示されるため、既存のユーザ情報を入力し、ログインするとSSL-VPNの接続が有効になります。VPC内のリソースにアクセスできるようになったと思います。
snapcrab_noname_2016-12-30_17-2-3_no-00

おわりに

今回、F5 BIG-IP Virtual Edition for AWSでSSL-VPN環境を作ってみました。 BIG-IP Virtual Editionには、他にも様々な機能があるため、少しずつ紹介していきたいと思います。