LoginSignup
2
2

More than 3 years have passed since last update.

OCI:OpenVPNによるSSL-VPN接続手順

Last updated at Posted at 2020-06-05

はじめに

この記事はOracle Cloud Infrastructure(OCI)上に配備したComputeに対し、OpenVPNを利用したSSL-VPN接続をする手順です。
OCIにはIPSec VPN接続もありますが、ルーターが必要なので個人でセキュアに接続したい場合は、SSL-VPN接続があります。
OpenVPNを利用すれば、SSHポート転送によるPrivate Subnet上のComputeにアクセスする方法と異なり、アクセスするユーザーやログの管理、秘密鍵の使いまわしをしなくてすみます。

構成図

  • 前提
    • 東京リージョンを利用
    • 利用者はWindows10を利用
  • 補足
    • OpenVPNのAccess Serverはパブリックサブネット上に配備し、パブリックIPアドレスを割り当てます。

1.VCN作成

OpenVPN ServerとアクセスしたいTarget Serverを配備するVCNを構築します。
VCNの作成には、ネットワーキング・ソリューションの作成を利用します。

Webコンソール右上のハンバーガーボタンからネットワーキングをクリックすると、ネットワーキングの画面が表示されます。

インターネット接続性を持つVCNの作成のVCNウィザードの起動をクリックします。
※もう一つのインターネット接続性とVPN接続性を持つVCNの作成は、IPSec VPN接続の場合に利用します。

クリック後、以下の項目を設定し確認後、作成をクリックするとVCNと必要なリソースが作成されます。

  • VCN名
  • 作成先のコンパートメントの選択(あらかじめ作成しておいてください。)
  • Public SubnetのCIDR
  • Private SubnetのCIDR
  • DNS解決(デフォルトチェック済みのまま)

OpenVpenのAcceess Serverへアクセスするためには、セキュリティリスト、または、セキュリティグループに追加のツールを設定する必要があります。
今回は、セキュリティリストに設定します。
Webコンソールにて、作成したVCNのPublic Subnetのセキュリティリスト画面を開き、イングレスルールの追加を行います。
追加は、イングレスルールの下3つです。

  • TCPイングレスルール
    • Port 943:OpenVPNのAccess ServerのAdmin/Client Portalへのアクセス
    • Port 443:OpenVPN VPN tunnel用
  • UDPイングレスルール
    • Port 1194:OpenVPN VPN tunnel用

接続元のCIDRは0.0.0.0/0としていますが、構築する環境にあわせて適宜変更してください。

1.OpenVPN Serverの初期設定

Webコンソールにて、マーケットプレイス画面を表示します。
画面上部にて検索できるので、OpenVPNと入力するとヒットします。

無料版とBYOL版の2つありますが、無料版を選択します。
無料版は、2つの無料VPN接続が可能です。

この画面の使用手順には、Quick Start Guideがリンクで記載されています。
リンク先は英語ですが、手順が掲載されています。
そのため、本記事はこの手順を実際にやってみて日本語で補足します。

オラクルとパートナーの各利用規約を確認後、同意するにチェックをいれインスタンスの起動をクリックすると、コンピュート・インスタンスの作成の画面に遷移します。

必要な項目を設定後、作成をクリックします。

  • コンピュート・インスタンス名:OpenVPN Access Server
  • ネットワーキングの構成:
    • サブネット:Public Subnet
    • パブリックIPアドレスの割り当て:選択

作成後、vNICの設定を変更します。
デフォルトでは、すべてのvNICはネットワーク・トラフィックの送信元/宛先のチェックを行います。
今回は、vNICがトラフィックをプライベートサブネットに配備したComputeなどに転送する必要があるため、チェックいれて無効にします。

2.OpenVPNの設定

コンピュート・インスタンスが起動したら、teratermによりSSH接続します。
OCIが提供しているOracle Linuxでは、ログインユーザーが「opc」ですが、OpenVpnのAccess Serverでは、「openvpnas」です。

ログイン後、OpenVPN Access serverセットアップウィザードが自動的に実行されます。
このウィザードを再度実行したい場合は、$sudo ovpn-initコマンドを実行します。

EULAを読み、同意を示すためにyesを入力します。

次に、プライマリノードかを聞かれるので、yesを入力します。
スタンバイノードの場合は、noを入力します。

管理者WebUIで使用するネットワークインターフェイスとIPアドレスを指定します。
(2) ens3: 10.0.0.2は配備したOpenVPN Access ServerのPrivate IPアドレスです。
(2)を指定します。
このオプションは管理者WebUIのウィザード設定後、変更可能です。

