ラズパイでVPNサーバ構築

外出先から宅内ネットに接続するためにOSX Server提供のVPNサーバを使っていました。しかし、OSX ServerがVPNサポートが停止したこともあり、その代わりのVPNサーバをラズパイ上に構築したいと思います。

今回導入するのはSoftEther VPNです。

 

1. SoftEther VPN Serverのインストール

SoftEther Project Webサイトダウンロードセンターで、VPN Serverをダウンロードします。

現時点での最新RTM版はVer. 4.29でした。
ラズパイの場合、プラットホーム「Linux」、CPU「ARM EABI(32bit)」を選択します。

何らかの手段でラズパイに目的ファイルをダウンロードします。MacやPCでファイルをダウンロードした後に、ラズパイにscp転送でも良いでしょう。

私の場合は、Macからラズパイにリモートログインしていたので、ブラウザでファイルのURLをコピーし、ターミナルにてwgetに続けてペーストしました。

    <pre

class=”lang:sh decode:true”>$ wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.29-9680-rtm/softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-arm_eabi-32bit.tar.gz

 

展開&make。
makeの途中でいろいろ同意を求められるます。全て「1」を選択。

 

ファイル一式を「/usr/local/vpnserver」へ移動します。さらにパーミッションを設定。

 

2. VNCサーバの起動

chkconfigを使います。ラズパイに入ってなければインストール。

 

起動スクリプト「/etc/init.d/vpnserver」を作成します。

 

VPNサーバを起動します。

 

3. ネットワークの変更:ブリッジの作成

現時点でのラズパイのネットワーク構成は次のとおりです。
eth0が有線LAN。wlan0がWi-fi。loはlocalhost。
環境によって名称が異なるかもしれませんので、適宜読み替えましょう。

 

ブリッジを構築するために「bridge-utils」をインストールします。

 

2つのファイルを編集します。
1つ目は「/etc/network/interfaces」です。

 

2つ目は「/etc/dhcpcd.conf」です。
物理NICであるeth0にアドレスを割り当てる代わりに、仮想NICのbr0にアドレスを振ります。

私の環境ではDHCPサーバがラズパイのMACアドレスに応じた固定アドレスを振ってくれるので、br0の設定諸々をコメントアウトしても大丈夫でした。

 

再起動後のネットワーク状況です。
br0に192.168.1.70が割り振られています。一方、eth0のアドレスは無くなりました。
リモートログインなど、従来どおり問題なく出来ます。

 

4. VPNの管理ソフトでVPNの設定を行う

SoftEther ProjectのWebサイトよりMac用のVPN管理アプリを入手し、インストールします。
もちろんWindows版もありますのでお好みで。

起動します。
まずは「New Setting」を選択。

「Setting Name」に適当な名称を入力。
「Host Name」にラズパイのIPアドレスを入力する。
「OK」を押す。

「Connect」を押す。

パスワードの設定します。

「Remote Access VPN Server」を選択。

「Virtual Hub Name」を設定。デフォルトは「VPN」

DDNS(ダイナミックDNS)の設定です。
私、DDNS環境を別途構築しているため改めて導入する必要がありません。けど、取りあえず設定してみた。ホストネームが割り当てられるのでメモっておきましょう。

「Enable L2TP Server Function (LT2P over IPsec)」にチェックを入れます。
「IPsec Pre-Shared Key」に適当なフレーズを設定します。

「VPN Azure Cloud」の設定です。自分は不要なので「Disable …」を選択。

 

「Create Users」をクリックしてVPN接続するユーザを登録します。

「User Name」、「Password Authentication」、任意のパスワードを設定します。仮想DHCPサーバを設定します。
管理アプリの最初で「Connect」を選び、

「Manage Virtual Hub」を選び、


「Virtual NAT and Virtual DHCP Server (SecureNAT)」を選びます。

「Enable SecureNAT」をクリック。

 

5. ネットワークの変更: tapデバイスを作成

「Local Bridge Setting」を選択。

「Virtual Hub」で 「VPN」を選択。

「Bridge with New Tap Device」にチェック。

「New Tap Device Name」に適当な名称、例えば「vlan」を入力。

最後に「Create Local Bridge」をクリック。

「status」が「Operating」になれば作成終了。

 

ネットワークの状態を確認すると、「tap_vlan」が増えている。

 

自動起動スクリプトを次の順で修正する。

まず、サービスを停止する。

 

起動スクリプトを修正します。

 

サービスを再登録します。そしてラズパイを再起動します。

5. LAN内からVPN接続できるかテスト

ラズパイと同一のLANにWi-Fiで接続したiPhoneから、VPN接続ができるかどうかテストします。
iPhoneの「設定」→「一般」→「VPN」で設定。

シークレットは、先ほど「IPsec Pre-Shared Key」に設定したフレーズです。

 

無事に接続できました。

 

6. 外部からVPN接続できるかテスト

VPNに関連するポートはUDP500とUDP4500です。外部からこれらのポートに届いたパケットがラズパイ(191.168.1.70)に渡るように、ルータのポート設定を行いましょう。

 

ルータの準備が整ったら、次はiPhoneのVPN設定の変更です。
VPNの設定にて、サーバのところを「192.168.1.70」から、さっきDDNS設定のときにメモったホストネーム「ほにゃらら.softether.net」に書き換えます。

 

外部から繋がっているかどうか確実に解るようにWi-fiを切ってからVPN接続を試しました。
成功!

 

以上です。

 

こちらを参考にしました。ありがとうございます。

RaspberryPiとSoftEtherVPNで自宅VPNサーバを構築する: のぶんつブログ

 

追記

ログ対策です。

ラズパイでVPNサーバ構築 その2

Leave a Comment

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください