すべてのプロダクト
Search
ドキュメントセンター

VPN Gateway:SSL-VPNを使用してクライアントをVPCに接続する

最終更新日:Jan 15, 2025

ビジネスがクラウドにデプロイされていて、暗号化された接続を介してVPCにデプロイされたリソースにアクセスする場合は、SSL-VPNを使用できます。 オフィスオートメーションのシナリオでは、クライアントを使用して、SSL-VPN接続を介して内部のオフィスオートメーションシステムまたはファイルサーバーにアクセスできます。 このトピックでは、クライアントを使用してSSL-VPNを介してECSインスタンスにアクセスする方法を示します。

説明

このトピックでは、Windows、Linux、Android、およびmacOSクライアントを構成する方法を紹介します。 クライアントとしてiPhoneを使用している場合は、「組み込みVPNソフトウェアを使用してiOSデバイスをVPNゲートウェイに接続する」をご参照ください。

シナリオ

次の図では、ECSインスタンスがデプロイされています。 VPC経由でローカルクライアントをECSインスタンスに接続します。 これを行うには、ECSインスタンスのVPCにVPNゲートウェイをデプロイします。

image

始める前に、サブネットを完了する必要があります。 この例では、次のサブネット計画を使用します。

  • VPC:

    • リージョン: 中国 (杭州)

    • CIDRブロック: 10.0.0.0/16

    • ゾーンJのvSwitch 1。CIDRブロック: 10.0.0.0/24

    • ゾーンK CIDRブロックのvSwitch 2: 10.0.1.0/24

    • ECSインスタンス: 10.0.0.1 OS: Alibaba Cloud Linux 3.2104 LTS 64ビット

  • クライアントCIDRブロック: 192.168.0.0/16

    接続が作成されると、VPNゲートウェイはクライアントCIDRブロックからクライアントの仮想NICにIPアドレスを割り当てます。

重要

リソースをオンデマンドでデプロイするには、次の条件が満たされていることを確認します。

  • ゾーン間の高可用性を確保するには、少なくとも2つのゾーンにvSwitchが存在する必要があります。 この条件が満たされない場合は、vSwitchを作成します。

  • クライアントCIDRブロックは、ローカルクライアントデバイスに関連付けられているvSwitch CIDRブロックまたはルートと重複してはなりません。

手順1: VPNゲートウェイの設定

クライアントをVPCに接続する前に、VPCにVPNゲートウェイをデプロイする必要があります。

VPNゲートウェイの作成

  1. VPN Gatewayコンソールにログインします。 VPN Gatewayページで、[VPN Gatewayの作成] をクリックします。

    image

  2. VPN Gatewayページで、次のパラメーターを設定し、他のパラメーターのデフォルト設定を維持し、[今すぐ購入] をクリックして支払いを完了します。

    名前: VPN gatewayの名前を入力します。 この例では、VPNゲートウェイ1に入ります。

    リージョン: 中国 (杭州) を選択します。

    ゲートウェイタイプ: 標準

    VPC: クライアントが接続するVPCを選択します。

    vSwitch 1: vSwitch 1を選択します。

    vSwitch 2: vSwitch 2を選択します。

    最大帯域幅: 5 Mbit/sを選択します。

    トラフィック: デフォルトでは、VPNゲートウェイはデータ転送課金方式を使用します。 詳細については、「課金」をご参照ください。

    IPsec-VPN: [無効にする] を選択します。

    SSL-VPN: [有効化] を選択します。

    SSL接続: 5を選択します。

    期間: デフォルトでは、VPNゲートウェイは1時間ごとに課金されます。

    サービスにリンクされたロール: [サービスにリンクされたロールの作成] をクリックします。 [作成済み] が表示されている場合、サービスにリンクされたロールが作成され、再度作成する必要はありません。

  3. VPN Gatewayコンソールに戻ります。 VPNゲートウェイが作成されていることがわかります。

    image

    前の手順で作成したVPN gatewayは、準備中 状態です。 約1〜5分後、VPNゲートウェイは正常状態になります。 正常 状態は、VPNゲートウェイが使用できる状態であることを示します。

SSLサーバーの作成

