目的
- 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のページでダウンロードしたいソフトのリンクを確認します。
これを選択 | |
---|---|
ダウンロードするソフトウェアを選択 | SoftEther VPN (Freeware) |
コンポーネントを選択 | SoftEther VPN Server |
プラットフォームを選択 | Linux |
CPUを選択 | ARM EABI(32bit) |
画像の下にちらっと映っているページのリンクを右クリックのリンクのアドレスをコピー
などでコピーしてください。
ファイルのダウンロード
上で確認したリンクのファイルを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"の管理
の場面まで戻る。
ローカルブリッジの設定
左下の、ローカルブリッジ設定
を押す。
-
新しいローカルブリッジの定義
の仮想HUBのプルダウンから作った仮想HUBを選ぶ。 -
新しいtapデバイスとのブリッジ接続
にチェックを入れる。 -
新しいtapデバイス名
に任意の名前を入れる。 -
ローカルブリッジを追加
をクリック。 -
OK
を押す。 閉じる
これで、SoftEther VPN サーバ管理マネージャの設定は終了となるのですべて閉じる。
Rasberry Piを再起動
sudo reboot
再起動してください。
ポートフォワーディング
RaspberryPiはNATの内側に守られているため、外からVPNにアクセスするためにはポートフォワーディングという「このポートに送られてきたらRaspberryPiのこのポートに転送して!」というシステムを使わなければいけません。
この設定は、慣れない人にはかなり面倒ですが使っているルータによって設定方法が異なるので自分の使っているルータの名前をインターネットで調べて方法を見つけてください。
VPN Server 側での L2TP/IPsec 機能の有効化方法にもありますがポートフォワーディングするポートはUDPの500と4500です。
# 他はまったところ
- ルータによっては同一ネットワーク内からVPN繋げないということがあるようです。
- ルータによってはVPNを使うためにはポートフォワーディング以外にも設定が必要なようです。
- 何度かraspiを再起動すると上手く行くようになることがあります。
- 極稀に何度も失敗した後だとクライアント側を再起動させるとうまくいくことがあります。
- 上でも挙げましたが、Raspberry PiでのVPNサーバ構築がわかりやすいです。うまく行かない場合は、VPNの構築とブリッジの構築を別々に行い、それぞれできているか確認して下さい。