[Cloud, Network, Security] Creating a Secure SSL VPN Connection Between Oracle Cloud Infrastructure and a Remote User

原文はこちら。
https://blogs.oracle.com/cloud-infrastructure/creating-a-secure-ssl-vpn-connection-between-oracle-cloud-infrastructure-and-a-remote-user

企業はますますモバイルを活用しようとしています。そのため、従業員に対し便利で安全なネットワークアクセスを提供できる必要があります。VPNを使用すると、ユーザーはモビリティをサポートする便利な方法であるパブリック・インターネット経由で社内ネットワークに安全に接続できます。

IPSec VPNを使用して、リモートロケーションへの専用接続を提供できます。IPSecはネットワークアクセス制御(Network Access Control)と共に使用して、承認されたユーザーだけが企業ネットワークに接続できるようにします。

もう1つのタイプのVPNとして、Secure Socket Layerプロトコルを使用するSSL VPNがあります。これはIPSecよりもきめ細かなアクセス制御が可能なので、企業はユーザーがVPN経由でアクセスできるリソースの種類を管理できます。

このブログエントリでは、OpenVPNを使用してOracle Cloud Infrastructureとリモート・ユーザー間で安全なSSL VPN接続を作成する方法について説明します。

Oracle Cloud InfrastructureとOpenVPNクライアント間でSSLトンネリングを作成するために必要な手順は概ね以下の通りです。
  1. OpenVPNのためにOracle Cloud Infrastructureを構成する
  2. OpenVPNサーバをインストール、構成する
  3. OpenVPNクライアントをインストールする

Configuration Diagram

下図は今回の構成のアーキテクチャ概要です。

図では2個のサブネットを持つVCNがあります。
  • Public (10.0.1.0/24) - パブリック・サブネット。インターネット・ゲートウェイを経由してインターネットにアクセスする。
  • Private (10.0.2.0/24) - プライベート・サブネット。インターネットへのアクセスは出来ない。

1. Configure Oracle Cloud Infrastructure for OpenVPN

以下の手順はOracle Cloud InfrastructureのVCNをOpenVPNのために作成および準備する方法の概要を示しています。

Create a VCN

アベイラビリティ・ドメインに2個のサブネットを持つVCNを作成し、OpenVPNサーバーとLinuxホストを収容します。VCNの作成方法と関連するベストプラクティスの詳細については、VCN概要と展開ガイドを参照ください。
Oracle Cloud Infrastructure
Virtual Cloud Network Overview and Deployment Guide
https://cloud.oracle.com/opc/iaas/whitepapers/OCI_WhitePaper_VCN_v1.0_LL.pdf


Public Subnet Configuration

パブリック・サブネットのルーティング・テーブル(Default route table for datacenter)にはルーティング・ルールがあり、インターネット・ゲートウェイをすべてのトラフィック(0.0.0.0/0)のルーティング先として構成しています。

サブネットのセキュリティリスト(Default Security List)に対して、すべての宛先へのトラフィックを許可するegressルールを作成します。以下のアクセスを許可するingressルールを作成します。
  • TCP Port 22 (SSH)
  • TCP Port 443 (OpenVPN TCP接続)
  • TCP Port 943 (OpenVPN Web UI)
  • UDP Port 1194 (OpenVPN UDPポート)
サブネット作成方法の詳細は、以下のドキュメントをご覧ください。
VCNs and Subnets
https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingVCNs.htm


Launch an Instance

新しく作成したパブリック・サブネットでインスタンスを起動します。今回は、CentOS 7を実行しているVMStandard2.1シェイプを使用しています。このインスタンスを使用してOpenVPNサーバをインストールします。

詳細は、以下のドキュメントをご覧ください。
Launching an Instance
https://docs.cloud.oracle.com/iaas/Content/GSG/Tasks/launchinginstance.htm?tocpath=Getting%20Started%7CTutorial%20-%20Launching%20Your%20First%20Linux%20Instance%7C_____4


Private Subnet Configuration

プライベート・サブネットのルーティング・テーブル(Private RT)にはルーティング・ルールがあり、OpenVPN(10.0.1.9)をすべてのトラフィック(0.0.0.0/0)のルーティング先として構成しています。

セキュリティリストには、すべての宛先へのトラフィックを許可するegressルールがあります。ingressルールで、特定のアドレス範囲(オンプレミス・ネットワークやVCNの他のプライベート・サブネットなど)のみを許可します。


2. Install and Configure the OpenVPN Server

新しいインスタンスが起動したら、SSH経由でインスタンスに接続し、OpenVPNパッケージをインストールします。OSプラットフォーム用のソフトウェアパッケージは、OpenVPNのWebサイトからダウンロードできます。
Software Packages
https://openvpn.net/index.php/access-server/download-openvpn-as-sw.html

RPMコマンドを使ってパッケージをインストールします。

注意:
passwd openvpnコマンドを使ってパスワードを変更することをお忘れなく。

OpenVPNユーザーのパスワードを使い、Admin UI(https://public-ip:943/admin)に接続します。

ログインしたら、 Network Settings をクリックし、Hostname or IP addressをOpenVPNサーバインスタンスのパブリックIPに置き換えます。

続いて、VPN settingsをクリックし、ルーティングのセクションにてプライベート・サブネット・アドレスの範囲を追加します。

ルーティングのセクションで、Should client Internet traffic be routed through the VPN?(クライアントのインターネットトラフィックをVPN経由でルーティングする必要があるか?)の設定がYesになっていることを確認します。

Have clients use these DNS servers(クライアントはこれらのDNSサーバーを使用する)で、VPNクライアントマシンが使用するDNSリゾルバを手動設定します。


Inter-Client Communication

Advanced VPNのセクションで、Should clients be able to communicate with each other on the VPN IP Network?(VPN IPネットワーク上でクライアントが相互に通信できるようにする必要がありますか?)の設定がYesに設定されていることを確認します。

変更を適用したら、Save Settingsを押します。新しい構成をOpenVPNサーバにプッシュするために、Update Running Server(実行中のサーバの更新)を求めるプロンプトが表示されます。

3. Install OpenVPN Client

OpenVPN Access Server Client UI(https://Public-IP-OpenVPN-VM:943)に接続し、お使いのプラットフォーム用のOpenVPNクライアントをダウンロードします。

インストールが完了すると、OpenVPNアイコンがOSのタスクバーに現れます。これを右クリックしてコンテキストメニューを開くと、OpenVPN接続を開始できます。

Connectをクリックすると、OpenVPNのユーザ名とパスワードを要求するウィンドウが現れるので、 OpenVPNユーザーの資格情報を入力し、ConnectをクリックしてVPNトンネルを確立します。


Verification

プライベート・サブネット内の任意のOSを使ってホストインスタンスを起動します。ラップトップPCでターミナルを開き、プライベートIPを使用してホストに接続します。

Conclusion

このエントリでは、Oracle Cloud Infrastructureとリモートユーザー間で安全かつ暗号化されたSSL VPNトンネルを作成し、ユーザーがOracle Cloud Infrastructureのプライベート・サブネット内のリソースにアクセスできるようにする方法について説明しました。

0 件のコメント:

コメントを投稿