SSLサーバーを使用して、クライアントによる特定のネットワークおよびリソースへのアクセスを許可または禁止できます。

  1. 左側のナビゲーションウィンドウで、[相互接続] > [VPN] > SSL サーバー を選択します。 上部のナビゲーションバーで、中国 (杭州) リージョンを選択します。 SSL サーバー ページで、SSLサーバーの作成 をクリックします。image

  2. SSLサーバーの作成 パネルで、次のパラメーターを設定し、他のパラメーターのデフォルト設定を維持して、[OK] をクリックします。

    名前: SSLサーバー1を入力します。

    VPN Gateway: 前の手順で作成したVPN Gateway 1を選択します。

    ローカルネットワーク: VPCのCIDRブロックである10.0.0.0/16を入力します。

    クライアントCIDRブロック: 192.168.0.0/16と入力します。

    説明

    ローカルネットワーク: クライアントがSSL-VPNを介してアクセスする必要があるCIDRブロック。

    クライアントCIDRブロック: クライアントの仮想NICに割り当てられたCIDRブロック。 クライアントのプライベートCIDRブロックとは異なります。 ローカルCIDRブロックと重複してはなりません。

    image

SSLクライアントの作成と証明書のダウンロード

SSLクライアントは、クライアント証明書の管理に使用されます。 各クライアントは1つの証明書に対応します。 証明書は、クライアントのIDを検証し、データを暗号化するために使用されます。 最初に証明書をダウンロードし、証明書をクライアントにロードする必要があります。

  1. 左側のナビゲーションウィンドウで、[相互接続] > [VPN] > SSL クライアント を選択します。 上部のナビゲーションバーで、中国 (杭州) リージョンを選択します。 SSL クライアント ページで、SSL クライアントの作成 をクリックします。

    image

  2. [SSLクライアントの作成] パネルで、名前として [SSLクライアント1] を入力し、[SSLサーバー][SSLサーバー1] に設定し、[OK] をクリックします。

    image

  3. SSL クライアント ページで、作成したSSLクライアントを見つけ、[操作] 列の [証明書のダウンロード] をクリックします。

    image

手順2: クライアントの設定

設定方法は、クライアントのOSによって異なります。

Windowsクライアント

  1. OpenVPNクライアントfor Windowsをダウンロードしてインストールします。 ページにアクセスできない場合は、アカウントマネージャーまたはAlibaba Cloudエンジニアにお問い合わせください。

  2. ダウンロードしたSSLクライアント証明書パッケージを解凍し、SSLクライアント証明書をOpenVPN\configディレクトリにコピーします。

    この例では、証明書はC:\Program Files\OpenVPN\configにコピーされます。クライアントがインストールされているディレクトリに証明書をコピーする必要があります。

  3. デスクトップのOpenVPN GUIアイコンをダブルクリックして、クライアントを起動します。 右下のシステムトレイにVPNアイコンが表示されます。 システムトレイのVPNアイコンを右クリックし、[接続] をクリックしてSSL-VPN接続を作成します。

  4. StateがConnectedを表示し、IPアドレスが割り当てられている場合、接続が作成されます。

Linuxクライアント

  1. 次のコマンドを実行してOpenVPNをインストールし、confディレクトリを作成します。

    CentOS
    yum install -y openvpn
    mkdir -p /etc/openvpn/conf
    Ubuntu
    apt-get update
    apt-get install -y openvpn
    mkdir -p /etc/openvpn/conf
  2. ダウンロードしたSSLクライアント証明書パッケージを解凍し、SSLクライアント証明書を/etc/openvpn/conf /ディレクトリに移動します。

  3. /etc/openvpn/conf/ ディレクトリに移動し、次のコマンドを実行してSSL-VPN接続を確立します。

    openvpn --config /etc/openvpn/conf/config.ovpn --daemon

Androidクライアント

  1. をダウンロードしてインストールします。Android用OpenVPNクライアント. ページにアクセスできない場合は、アカウントマネージャーまたはAlibaba Cloudエンジニアにお問い合わせください。

    この例では、Android 9.0を実行するクライアントとバージョン3.0.5のOpenVPNクライアントが使用されています。

  2. SSLクライアント証明書パッケージをAndroidクライアントに転送し、パッケージを解凍します。

    説明
    • Androidクライアントにパッケージを解凍するアプリケーションがない場合は、コンピューターで証明書を解凍してから、解凍したファイルをクライアントに転送できます。

    • 解凍されたファイルが同じフォルダに属していることを確認します。 次の図に例を示します。

    文件保存位置

  3. OpenVPNクライアントを開き、config.ovpnファイルを作成し、SSL-VPN接続を追加します。

    导入config文件

    ステップ

    説明

    [OVPNプロファイル] を選択します。

    2

    ディレクトリでconfig.ovpnファイルを見つけます。

    3

    [IMPORT] をクリックしてconfig.ovpnファイルをインポートします。

    4

    config.ovpnファイルから情報を読み取り、接続するVPN gatewayのパブリックIPアドレスを表示します。 [追加] をクリックしてSSL-VPN接続を追加します。

  4. スイッチをオンにしてSSL-VPN接続を確立します。

    开启OpenVPN

macOSクライアント (GUI)

  1. に移動します。Go to theTunnelblickリリースページ, 検索Tunnelblick 4.0.1 (ビルド5971)でファイルをダウンロードし、. dmgアセットパネルの形式。 ページにアクセスできない場合は、アカウントマネージャーまたはAlibaba Cloudエンジニアにお問い合わせください。

  2. Tunnelblickをインストールします。

    image

    ステップ

    説明

    ダウンロードしたTunnelblickインストールパッケージをダブルクリックします。

    2

    Tunnelblickアイコンをダブルクリックします。

    3

    [設定ファイルがあります] を選択します。

    4

    [OK] をクリックします。

  3. SSLクライアント証明書パッケージを解凍します。 ドラッグ&ドロップconfig.ovpnファイルを構成パネルにSSL-VPN接続を作成します。

image

ステップ

説明

TunnelblickアイコンをダブルクリックしてTunnelblickを開きます。

2

抽出したconfig.ovpnファイルをConfigurationsパネルにドラッグアンドドロップします。

3

[自分のみ] を選択します。

4

[接続] をクリックします。

