treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

低コストシンクライアントというかVDIというか…。

今回は一人ミニマムVDIをご報告します。
ただし今回はミニマムでインフラ設計という部分に特化させています。(ざっくりとした概要ということです。)詳細を記事にする元気がいまのところありません。
各々でもう少し詳しく知りたい、という需要がもしあればその箇所は掘り下げて解説いたしますので、もし興味があればコメント欄にリアクションをください。
あと、月並みですがセキュリティ環境・設定はできるだけ変更しないよう構成を考えていますが、VPNという経路を用意する関係上ご自身の知識やスキルの向上は必要になります。この記事での被った損害・損失に対しては、一切の責任を負いかねます。ご了承いただける場合のみこれ以降を読み進めてください。

まずはこの構成を考えた理由やこの構成のメリットを解説します。

ちょっと過去、今よりシンクライアントやVDIの技術が進歩する前のVDI。
そのころの提案で企業が企業に本気で提案するVDIの一つに、
「リアルなPCを設置しリアルなPCにリモートデスクトップしてシンクライアントのように利用する。」という提案書が実際に提示されていました。
RemoteAppやライブマイグレーションHyper-Vレプリカなどの進化したレプリケーションといった技術が現実に存在している現在ではちょっと考えられない提案書ですが、これは本当です。
「リアルなPCを設置し…」の部分を一歩進めると「コネクションブローカー用サーバを構成し、Hyper-VでゲストOSをWindowsProfessionalでシンクライアントユーザ数分構築しホストする」という提案書になります。

世の中の小規模企業やSOHOではシンクライアント導入は予算の問題で最初から選定の遡上にもあがらないかと思いますが、シンクライアントのようなソリューションを普段利用しているモバイル環境で実現したいと感じたことはないでしょうか?(たぶんあると思います。)

  1. 取引先のデータをモバイルPCに記録された状態で持ち運ぶことにリスクを感じる。リスクは、盗難や覗き見、公衆WiFiからのデータ盗難、など
  2. PCを(盗難も含め)紛失した場合、データがなくなることで業務インパクトが大きい(事務所内に代わりになる設備はないから)


簡単に言えば、持ち歩く(持ち運ぶ)ことは紛失のリスクの元になる行動ですよ、と。そいでもって紛失した場合、データ紛失による信用低下と業務環境紛失による業務停止(効率低下)の2つの問題があるよ、ということです。

で、これを解決するソリューションの1つの選択肢がシンクライアント&VDIソリューションであり、最近それなりの規模の企業では導入が進んでいる分野のソリューションです。
でも、正直金額が…導入のイニシャルもそれなりに掛かりますし、高額なランニング費用を支払うのもちょっと難しい…という場合の構成です。

講釈はこの辺で。

準備する必要があるのは、

  1. メインPC(高級で高スペック)
  2. モバイルPCかタブレット(安価な低スペックで可)
  3. VPNコンセントレーター(常時電源ONするコンピュータかFW機器)
  4. モバイルWiFiルータ(かもしくは他の方法での外出先インターネット接続)

大きく分類してこの4つです。

  • メインPCに要求される条件はCorei7かi5のvPro対応のCPUが使われているPCが必須です。このvProが大きな役割を果たします。またデータの保管場所はここになりますので、HDDやSSDRAID構成&外付けHDDなどでバックアップ体制も整えます。
  • モバイルPCかタブレットに要求される条件は持ち運ぶ環境としてデータを記憶しないため軽さやバッテリの持ち、キーボード/ポインティングデバイス、といったモバイルの使い勝手に特化します。さらに安くて入手しやすい、という条件も加えます。要するにメインPCに任せるストレージは少なくてもよいしCPUの処理速度も要求しません。で、盗難/紛失に遭ったらきれいさっぱり諦めて代替機器を購入して使えるようにできるような環境を整えるわけです。

VPNコンセントレーターはいくつか候補が分かれます。

  • サーバ型で用意する場合にはRaspberry Pi2でOS:Raspbianで用意するのが安価でよさそうです。(私はIntel NUCでHyper-VゲストOSにDebianで用意していますが)もちろん余剰PCにLinuxをインストールしてVPNServerを起動するのもOKです。
  • ネットワーク機器型で用意する場合には、メインPCを設置するネットワーク内におけるインターネットへの出入口を担っているルータを置き換えることが条件です。それが可能であれば、YAMAHAルータやNetScreenなどが候補となります。用意する機器は自分で選定が必要です。
  • モバイルWiFiルータはご自分のお好みで用意します。ただし使うかどうかはさておいてIPsecやL2TP/IPsecといったVPN関連のプロトコルがブロックされていないことを条件にSIM(というかキャリアというか)の選定をしてください。

一応大丈夫と思いますが、イントラネット内はDHCPでアドレスの自動割り当てがされる環境である、という前提でお考えください。

これらの機器をこのように配備します。

f:id:treedown:20150806115437p:plain


図1:ざっくり構成図

いちおうここでのVPNタイプはSoftEtherを利用したサーバ型をお勧めしておきます。
理由として、インターネットとイントラの接続口のセキュリティを考えなくてよい、というのが一番の理由です。つまりブロードバンドルータで標準的なセキュリティ設定は実行されていると思いますので、内部にSoftEtherVPNサーバを用意してしまうとセキュリティは従来通りブロードバンドルータが受け持ってくれますので設定変更をする必要がありません。
VPNは上記を選定しましたので、モバイルPCは必然的にWindows7/8になります。(タブレットを利用する場合には設定変更が必要になります。※概要だけ後述します。)

一番簡単に実現するのは構成がシンプルにまとまりますので一つのメリットです。
まず、SoftEtherVPNサーバを設置しましょう。OSはLinuxでもいいですし、余っていればWindowsPCでもOKです。SoftEtherオープンソース版のVPNServerをダウンロードしてインストールを実行します。
インストールしたのちの初期設定は公式ページの設定手順の通りに実行することで簡単に完了できます。
一点、「VPN Azure」が途中で出てきますが、簡単に本構成を作りたい場合にはVPN Azureを有効化してこれを使うようにします。VPN Azureが一番簡単に(イントラネットの設定や構成を変更することなく)接続環境を構築できます。初期設定後接続ユーザを作成しておきましょう。
モバイルPCにはSoftEther VPNClientをインストールします。
設定はホスト名に「名前.vpnazure.net」ポート「443」を指定して、先にサーバに作成したユーザID/パスワードをユーザ認証欄に入力します。
この時点でイントラネット内にモバイルPCが接続でき、SoftEtherVPN経由でイントラネット内のIPアドレスが割り当てられる状態になっていれば成功しています。
イントラネットに接続できるということは、モバイルPCは既にメインPCに対してRDP接続ができる状態のはずです。
※メインPCでリモートデスクトップ接続の設定を有効化しておいてください。
モバイルWiFiでインターネット経由でのイントラネット接続をしているモバイルPCでリモートデスクトップを起動してメインPCに接続してみましょう。
SoftEtherVPN接続ができていれば何も迷うことなく認証が始まりRDP接続が可能です。

これ、もう一歩進めるとIntelvPro(IntelAMT)を利用します。(WoLでもいいですか?まあそういわず)
メインPCでIntelAMT設定を有効化し、AMT設定からIPアドレスの設定とnetwork configurationを有効化することで他のPCのブラウザから「http://%対象PCのIPアドレス%:16992/」でアクセスが可能になります。
このブラウザ経由でPCの電源ONが実現できるようになるのですが、このアクセスはSoftEtherVPN経由でアクセスしたモバイルPCのブラウザ上からでも接続し電源ONの命令を実行し、メインPCの電源を入れることができるのです。

運用としての注意点は、モバイルPCにデータを保存しないこと、です。せっかくシンクライアント化したのに、モバイルPCにデータを保存しては対策として片手落ちになってしまいます。
モバイルPCはあくまでメインPCをリモート操作するコンソール、として使いましょう。そういう意味ではモバイルPCのユーザプロファイル内のスタートアップにRDP接続ファイルを用意して、メインPCに自動接続するようにしてもいいかもしれません。

さて、前半で「※概要だけ後述します」と言っていたタブレットをモバイルPCにする場合の追加設定をざっと概要だけ記載しておきます。
モバイルPCとしてタブレットを利用したい場合、少々追加設定が必要になります。
VPN接続はSoftEther標準のものがタブレットでは使えないため、L2TP/IPSecを利用する必要があります。
L2TP/IPSecを利用するということはブロードバンドルータでポート解放&ポート転送が必要となります。
ざっくり、UDP500、UDP4500、UDP1701、TCP5555をブロードバンドルータでポート転送しSoftEtherVPNサーバにポート転送します。
SoftEtherVPNサーバではL2TP/IPSecを利用する設定をウィザードで実行します。サーバ管理マネージャから「L2TP/IPSec機能を有効にする」をONにしてIPSec事前共有鍵を設定するだけです。
タブレット側ではL2TP/IPSecの設定を実行し接続を実行します。
タブレット側からL2TP/IPSecの接続が成功するようであれば、RemoteDesktopアプリやVNCアプリをタブレットに導入します。
(※VNCは有料ですが純正のVNCViewer(RealVNC Limitedが提供しているアプリ)をお勧めします。RemoteDesktopはMicrosoftが無償提供しているので安心です。
タブレットですと外付けキーボードが欲しくなりますね。ポインタ一体型のキーボードがいいのではないでしょうか?

簡単ではありますが、費用も(ほぼ)掛からず、インストールの手間もそれほどない作り方で自分専用VDI(シンクライアント環境)が、このように実現可能です。
(設計はやっておきましたので後インストールや設定作業だけです。)

もし、以前からモバイルPCの盗難/紛失にリスクを感じておられたのでしたら、このミニマム構成を構築してみる、という夏休みの自由研究はいかがでしょうか?