徒然なるままな想い書き

日々の『思わぬ発見、気付き』をつれづれに。

【Raspberry Pi 2】 VPNサーバを立ててマイネットワークをつくる!

Raspberry Pi 2 (Raspbian) でシステムを組んでいろいろやってみようと思っている今日このごろですが、今回はVPNシステムを組んでみようと思います。ゴールは、ローカルにあるラズパイにVPN環境を入れて、外部からローカルへのVPN接続ができるようにすることです。OSはRaspbianのJessieを使います。

 

 

VPNサーバの組み方: Hamachiを使う

調べてみると色々とあるようです。私が試してみたものは、

  • SoftEther VPN
  • Hamachi

の2つです。はじめにSoftEther VPNでやってみたのですが、ラズパイにVPN環境を組めたものの、外からアクセスすることができなくて挫折してしまいました。多分ルータのポート設定とかいろいろと問題があったのでしょう。なので、2つ目のHamachiというシステムを利用することにしました。私はお金がないので笑、無料版を使います。

 

secure.logmein.com

 

0. LogMeInのアカウント登録

secure.logmein.com

HamachiはLogMeInのシステムですので、利用するためには事前にアカウント登録をしておく必要があります。

 

1. Hamachiのインストールと設定

まずはHamachiに必要なパッケージlsbのインストール

sudo apt-get update

sudo apt-get install --fix-missing lsb lsb-core

次は、Hamachi本体のダウンロード。

wget https://secure.logmein.com/labs/logmein-hamachi_2.1.0.139-1_armhf.deb

他のものを使いたい等があれば、ダウンロードサイトLabs & Betas | LogMeInにアクセスし、 中ほどにあるLogMeIn Hamachi for Linux (Beta) command line versionのところのLearn Moreを開くとダウンロードリンクが出てきますので、そこのリンクを拾ってきてwgetするか、ブラウザを使ってダウンロードしてください。ただし、Raspberry Pi 2の場合、ARM HFらしいので、HF以外を選ぶとインストール時にエラーを出すかもしれません(私は実際にエラーを出しました笑)。

 

ダウンロードができたらインストール

sudo dpkg -1 logmein-hamachi_2.1.0.139-1_armhf.deb

 

これでインストールできます。インストールができたら、ログインしてアカウント登録したユーザと紐付けしていきます。

sudo hamachi login

sudo hamachi attach [アカウント登録したユーザのメールアドレス]

sudo hamachi set-nick [VPNネットワーク内で使うニックネーム]

 

ここからはブラウザを使用します(別のPCを使っても良い)。まずはLogMeInにログインし、アカウントページに移動します。

https://secure.logmein.com/JP/

 

アカウントページ内にある"マイネットワーク"を選択し、"ネットワークの追加"を選択します。そうすると色々と設定できるので、ネットワークタイプを"メッシュ"に選択することだけ注意して、残りはお好みで設定してネットワークを追加してください。また、メンバーの追加では、先ほどのラズパイ側の処理がうまくいっているとニックネームが表示されていると思うので、それをメンバーとして追加してあげてください。

 

ネットワークが追加できれば、追加したネットワークの右にある"編集"を選択後、ネットワークの名前の横にIDが表示されているかと思います(xxx-xxx-xxx)。それをラズパイ側で打ち込み、ラズパイを追加したネットワークに登録します。

sudo hamachi do-join xxx-xxx-xxx

 これでラズパイ側のVPNの設定は完了となります。

 

(ラズパイのHamachiの自動起動)

初回インストール時に自動起動オンかどうか忘れましたが、もし手動で起動時にHamachiも起動させたい場合には、

(自動起動かどうかの確認) chkconfig logmein-hamachi --list

chkconfig logmein-hamachi on

としてください。

 

ラズパイ以外のクライアントの追加

ここからは、ラズパイ以外のVPNネットワークのクライアントを追加していきます。私の場合、Windows, iOS, Androidの3クライアントを新たに追加しました(Hamachiの無料版はラズパイを合わせて最大5クライアントしかネットワークを組めないので注意)。

 

クライアントを追加するためには、先ほどのアカウントページで"マイネットワーク"の中にある"クライアントの追加"を選択します。その後、それぞれのプラットフォームに合わせて進めていきます。

Windows

"LogMeIn Hamachi をこのコンピュータにインストールする"を選択すると、クライアントソフトのインストーラがダウンロードできるので、後はインストーラに従ってソフトをインストールしてください。インストール後は、ソフトを起動し、先ほどのネットワークIDを指定してネットワークに参加すればOKです。ただし、ネットワーク参加を承認制にしている場合、アカウントページで承認待ちの表示が出ているので新たに承認してあげてください。

 

iOS

iPad Air 2でやりました。"モバイルクライアントの追加"を選択すると、クライアント名を聞かれるので、お好みの名前を指定します。その後、上のほうにある"設定ファイルの送信先"にiOSデバイスで見れるメールアドレスを選び、"iOSの送信"を選択します(この時、"設定ファイル内のパスワードを含む"を指定しておくと、接続時のパスワード要求を省略できます)。そうすると指定メールアドレスにメールが届いているので、後はメールの添付ファイルを開けば勝手にHamachiの設定がインストールされます。設定後は、iOSの"設定"->"VPN"のトグルを切り替えることで、VPN接続ができるようになります(VPNの設定は"設定"->"一般"->"VPN"で見れます)。

 

Android

Xperia Z3 compactでやりました。こちらはiOSと比べて少しだけ厄介です。iOSと同じ手順で、メールの送信先を"その他の送信"を選択します。Androidの場合、メールにある添付ファイルは3つあるので、それぞれ開いてインストールしていきます。インストール時、証明書の名前を聞かれるので、元々のファイル名を参考に適当につけといてください。また、pfxファイルについてはパスワードを聞かれるので、"その他の送信"を選択した同じページに"デバイスの設定"という項目があるので、そこにあるパスワードを入力してください(xxxx-xxxx-xxxx)。

 

証明書のインストール後は、VPNの設定です。Androidの"設定"->"VPN"と行き、VPNを新たに追加します。設定では、

名前:適当

タイプ:IPSec Xauth RSA

サーバアドレス:m.hamachi.cc

IPSecユーザー証明書:Hamachi-xxx-xxx-xxx (インストールした証明書)

IPSec CA証明書:サーバーを確認しない

IPSecサーバー証明書:サーバーから受信

 としてください。IPSecユーザー証明書を空白とするサイトが多かったですが、私のデバイスでは空白にできなかったのでインストールした証明書を選択しました。その後設定したVPNを選択すると、ユーザー名とパスワードを聞かれるので、先ほどの"デバイス設定"の項目にあるユーザーIDとパスワードを入力すると、接続できるかと思います。

 

使い方

アカウントページの"マイネットワーク"を選択すると、ネットワークの状態が見えると思うので、それぞれのクライアントの"仮想IP"を利用してください。そのIP相手にVNCやSSHができるはずです。

 

 

感想

Hamachiで個人的につまづいたのは、

  • ラズパイのHamachiのインストール(ARM HFの関係でエラーが出た)
  • Androidクライアントの設定(iOSと違って手間が多い)

くらいです。はじめのSoftEther VPNのほうが色々とつまづいたので、それと比べると非常に簡単にVPN環境を組むことができるのかなと思います。

 

VPNを構築したので、今回のことで外に対してローカルの入り口を作るようなことをしてしまいました。セキュリティについて考える機会なので、通信の仕組み、セキュリティの特徴など、しっかり勉強しておきたいと思います。

 

 

ではでは。