macOSクライアント (CLI)

  1. ターミナルプロンプトを開きます。 Homebrewがクライアントにインストールされていない場合は、次のコマンドを実行してHomebrewをインストールします。

    説明

    Homebrewインストールスクリプトにはsudoコマンドが含まれています。 したがって、システムは管理者パスワードの入力を促します。 "Press RETURN/ENTER to continue..." がプロンプト表示されたら、Enterキーを押します。

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

  2. OpenVPNをインストールします。

    brew install openvpn

  3. ダウンロードしたSSLクライアント証明書パッケージをOpenVPNクライアントの構成ディレクトリにコピーします。

    1. をバックアップする/opt/homebrew/etc/openvpnディレクトリに移動します。

      cp -r  /opt/homebrew/etc/openvpn /opt/homebrew/etc/openvpn_bak
    2. 次のコマンドを実行して、OpenVPNの現在の設定ファイルを削除します。

      rm /opt/homebrew/etc/openvpn/*
    3. 次のコマンドを実行して、ダウンロードSSLクライアント証明書パッケージをOpenVPNの構成ディレクトリにコピーします。

      cp /path/to/certs.zip /opt/homebrew/etc/openvpn/
      説明

      /path/to/certs.zipは、SSLクライアントの作成時にダウンロードされたSSLクライアント証明書パッケージのパスです。 ほとんどの場合、パッケージは /Users/example/Downloads/certs.zipなどのユーザーダウンロードディレクトリにあります。

  4. 次のコマンドを実行して、証明書パッケージを解凍します。

    cd /opt/homebrew/etc/openvpn/
    unzip /opt/homebrew/etc/openvpn/certs.zip
  5. モードを選択します。

    前景で走る

    次のコマンドを実行して、クライアントプロセスを起動し、SSL-VPN接続を作成します。

    sudo /opt/homebrew/opt/openvpn/sbin/openvpn --config /opt/homebrew/etc/openvpn/config.ovpn

    コマンドはフォアグラウンドで実行されます。 接続を閉じるには、Ctrl + Cを押してコマンドを終了します。

    バックグラウンドで実行する

    次のコマンドを実行して、VPNクライアントプロセスをバックグラウンドでサービスとして実行し、起動時に自動的に起動します。

    cp config.ovpn openvpn.conf
    sudo brew services start openvpn

    プロセスを停止するには、次のコマンドを実行します。

    sudo brew services stop  openvpn

ステップ3: 接続の確認

重要

開始する前に、ECSインスタンスのセキュリティグループルールがICMPメッセージを許可していることを確認してください。 詳細については、「セキュリティグループルールの表示セキュリティグループルールの追加」をご参照ください。

クライアントからECSインスタンスのIPアドレスをPingします。

ping 10.0.0.1

pingが成功した場合、クライアントはECSインスタンスに接続されています。

クライアントがAndroidを実行している場合は、ここをクリックして接続を確認します。

  1. ECSインスタンスにNGINXをインストールします。 この例では、Alibaba Cloud Linux 3.2104 LTS 64ビットがインストールされています。

    yum install -y nginx
    systemctl start nginx.service
  2. ECSインスタンスのセキュリティグループでTCPポート80を開きます。 詳細については、「セキュリティグループルールの表示」および「セキュリティグループルールの追加」をご参照ください。

  3. ブラウザからECSインスタンスのプライベートIPアドレス10.0.0.1にアクセスします。 アクセスが成功すると、クライアントはECSインスタンスに接続されます。

    image

よくある質問

このセクションでは、よくある質問に対する回答を示します。 詳細については、「SSL-VPN接続に関するFAQ」をご参照ください。

クライアントがSSL-VPN接続を作成できないのはなぜですか?

  1. クライアントがインターネットに接続されていることを確認してください。

  2. 証明書が読み込まれていることを確認します。

クライアントがECSインスタンスに接続されているが、pingパケットがECSインスタンスに到達できない場合はどうすればよいですか。

ECSインスタンスのセキュリティグループがICMPパケットを許可していることを確認します。 詳細については、「セキュリティグループルールの照会」および「セキュリティグループルールの追加」をご参照ください。

クライアントからのpingパケットがECSインスタンスに到達できるが、クライアントがECSポートにアクセスできない場合はどうすればよいですか。

  1. リスナーがECSサービスポートでリッスンしていることを確認します。 例としてLinuxのポート80を取り上げます。

    image

  2. ECSインスタンスのOSファイアウォールがポートを開いていることを確認します。 例としてiptablesのポート80を取ります。

    iptables -I INPUT -p 80 -j ACCEPT
  3. ECSインスタンスのセキュリティグループがポートを開いていることを確認します。 詳細については、「セキュリティグループルールの照会」および「セキュリティグループルールの追加」をご参照ください。

クライアントからのpingパケットがECSインスタンスに到達できるが、ECSインスタンスからクライアントへのpingが失敗した場合はどうすればよいですか。

ほとんどの場合、クライアントのOSファイアウォールはpingパケットをブロックします。 pingパケットを許可するようにファイアウォールを設定します。

LinuxまたはmacOSクライアントはどのようにしてSSL-VPN接続を閉じますか?

  1. CLIを開き、次のコマンドを実行してOpenVPNプロセスを検索し、プロセスIDを記録します

    ps aux | grep openvpn
  2. 次のコマンドを実行してOpenVPNプロセスを停止します。

    kill -9 <Process number>

OpenVPNを使用して、M1チップを搭載したmacOSクライアントでSSL-VPN接続を確立するにはどうすればよいですか?

macOSクライアント (GUI) を使用して接続を作成することを推奨します。

OpenVPNを使用してクライアントでSSL-VPN接続を確立した後、クライアントが起動したときに、LinuxクライアントでOpenVPNプロセスを自動的に起動できるようにするにはどうすればよいですか?

  1. /etc/rc.localファイルを編集し、ファイルにコマンドを追加します。

    # Open the /etc/rc.local file.
    vim /etc/rc.local 
    # Press the I key to enter the insert mode, and add the following commands to the /etc/rc.local file:
    cd /etc/openvpn/conf/
    openvpn --config /etc/openvpn/conf/config.ovpn --daemon
    # Press the ESC key to exit the insert mode, and run the following command to save and exit the file:
    :wq
  2. /etc/rc.localファイルの実行権限を付与します。

    chmod +x /etc/rc.local