LoginSignup
55
82

More than 1 year has passed since last update.

Raspberry Pi 上にSoftetherをつかってVPNを構築する

Last updated at Posted at 2019-03-05

目的

  • SoftEtherをつかってVPNを構築する。
  • IPSecを使って接続できるようにする。
  • ブリッジまでをいっきに設定する。
  • Raspberry PiでのVPNサーバ構築非常にわかりやすいですが、VPNサーバーを一度立ててからブリッジ接続をしていたので自分がやりやすいように手順を並び替えまとめたい。

最近何度かRaspberry Pi上にSoftetherを使ってVPNを構築することがありました。いくつもサイトを回っていつも使う設定するのが面倒になったので自分用にまとめを作ります。

下準備

用意するもの(ハード)

  • Raspberry Pi 3 Model B(以下raspi)
    • 本体
    • 初期設定などは済ませてあるものとします。
    • Raspberry Pi 初期設定などを参考にしてください。
    • ただし、後で述べますがipアドレスは固定しないでください。
  • インターネット環境
    • EtherNet環境が必要です。
  • PC
    • 細かい設定はWindows上で行います。
  • ルータ
    • VPNできないものもあるそうです。

Raspberry Pi上

リンクの確認

これを選択
ダウンロードするソフトウェアを選択 SoftEther VPN (Freeware)
コンポーネントを選択 SoftEther VPN Server
プラットフォームを選択 Linux
CPUを選択 ARM EABI(32bit)

画像の下にちらっと映っているページのリンクを右クリックのリンクのアドレスをコピーなどでコピーしてください。

figure1.png

ファイルのダウンロード

上で確認したリンクのファイルをwgetを使ってダウンロードします。下のコマンドをうつとダウンロード&解凍されるので適宜場所を移動して行ってください。

wget https://xxx #上でコピーしたリンクを貼り付け
tar zxvf softether-vpnserver-xxx.tar.gz #ダウンロードしたファイルを解凍する

インストール

解凍したディレクトリに移動して、makeをします。いろいろ同意を求められるので良ければ1を何度か押してください。
また、最後の方で環境チェックをしてくれます。すべてpassしているか確認してください。

cd vpnserver
make

vpnserverディレクトリをコピーしたり、権限を調節したりします。

cd ..
sudo rsync -av vpnserver /usr/local
cd /usr/local
sudo chmod 700 vpnserver
cd vpnserver
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod 700 vpncmd vpnserver

自動起動の設定

このままだと、毎回/usr/local/vpnserver/vpnserver startしなければいけないので自動で起動するようにします。

sudo vim /usr/lib/systemd/system/vpnserver.service

新しいファイルができるので以下の内容で作ってください。

[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver_start
ExecStop=/usr/local/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

上記の/usr/local/vpnserver/vpnserver_startを作ります。

vim /usr/local/vpnserver/vpnserver_start

自動でtapデバイスの名前を選んできてブリッジに追加するスクリプトです。

#!/bin/bash
/usr/local/vpnserver/vpnserver start

tap=$(/sbin/ifconfig -a| awk '$1 ~ /^tap/ {print $1}')
/sbin/brctl addif br0 $tap

権限を変更します。

sudo chmod 755 /usr/local/vpnserver/vpnserver_start

ブリッジ

bridge-utilsをインスト―ルします。

sudo apt-get install -y bridge-utils

ブリッジのipアドレスを設定。ここがあるため、/etc/dhcpcd.confに固定の内容を書いてはいけない。

sudo vim /etc/network/interfaces

以下の内容を追記してください。

# loopback
auto lo
iface lo inet loopback

# Ethernet port
auto eth0
iface eth0 inet manual

# Bridge interface
auto br0
iface br0 inet static
address 192.168.xxx.yyy #固定のipアドレスを指定
netmask 255.255.255.0
network 192.168.xxx.0 #ネットワークのアドレスを指定
broadcast 192.168.xxx.255 #ブロードキャストアドレスを指定
gateway 192.168.xxx.zzz # ルータのアドレスを入れる
bridge_ports eth0

#その他
auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

設定を適用させるために、一度リブートします。

sudo reboot
sudo /usr/local/vpnserver/vpnserver start

また、ここでvpnserverの起動登録をします。

sudo systemctl enable vpnserver.service

Windows上

VPN Server Managerのインストール

ここからは、windows上での設定になります。

Windowsパソコン上に、VPN Server Managerをダウンロードします。また、ここからです。

これを選択
ダウンロードするソフトウェアを選択 SoftEther VPN (Freeware)
コンポーネントを選択 SoftEther VPN Server Manager for Windows
プラットフォームを選択 Windows
CPUを選択 Intel (x86 and x64)

一番上のダウンロードできるファイルを選べば大丈夫でしょう。これをインストールします。できたら、SE-VPN サーバー管理 (ツール)を立ち上げてください。

SoftEther VPN サーバ管理マネージャ

SoftEther VPN Server への接続設定

新しい接続設定を押します。接続設定名に、任意のわかりやすい名前を設定。ホスト名raspberrypi.localなど自分のRasbeppyPiのホスト名を入れます。先程固定したipアドレスで直接指定してもかまいません。管理者パスワードを設定します。

raspberrypi.localへのログイン

先程作った接続名をクリックし、接続を押します。
なにも入力せずにOKを押してください。
新しい管理者パスワードを設定してください。

SoftEther VPN Server/Bridge 簡易セットアップ

リモートアクセスVPNサーバにチェックを入れて次へ。
よろしいですかと聞かれるのではいを押してください。

簡易セットアップ 仮想HUB名の決定

HUB名を決めるように言われるので任意の名前を入れてOKを押して下さい。

ダイナミックDNS機能

ダイナミックDNSホスト名の変更から、「3文字以上31文字以内の半角英数字およびハイフン'-'」の範囲で任意のホスト名を決めることができます。大文字も入力できますが自動で小文字に変換されるようです。
決めたダイナミックDNSホスト名とグローバルIPv4アドレスはメモをしておいてください。スマートフォンでは名前解決ができないことがあるようで直接ipアドレスを指定しないといけないことがあります。

閉じるで次へ進みしばらく待ちます。

IPSec/L2TP/EtherIP/L2TPv3 設定

  • L2TPサーバ機能を有効にする(L2TP over IPSec)

チェックが入っていることを確認し、IPSec事前共有鍵に任意の事前共有鍵を指定してください。

OKを押す。10文字以上の鍵を指定すると、鍵の長さが9文字以下推奨と出てくるが、セキュリティ的に長い方がいいのと、滅多にそのバグに出会わないので設定を見直さなくてよい。駄目だったら、戻ってこよう。いいえを押す。

VPN Azure サービスの設定

今回は使わない予定なのでVPN Azureを無効にするをチェックが入っていることを確認し、OKを押す。

簡易セットアップの実行

ユーザを制作する->新規作成->ユーザー名パスワードパスワードの確認入力を適宜設定する。

OKを押す。ユーザーを作ったと教えてくれるので感謝の気持ちを込めてOKを押す。
閉じる->閉じるを押しVPN Server "raspberrypi.local"の管理の場面まで戻る。

ローカルブリッジの設定

左下の、ローカルブリッジ設定を押す。

  1. 新しいローカルブリッジの定義の仮想HUBのプルダウンから作った仮想HUBを選ぶ。
  2. 新しいtapデバイスとのブリッジ接続にチェックを入れる。
  3. 新しいtapデバイス名に任意の名前を入れる。
  4. ローカルブリッジを追加をクリック。
  5. OKを押す。
  6. 閉じる

これで、SoftEther VPN サーバ管理マネージャの設定は終了となるのですべて閉じる。

Rasberry Piを再起動

sudo reboot

再起動してください。

ポートフォワーディング

RaspberryPiはNATの内側に守られているため、外からVPNにアクセスするためにはポートフォワーディングという「このポートに送られてきたらRaspberryPiのこのポートに転送して!」というシステムを使わなければいけません。
この設定は、慣れない人にはかなり面倒ですが使っているルータによって設定方法が異なるので自分の使っているルータの名前をインターネットで調べて方法を見つけてください。
VPN Server 側での L2TP/IPsec 機能の有効化方法にもありますがポートフォワーディングするポートはUDPの500と4500です。

# 他はまったところ

  • ルータによっては同一ネットワーク内からVPN繋げないということがあるようです。
  • ルータによってはVPNを使うためにはポートフォワーディング以外にも設定が必要なようです。
  • 何度かraspiを再起動すると上手く行くようになることがあります。
  • 極稀に何度も失敗した後だとクライアント側を再起動させるとうまくいくことがあります。
  • 上でも挙げましたが、Raspberry PiでのVPNサーバ構築がわかりやすいです。うまく行かない場合は、VPNの構築とブリッジの構築を別々に行い、それぞれできているか確認して下さい。
55
82
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
82