【AWS】統合脅威管理「Sophos UTM」を使ってVPCへSSL-VPN接続する(Android編)

2013.10.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは植木和樹です。先日「【AWS】統合脅威管理「Sophos UTM」を使ってiPhoneからVPCへIPsec-VPN接続する」というエントリでSophos UTMをVPNサーバーとしたIPsec接続を行う方法を紹介しました。

Sophos UTMではIPsec-VPN以外にもSSL-VPNをサポートしています。IPsec-VPNは「拠点間VPN接続」、SSL-VPNは「リモートアクセス」に適した接続方法だそうです。本日はSSL-VPNを用いて様々な機器(Windows7, iPhone, Android)からのリモートアクセスを試してみたいと思います。長くなりそうなので機器ごとにエントリを分けたいと思います。

環境

システム構成図

20131016_sophos_ssl-vpn_001

接続先Webサーバーの用意

EC2サーバーにApacheをインストールしWebサーバーとしています。接続されるWebサーバー側は以下の項目を設定するのを忘れないようにしましょう。

  • VPC Route Tableで「VPN Pool(SSL)」のルーティングをSophosサーバーに向ける。
    20131016_sophos_ssl-vpn_002
  • EC2のセキュリティグループで「VPN Pool(SSL)」アドレスレンジからの接続を許可する。
    20131016_sophos_ssl-vpn_003

特にRoute Tableを設定し忘れると、帰りのパケットがInternet Gatewayに行ってしまい接続を確立できませんので注意してください。

なおSSL-VPNで接続したクライアントに割り当てられるIPアドレスのレンジは[ネットワーク定義]の画面で確認・変更することができます。

20131016_sophos_ssl-vpn_015

SSL-VPNサーバー側の設定

まずSophos側の設定を行います。

接続ユーザーの作成

Sophosの初期設定と接続ユーザーの作成はIPsec-VPNと同じです。「【AWS】統合脅威管理「Sophos UTM」を使ってiPhoneからVPCへIPsec-VPN接続する」の「リモートアクセスユーザーを作成する」までを参考にユーザーを作成しておきます。

SSL-VPN接続設定

[リモートアクセス]-[SSL]をクリックして設定画面を開きます。

20131016_sophos_ssl-vpn_011

プロファイル名に「my-ssl-vpn」と入力します。次にユーザーとグループのフォルダのアイコンをクリックし、画面左側に表示されるユーザー一覧からVPN接続を許可するユーザーをドラッグアンドドロップで追加します。ユーザーが複数の場合は事前にユーザーをグループに追加して、グループに対して接続許可をするのが良いでしょう。

20131016_sophos_ssl-vpn_012

ローカルネットワークのフォルダアイコンをクリックし、画面左側に表示されるネットワーク一覧からVPN経由のユーザーに対して接続を許可するネットワークを選択します。ユーザーと同様ドラッグアンドドロップで追加することができます。

20131016_sophos_ssl-vpn_013

ユーザーとネットワークの設定が終わったら「保存」をクリックします。

Android端末からの接続

Android端末は次の2機種で検証しました。VPN接続には関係ないと思いますが、キャリアはドコモです。

  • Sony Ericsson Xperia arc SO-01C (バージョン 2.3.4)... VPNクライアント非対応
  • SAMSUNG Galaxy Nexus (バージョン 4.2.2)... 動作OK

Android OSのバージョン 2.x はVPNクライアントソフトが動作しないためSSL-VPNで接続することができませんでした。SO-01Cの発売日は「2011年3月24日」ということです。少々古い端末からは接続できませんのでご注意ください。

Android端末へのSSL-VPNクライアントのインストール

Androidの標準ブラウザはGoogle Chromeですが、VPN設定ファイルをダウンロードする際に失敗する不具合があります。そのため作業する際はFirefoxなどのブラウザを使用してください。

