二要素認証を使用する SSL-VPN は、まず SSL クライアント証明書でクライアントを認証し、次にユーザー名とパスワードを使用して IDaaS (Identity as a Service) で認証することで、セキュリティを強化します。IDaaS 認証を使用する場合、Active Directory (AD) サーバーをバインドして AD ベースのログインを有効にすることができます。このトピックでは、SSL-VPN の二要素認証を使用して、AD サーバー経由でクライアントを Virtual Private Cloud (VPC) に接続する方法について説明します。接続後、クライアントは VPC 内のリソースにアクセスできます。
シナリオ
このシナリオでは、企業が China (Hangzhou) リージョンに Virtual Private Cloud (VPC) を持ち、アプリケーションを ECS インスタンスにデプロイしています。業務上の要件として、出張中の従業員はこれらのリソースにリモートでアクセスする必要があります。セキュリティの観点から、企業は VPC 内のリソースにアクセスする前に、すべての従業員がオンプレミスの Active Directory (AD) サーバーを通じて認証を受けることを必須としています。
企業は VPN Gateway の SSL-VPN 機能を使用して、SSL-VPN 接続に対して二要素認証を有効化できます。また、IDaaS アプリケーションを構成して AD 認証を実行することもできます。従業員が Alibaba Cloud への SSL-VPN 接続を確立しようとする場合、従業員はまず SSL クライアント証明書による認証に合格し、その後、IDaaS EIAM インスタンスが処理する AD 認証に合格する必要があります。IDaaS EIAM インスタンスは、従業員の認証情報を検証のために企業の AD サーバーに送信し、その結果を返します。検証に成功すると、従業員は Alibaba Cloud への SSL-VPN 接続を確立し、VPC 内のリソースにアクセスできます。
前提条件
-
China (Hangzhou) リージョンに VPC を作成し、VPC 内の ECS インスタンスにアプリケーションをデプロイ済みであること。詳細については、「Set up an IPv4 VPC」をご参照ください。
ECS インスタンスのセキュリティグループルールで、クライアントが必要なクラウドリソースにアクセスできることを確認してください。詳細については、「Query security group rules」および「Add a security group rule」をご参照ください。
-
クライアントがインターネットにアクセスでき、クライアントのプライベート CIDR ブロックが VPC のプライベート CIDR ブロックと重複していないことを確認してください。
-
Enterprise Edition の IDaaS EIAM インスタンスを作成済みであること。詳細については、「Manage instances」をご参照ください。
重要-
IDaaS EIAM 1.0 インスタンスは購入できなくなりました。IDaaS EIAM 2.0 インスタンスの使用を推奨します。このトピックでは、IDaaS EIAM 2.0 インスタンスを例に説明します。詳細については、「[Change Announcement] SSL-VPN two-factor authentication supports IDaaS EIAM 2.0」をご参照ください。
-
IDaaS EIAM 1.0 インスタンスの使用方法については、「IDaaS EIAM 1.0 configuration」をご参照ください。
-
-
AD サーバーのパブリック IP アドレスとサービスポートを取得済みであること。
この例では、AD システムは Windows Server 2022 上にデプロイされています。パブリック IP アドレスは 47.XX.XX.62 で、サービスポートは 389 です。
-
AD サーバーのベース DN を取得済みであること。
この例では、AD サーバーのベース DN は dc=zxtest,dc=com です。
-
AD サーバー上の管理者の DN、ユーザー名、パスワードを取得済みであること。
この例では、管理者アカウント名は Administrator、パスワードは 1****2 です。DN は cn=Administrator,cn=Users,dc=zxtest,dc=com です。たとえば、「Active Directory ユーザーとコンピューター」でドメイン ノード (例:
zxtest.com) と Users コンテナーを展開し、Administrator ユーザーを見つけます。DN はCN=Administrator,CN=Users,DC=zxtest,DC=comです。
手順
ステップ 1: AD サーバーのバインド
AD サーバーを IDaaS EIAM インスタンスにバインドして、AD サーバーからアカウント情報を同期します。詳細については、「AD のバインド - インバウンド」をご参照ください。
この例では、AD サーバーをバインドする際、必須パラメーター以外はすべてデフォルト値を使用します。以下は、AD サーバーから IDaaS EIAM インスタンスに同期されたアカウント情報です。
同期が完了したら、[アカウント] タブに移動します。アカウント一覧で、wangwu アカウントの [ソース] は AD インポート と表示され、ステータスは正常です。zhangsan や Lisi などの他のアカウントの [ソース] は 自己作成 です。これにより、AD アカウントが IDaaS EIAM インスタンスに正常に同期されたことが確認できます。
ステップ 2:SSL-VPN アプリケーションの追加
-
IDaaS コンソールにログインします。
-
EIAM ページで、前提条件で作成した EIAM インスタンスを見つけ、Actions 列の Console をクリックします。
-
EIAM インスタンスの左側のナビゲーションペインで、Applicationをクリックします。Application ページで、Add Applicationをクリックします。
-
Add Application ページで、Alibaba Cloud - SSL VPN テンプレートを見つけて、Add Application をクリックします。
-
「アプリケーションの追加」 ダイアログボックスで、アプリケーション名を入力し、[追加] をクリックします。
-
アプリケーション詳細ページの Sign-In タブで、以下のパラメーターを設定し、タブの下部にある Save をクリックします。
[SSO]: この機能を有効のままにします。
[Grant Types]: デフォルト値は Password Grant です。IdP の場合、バインドされた AD サーバーを選択します。システムは AD サーバーを使用して従業員を認証します。
[Authorize]:デフォルト値の Manually を使用します。この設定では、このアプリケーションへのアクセスを特定のアカウントに手動で承認する必要があります。承認スコープの詳細については、「承認スコープ」をご参照ください。
-
Sign-Inタブに留まり、Application Authorizationタブをクリックします。
SSL-VPN 接続を確立する必要がある従業員アカウントに権限を付与します。詳細については、「アプリケーションの権限付与」 をご参照ください。
ステップ 3:VPN Gateway の作成
- VPN gatewayコンソールにログインします。
VPN Gateway ページで、[VPN Gateway の作成] をクリックします。
-
[VPN ゲートウェイ] ページで、以下のように VPN ゲートウェイを設定し、今すぐ購入 をクリックして支払いを完了します。
次の表では、本トピックに関連するパラメーターのみを説明します。他のパラメーターはデフォルト値のままにします。詳細については、「VPN Gatewayインスタンスの作成と管理」をご参照ください。
パラメーター
説明
リージョン
VPN ゲートウェイインスタンスを作成するリージョンを選択します。この例では、[中国 (杭州)] が選択されています。
説明VPC と VPN Gateway インスタンスが同じリージョンにあることを確認してください。
[ゲートウェイタイプ]
作成する VPN ゲートウェイのタイプを選択します。この例では、標準 を選択します。
[ネットワークタイプ]
VPN ゲートウェイインスタンスのネットワークタイプを選択します。この例では、[パブリック] を選択します。
[トンネル]
システムは、現在のリージョンでサポートされている IPsec-VPN 接続のトンネルモードを表示します。
VPC
接続する VPC を選択します。
[vSwitch 1]
VPC から vSwitch を選択します。
[シングルトンネル] を選択した場合は、1 つの vSwitch のみ指定する必要があります。
[デュアルトンネル] を選択した場合は、2 つの vSwitch を指定する必要があります。
IPsec-VPN 機能が有効になると、システムは 2 つの vSwitch にそれぞれ ENI を作成し、IPsec-VPN 接続を介して VPC と通信するためのインターフェースとして使用します。各 ENI は、vSwitch 内の 1 つの IP アドレスを占有します。
説明システムはデフォルトで vSwitch を選択します。デフォルトの vSwitch を変更または使用できます。
VPN ゲートウェイの作成後、VPN ゲートウェイに関連付けられた vSwitch を変更することはできません。VPN ゲートウェイの詳細ページで、VPN ゲートウェイに関連付けられた vSwitch、vSwitch が属するゾーン、vSwitch 内の ENI を表示できます。
[vSwitch 2]
VPC から 2 番目の vSwitch を選択します。
関連付けられた VPC 内の異なるゾーンにある 2 つの vSwitch を指定して、ゾーン間の IPsec-VPN 接続のディザスタリカバリを実装します。
1 つのゾーンのみをサポートするリージョンの場合、ゾーン間のディザスタリカバリはサポートされていません。IPsec-VPN 接続の高可用性を実装するために、ゾーン内の 2 つの vSwitch を指定することをお勧めします。最初の vSwitch と同じ vSwitch を選択することもできます。
説明VPC に 2 番目の vSwitch がない場合は、作成できます。詳細については、「vSwitchの作成と管理」をご参照ください。
IPsec-VPN
IPsec-VPN 機能を有効にするかどうかを指定します。この例では、[無効化] を選択します。
SSL-VPN
SSL-VPN 機能を有効にするかどうかを指定します。この例では、[有効化] を選択します。
[SSL 接続数]
同時に接続できるクライアントの最大数を選択します。
説明[SSL 接続数] は、SSL-VPN 機能を有効にした後にのみ設定できます。
-
VPN Gateway ページに戻り、VPN ゲートウェイ インスタンスを表示します。
新しい VPN ゲートウェイインスタンスは 準備中 状態です。1~5 分後、状態は 正常 に変わります。正常 状態は、VPN ゲートウェイインスタンスが初期化されたことを示します。
ステップ 4:SSL サーバーの作成
左側のナビゲーションウィンドウで、 を選択します。
-
上部メニューで、SSL サーバーのリージョンを選択します。
説明SSL サーバーと VPN Gateway インスタンスが同じリージョンにあることを確認してください。
SSL サーバー ページで、[SSLサーバーの作成] をクリックします。
-
SSLサーバーの作成 パネルで、次の表の説明に従って SSL サーバーを設定し、OK をクリックします。
次の表では、本トピックに関連するパラメーターのみを説明します。他のパラメーターはデフォルト値のままにします。詳細については、「SSL サーバーの作成と管理」をご参照ください。
パラメーター
説明
[VPN Gateway]
作成した VPN Gateway インスタンスを選択します。
[ローカルネットワーク]
アクセスしたい VPC の CIDR ブロックを入力します。この例では、192.168.0.0/16 を使用します。
[クライアント CIDR ブロック]
クライアントが VPC にアクセスするために使用する CIDR ブロックを入力します。この例では、10.0.0.0/24 を使用します。
重要クライアント CIDR ブロックのサブネットマスクは 16~29 ビット長である必要があります。
クライアント CIDR ブロックがローカルネットワーク、VPC CIDR ブロック、またはクライアント側でルーティングされる CIDR ブロックと重複しないようにしてください。
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 などのプライベート CIDR ブロックまたはそのサブネットを使用することを推奨します。パブリック IP アドレス範囲を使用する必要がある場合は、適切なルーティングを確保するために、そのパブリック IP アドレス範囲を VPC のユーザー定義 CIDR ブロックとして設定してください。ユーザー定義 CIDR ブロックの詳細については、「VPC FAQ」および「VPC FAQ」をご参照ください。
SSL サーバーを作成すると、システムはクライアント CIDR ブロックのルートを VPC のルートテーブルに自動的に追加します。このルートを手動で追加しないでください。そうしないと、SSL-VPN トラフィックが正常に転送されない可能性があります。
[詳細設定]
二要素認証を有効にします。本トピックでは EIAM 2.0 を使用します。他の設定はデフォルト値のままにします。
-
[IDaaS インスタンスのリージョン]:[中国 (杭州)] を選択します。
-
[IDaaS インスタンス]:前提条件で作成した EIAM インスタンスを選択します。
-
[IDaaS アプリケーション]:追加した Alibaba Cloud SSL-VPN アプリケーションを選択します。
説明UAE (ドバイ) リージョンで SSL サーバーを作成する場合、リージョン間のレイテンシを削減するために、シンガポールリージョンの IDaaS EIAM 2.0 インスタンスをバインドすることを推奨します。
ステップ 5:SSL クライアント証明書の作成
左側のナビゲーションウィンドウで、 を選択します。
SSL クライアント ページで、[SSL クライアントの作成] をクリックします。
-
SSL クライアントの作成 パネルで、SSL クライアント証明書の名前を入力し、対応するSSL サーバーを選択して、OKをクリックします。
-
SSL クライアント ページで、作成した SSL クライアント証明書を見つけ、操作 列の 証明書のダウンロード をクリックします。
ダウンロードした SSL クライアント証明書を保存します。この証明書はクライアントの設定で必要になります。
ステップ 6:クライアントの構成
Linux クライアント
-
コマンドラインインターフェイス (CLI) を開きます。
-
次のコマンドを実行して OpenVPN クライアントをインストールします。
CentOS
yum install -y openvpn mkdir -p /etc/openvpn/confUbuntu
apt-get update apt-get install -y openvpn mkdir -p /etc/openvpn/conf -
ダウンロードした SSL クライアント証明書パッケージを展開し、ファイルを /etc/openvpn/conf/ ディレクトリにコピーします。
-
/etc/openvpn/conf/ ディレクトリに移動し、次のコマンドを実行してから、ユーザー名とパスワードを入力します。クライアントが AD サーバーで認証されると、SSL-VPN 接続が確立されます。
openvpn --config /etc/openvpn/conf/config.ovpn --daemon[root@iZufxxxmcZ ~]# cd /etc/openvpn/conf [root@iZufxxxmcZ conf]# openvpn --config /etc/openvpn/conf/config.ovpn --daemon Enter Auth Username: tanakataro Enter Auth Password: ********* [root@iZufxxx conf]# ps aux | grep openvpn ogt 21148 0.0 0.1 14664 5712 ? Ss May10 0:00 openvpn --config /etc/openvpn/conf/config.ovpn --daemon root 23249 0.0 0.0 21528 916 pts/0 S+ 10:46 0:00 grep --color=auto openvpn
Windows クライアント
-
お使いの Windows のバージョンに対応する OpenVPN クライアントをダウンロードしてインストールします:
-
Windows 64 ビット (Intel/AMD): OpenVPN クライアント (Windows 64 ビット)。
-
Windows ARM64: OpenVPN クライアント (Windows ARM64)。
ダウンロードリンクが開けない場合は、アカウントマネージャーまたは Alibaba Cloud のエンジニアにお問い合わせください。
-
-
ダウンロードした SSL クライアント証明書パッケージを解凍し、すべての展開されたファイルを OpenVPN の設定ディレクトリにコピーします。
-
デフォルトパス:
C:\Program Files\OpenVPN\config -
注意: インストールパスを変更した場合は、インストールディレクトリ内の `config` フォルダにファイルをコピーしてください。

-
-
テキストエディターで
config.ovpnファイルを開き、ファイルの末尾に次の行を追加します:disable-dco。OpenVPN 2.6 で導入されたデータチャネルオフロード (DCO) 機能は、Windows 10 や Windows 11 の特定バージョンなど、一部の Windows システムと互換性がありません。DCO を無効にすることで、これらのデバイスで発生する可能性のある接続問題が解決されます。
client dev tun proto tcp remote 121.41.xxx resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert vsc-bp1xxx.crt key vsc-bp1xxx.key cipher AES-128-CBC ;comp-lzo verb 4 disable-dco -
OpenVPN クライアントを起動し、[Connect] をクリックしてから、ユーザー名とパスワードを入力します。クライアントが AD サーバーで認証されると、SSL-VPN 接続が確立されます。
macOS クライアント (OpenVPN)
-
コマンドラインウィンドウを開きます。
-
Homebrew がインストールされていない場合は、次のコマンドを実行してインストールします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
次のコマンドを実行して、OpenVPN クライアントをインストールします。
brew install openvpn -
ダウンロードした SSL クライアント証明書を解凍し、ファイルを構成ディレクトリにコピーします。
-
/usr/local/etc/openvpn フォルダ内のすべての構成ファイルをバックアップします。
重要OpenVPN のデフォルトのインストールパスは、macOS のバージョンによって異なる場合があります。次の手順では、実際のインストールパスを使用してください。
-
次のコマンドを実行して、OpenVPN 構成ファイルを削除します。
rm /usr/local/etc/openvpn/* -
次のコマンドを実行して、ダウンロードした SSL クライアント証明書を構成ディレクトリにコピーします。
cp cert_location /usr/local/etc/openvpn/cert_locationは、ダウンロードした SSL クライアント証明書へのパスです。例:/Users/example/Downloads/certs6.zip
-
-
次のコマンドを実行して、証明書を解凍します。
cd /usr/local/etc/openvpn/ unzip /usr/local/etc/openvpn/certs6.zip /usr/local/etc/openvpn/ ディレクトリに移動し、次のコマンドを実行してから、ユーザー名とパスワードを入力して SSL-VPN 接続を確立します。
sudo /usr/local/opt/openvpn/sbin/openvpn --config /usr/local/etc/openvpn/config.ovpn
ステップ 7:接続性のテスト
前述の手順を完了すると、クライアントは VPC 内のリソースにリモートアクセスできるようになります。以下では、Linux クライアントと VPC 間の接続性をテストする方法について説明します。
-
クライアントでコマンドラインウィンドウを開きます。
-
pingコマンドを実行して VPC 内の ECS1 インスタンスにアクセスし、接続性を確認します。ping <ECS1 インスタンスの IP アドレス>以下に示すような応答パケットを受信した場合、クライアントは VPC に正常に接続されています。
[root@iZuf6 ihcZ conf]# ping 192.168.10.154 PING 192.168.10.154 (192.168.10.154) 56(84) bytes of data. 64 bytes from 192.168.10.154: icmp_seq=1 ttl=63 time=11.9 ms 64 bytes from 192.168.10.154: icmp_seq=2 ttl=63 time=11.7 ms 64 bytes from 192.168.10.154: icmp_seq=3 ttl=63 time=11.7 ms 64 bytes from 192.168.10.154: icmp_seq=4 ttl=63 time=11.8 ms 64 bytes from 192.168.10.154: icmp_seq=5 ttl=63 time=11.5 ms ^Z [8]+ Stopped ping 192.168.10.154 [root@iZuf6hgotc :Z conf]#
IDaaS EIAM 1.0 の設定
IDaaS EIAM 1.0 インスタンスを使用するには、次の手順を実行します。 SSL サーバーを作成する際に、LDAP 認証を有効にし、EIAM 1.0 インスタンスをバインドする必要があります。 その他の手順は EIAM 2.0 と同じです。
アイコンをクリックし、表示されるダイアログボックスで Submit をクリックして、LDAP 認証ソースを有効にします。