管理者WebUIで利用するポート番号はデフォルト943のままとします。
OpenVPNデーモンのTCPポート番号もデフォルト443のままとします。

クライアントのトラフィックは、デフォルトでVPNを経由してルーティングされるべきかについては、デフォルトyesのままとします。
デフォルトyesの場合、クライアントが接続している間にすべてVPN経由となります。
クライアントDNS トラフィックは、デフォルトで VPNを経由してルーティングされるべきかについては、デフォルトyesのままとします。
1つ前の質問でyesを選択した場合は、ここでyes/noどちらを設定したにかかわらず、すべてのトラフィックがVPN経由でルーティングされます。

内部DB経由でローカル認証を使用するかについては、デフォルトyesのままとします。
このオプションをオンにすると、管理者WebUI 内でユーザー名とパスワードを定義および/または変更することができます。

プライベートサブネットはデフォルトでクライアントからアクセスできるようにすべきかについては、デフォルトyesのままとします。
このオプションは、OpenVPNアクセスサーバーのデフォルトのセキュリティ設定を定義します。

管理者UI に「openvpn」としてログインするかについては、デフォルトのままとします。
OpenVPN-ASライセンスキーを指定してください(または空白のままにして後で指定してください)については、BYOLではないので、空白のままEnterをおします。
OpenVPN Access Server には、テスト用に2つの無料ライセンスが含まれています。

セットアップウィザードを完了した後、管理者WebUIにアクセスして VPN の設定をすることができます。
プライベートIP アドレスの部分を割り当てられた外部のパブリックIPアドレスに置き換えてアクセスします。

セットアップウィザードで「Do you wish to log in the Admin UI as "openvpn"? オプションにyesを選択した場合、このアカウントのパスワードを定義する必要があります。
$sudo passwd openvpnを実行しパスワードを設定します。

3.管理者WebUI設定

ネットワーク設定

セットアップウィザード完了後に表示される管理者UIのURLのプライベートIPアドレスをパブリックIPアドレスに置き換えてアクセスします。

  • Username:openvpn
  • Password:$sudo passwd openvpnで設定したパスワード

使用許諾を確認後、Agreeをクリックすると、以下の画面が表示されます。

左側のメニューにて、CONFIGURATION>Network Settingをクリックします。
Hostname or IP Addressの値をプライベートIPアドレスからパブリックIPアドレスに設定します。

画面下のSave Settingsをクリックし、Update Runnning Serverをクリックします。

次にVPN Settingをクリックし、RoutingにプライベートサブネットのCIDRを追加します。
ここで、Should client Internet traffic be routed through the VPN?の設定がYesになっていることも確認します。

※DNSの設定が必要かは確認後追加

Advanced VPNをクリックし、Should clients be able to communicate with each other on the VPN IP Network?の設定をYesに設定します。

画面下のSave Settingsをクリックし、Update Runnning Serverをクリックします。

User設定

管理者WebUIの左側のUSER MANAGEMENTのUser Permissionsをクリックします。
デフォルトは、Admin権限をもつopenvpnユーザーのみです。
通常時にプライベートサブネットに配備したComputeへの接続で利用するためのユーザーを作成します。

New Usernameにユーザー名を設定し、More Settingsをクリックするとパスワードなどを設定することができます。

画面下のSave Settingsをクリックし、Update Runnning Serverをクリックします。
Usernameに作成したユーザー名が表示されていれば追加されています。

4.クライアントUI設定

セットアップウィザード完了後に表示されるクライアントUIのURLのプライベートIPアドレスをパブリックIPアドレスに置き換えてアクセスします。

  • Username:管理者WebUIで作成したユーザー名
  • Password:管理者WebUIで作成したユーザーに設定したパスワード

Windowsのクライアントをダウンロードし、インストールします。
インストール後、OpenVPN Connectを起動すると以下の画面が表示されます。

ボタンをクリックするとユーザー名とパスワードを聞かれるので、管理者WebUIで作成したユーザー情報を入力します。
認証が通るとCONNECTEDとなります。

接続後は、他のWebページなどはアクセスできません。

接続テスト

プライベートサブネットに任意のComputeを配備します。
今回はOracle Linuxを配備しました。

OpenVPNを接続した状態で、teratermでアクセスします。
- ホスト:10.0.1.2
- ユーザー名:opc
- 秘密鍵:配備時に設定した公開鍵に紐づく秘密鍵

Windows端末からpingで確認したり、Windows Serverを配備したりする場合は、プライベートサブネットのセキュリティリストにpingやRDPを許可する必要があります。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2