Android端末でFirefoxブラウザを起動し、SophosのグローバルIP(EIP)にHTTPSで接続してユーザーポータル画面を開きます。「接続の安全性が確認できない」というメッセージがでますが「続ける」をクリックします。

ユーザーとパスワードを入力してログインします。

20131018_sophos_ssl-vpn_201

画面上部の「リモートアクセス」をクリックします。

20131018_sophos_ssl-vpn_202

画面下にiPhone/Android用の設定があります。設定をダウンロードする前に文中のリンクをクリックしてAndroid用SSL-VPNクライアントソフトをインストールします。

20131018_sophos_ssl-vpn_203

リンクをクリックしてPlayストアの画面を開きます。

20131018_sophos_ssl-vpn_204

ボタンをクリックしてインストールを行います。

20131018_sophos_ssl-vpn_205

アプリの権限確認が行われるので同意します。

20131018_sophos_ssl-vpn_206

OpenVPNのクライアントソフトがインストールできました。「開く」をクリックしてアプリを起動してください。

20131018_sophos_ssl-vpn_207

OpenVPNのクライアントソフトが起動できました。この画面はそのままにして、再度Firefoxの画面に戻ってください。

20131018_sophos_ssl-vpn_208

SSL-VPN設定のインストール

先ほどのiPhone/Android用設定の「Install」ボタンをクリックし、VPN設定をインストールします。(Chromeだとここでインストールに失敗します)

20131018_sophos_ssl-vpn_209

構成ファイルをダウンロードしたら画面右下のディスクアイコンをクリックして保存します。

20131018_sophos_ssl-vpn_210

新しいプロファイルが端末にインストールされました。

20131018_sophos_ssl-vpn_211

SSL-VPNでの接続

プロファイル名をタップして接続を開始します。

20131018_sophos_ssl-vpn_211

初回接続時はVPN接続の許可を求められるので「信頼できる」をチェックして「OK」をタップしてください。

20131018_sophos_ssl-vpn_212

VPNの接続画面が開きますので、ユーザーとパスワードを入力します。パスワードを入力後「OK」をタップするとVPN接続が開始されます。なおオススメはしませんが「パスワードを保存」をチェックしておくと入力したパスワードを保存しておくことができるため、次回以降入力が不要になります。

20131018_sophos_ssl-vpn_213

大量の接続ログが流れ始め、ちょっと驚きます。しばらくするとVPN接続が確立されます。

20131018_sophos_ssl-vpn_214

これでAndroid端末とVPCがVPNで接続されました。WebサーバーにプライベートIPアドレスで接続してみましょう。

20131018_sophos_ssl-vpn_215

成功です!画面が表示されました!
なお画面上部に鍵のアイコンが表示されていればVPN接続中ということです。

SSL-VPNの切断・再接続

VPNの切断は、Android端末の画面を上から下にスワイプして表示される通知パネルから行います。まずはOpenVPNのアプリケーションをクリックします。

20131018_sophos_ssl-vpn_216

表示される画面から「切断」をタップするとVPNを切断することができます。

20131018_sophos_ssl-vpn_217

接続時にログを表示しない設定

VPN接続のたびにログ画面が表示されないようにするためには、OpenVPN起動後の設定タブから「ログウィンドウを表示」のチェックを外してください。

20131018_sophos_ssl-vpn_218

まとめ

Android端末ではユーザーポータル画面からSSL-VPNのクライアントアプリも設定のインストールもできるため、とても簡単にSSL-VPNを設定することができました。ただし以下の点に注意が必要です。

  • Android OS 2.x/3.x がOpenVPNアプリに非対応
  • VPN設定時のブラウザはChromeでなくFirefoxを利用する

Sophos側の設定画面もわかりやすいので、おそらくSophos用EC2の起動から始めても半日もかからずSSL-VPNを設定できるかと思います。まさに早い、安い、簡単ですね。

AWSでSSL-VPNを検討されている方は、ぜひSophos UTMを試してみてください!