LoginSignup
40
53

More than 3 years have passed since last update.

ラズベリーパイでのVPNサーバー構築

Last updated at Posted at 2019-12-18

こんにちは。Ryoです。
今回はRaspberry Pi 3を使用してVPNサーバーを構築します。

なぜやるのか

先日、上海に行きました。その際に香港SIMを使用してネットサーフィンをしていたのですが、一部の国内サイトよりアクセスを弾かれてしまいました。(*ローソンIDのログインページにアクセスできませんでした。)
次回渡航時にアクセスできるように、自宅にVPNサーバーを構築します。

環境

Raspberry Pi 3
Raspbian GNU/Linux 9.6 (stretch)
MacBook Pro 13インチ 2015
ソフトバンク光 BBユニット
Buffalo WCR-1166DS ルーター
Pixel 3a via ソフトバンク4G

補足

RasbianとSSHの導入は割愛します。
*1~*3はクライアントの設定で使用するので、メモしといてください。

1.SoftEtherの導入

SoftEtherのファイルをダウンロードします。
スクリーンショット 2019-12-17 17.09.05.png

Raspberry PiのIPアドレスをルーターで確認し、SCPコマンドでDLしたファイルを転送します

terminal
scp softether-vpnserver-v4.31-9727-beta-2019.11.18-linux-arm_eabi-32bit.tar.gz pi@"ラズパイのIPアドレス":~

転送したファイルをRaspberry Pi上で解凍します。

Rasbian
pi@raspberrypi:~ $ tar xf softether-vpnserver-v4.31-9727-beta-2019.11.18-linux-arm_eabi-32bit.tar.gz

解凍したディレクトリに入り、更に展開します。

Rasbian
pi@raspberrypi:~ $ cd vpnserver
pi@raspberrypi:~/vpnserver $ make

makeコマンドを打つといくつか質問を受けるので全て1を選択します。

展開が終わったらvpnserverディレクトリをusr/localに移動します。
rootユーザーでログインしていないため、sudoコマンドを使用します。

Rasbian
pi@raspberrypi:~ $ sudo mv vpnserver /usr/local

移動先に行き、パーミッションを設定します。

Rasbian
pi@raspberrypi:/usr/local/vpnserver $ chmod 600 *
pi@raspberrypi:/usr/local/vpnserver $ chmod 700 vpncmd vpnserver

権限設定ができたかどうかチェックします。

Rasbian
pi@raspberrypi:/usr/local/vpnserver $ ls -la

また、vpnserverがインストールできたか動作確認します。

Rasbian
pi@raspberrypi:/usr/local/vpnserver $ /usr/local/vpnserver/vpncmd

以下の3択を迫られるので3を選びます。

Rasbian

By using vpncmd program, the following can be achieved. 

1. Management of VPN Server or VPN Bridge 
2. Management of VPN Client
3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)

Select 1, 2 or 3: 3

checkコマンドを打ちます。

VPN Tools>check

以下のように、全てPassしていればインストールは上手くいっています。


If this operation environment check tool is run on a system and that system passes, it is most likely that SoftEther VPN software can operate on that system. This check may take a while. Please wait...

Checking 'Kernel System'... 
              Pass
Checking 'Memory Operation System'... 
              Pass
Checking 'ANSI / Unicode string processing system'... 
              Pass
Checking 'File system'... 
              Pass
Checking 'Thread processing system'... 
              Pass
Checking 'Network system'... 
              Pass

All checks passed. It is most likely that SoftEther VPN Server / Bridge can operate normally on this system.

The command completed successfully.

ctrl + cでVPN Toolsを終了します。

vpnserverの自動起動設定をします。

作成ディレクトリ
/etc/systemd/system/
ファイル名
vpnserver.service

スクリプトを作成します。

Rasbian
pi@raspberrypi:/usr/local/vpnserver $ sudo nano /etc/systemd/system/vpnserver.service
vpnserver.service
[Unit]
Description=SoftEther VPN Server
After=network.target network-online.target

[Service]
User=root
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
Type=forking
RestartSec=3s
WorkingDirectory=/usr/local/vpnserver/
ExecStartPre=/sbin/ip link set dev eth0 promisc on

[Install]
WantedBy=multi-user.target

サービスを起動し、動作確認します。

Rasbian
pi@raspberrypi:/usr/local/vpnserver $ sudo systemctl start vpnserver
pi@raspberrypi:/usr/local/vpnserver $ systemctl status vpnserver.service

activeと表示されれば、動作しています。

Rasbian
Active: active (running) since Wed 2019-12-18 03:13:34 JST; 19s ago

サービスを自動起動します。

Rasbian
pi@raspberrypi:/usr/local/vpnserver $ sudo systemctl enable vpnserver.service

サービスが起動しているか確認。

Rasbian
pi@raspberrypi:~ $ systemctl status vpnserver.service
Active: active (running)

2.VPN Server Managerの設定

VPN Server ManagerをMacに導入し、VPN Serverの設定をします。
スクリーンショット 2019-12-18 3.21.44.png

SoftEther VPN Server Managerを起動します。
New Settingをクリック。
スクリーンショット 2019-12-18 13.15.57.png

administratorのパスワードを作成します。
スクリーンショット 2019-12-18 13.17.21.png

Bridge Easy Setupで
Remote Access VPN Serverにチェックを入れNextをクリック。
スクリーンショット 2019-12-18 13.24.11.png

VPN Server、VPN Bridgeの設定を初期化していいか聞かれるが、はいをクリック。
スクリーンショット 2019-12-18 13.24.44.png

Virtual Hub Nameに任意の名前を入れ、OKをクリック。
スクリーンショット 2019-12-18 13.25.44.png

IPsec L2TPサーバーセッティングで、Enable L2TP Server Function(L2TP over IPsec)にチェック。
IPsec Common SettingsのIPsec Pre-Shared Key(*1)に任意のパスワードを入れる。
この時に、10文字以上のパスワードを設定するとAndroid端末でエラーの発生ありと警告を受けるので、9文字以下のパスワードを設定する。
スクリーンショット 2019-12-18 13.33.15_xu.png

Azureの設定はDisable。
スクリーンショット 2019-12-18 13.34.17.png

Userを作成する。
スクリーンショット 2019-12-18 13.35.00.png

User Name(*2)、Password(*3)、Confirm Passwordに任意のものを設定する。
スクリーンショット 2019-12-18 13.36.32.png

Local Bridge Settingをします。
Vitual Hubに仮想HUB名に任意の名前を記入します。
Bridge with New Tap Deviceにチェックを入れます。
LANアダプターはeth0を選択します。
New Tap Device Nameは任意の名前を記入します。
スクリーンショット 2019-12-18 23.11.28.png

以上でVPN Server Managerの設定は終了。
ターミナルでraspberry piにSSHで接続し、ifconfigを叩く。
tap_ + New Tap Device Nameで設定した名前があればOK。

Rasbian
tap_softether: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

3.ローカルブリッジの設定

Raspberry Piでローカルブリッジの設定をする。

Rasbian
pi@raspberrypi:~ $ sudo apt install -y bridge-utils

Raspberry Piのネットワーク構成を編集します。

Rasbian
pi@raspberrypi:~ $ sudo nano /etc/network/interfaces
interfaces
auto eth0
iface eth0 inet manual

# SoftEther VPN
auto br0
iface br0 inet static
address 192.168.11.64
netmask 255.255.255.0
gateway 192.168.11.1

bridge_ports eth0 tap_softether
bridge_maxwait 10

Rasbpberry Piを再起動します。
以上で、ローカルブリッジの設定は終了です。

残りのルーターとクライアント(Pixel 3a)の設定は検証が終わり次第、加筆します。
接続を確認したので追記します。(2020/03/19)

4.ルーターの設定

IMG_20200318_233232_2.jpg
WCR-1166DSのモードのトグルをAPモードに合わせる。
*WCR-1166DS上ではルーターの設定はしません。

softbank-top.png
ブラウザから172.16.255.254にアクセスし、ソフトバンク光 BBユニットの設定画面にログイン。
(設定を変更していなければ、ID: user, PASS: userでログイン可能です。)

softbank-wlan-unable_2.png
無線LANの設定-無線LAN機能停止設定より、ソフトバンク光 BBユニットの無線LAN機能を止めておく。

softbank-ip-dhcp-setting_3.png
次に、ルーター機能の設定-IPアドレス/DHCPサーバの設定より、IPアドレスの割り当て範囲をラズパイのIPアドレスに合わせる。ソフトバンク光 BBルーターは初期設定で"192.168.3.1"より始まるが、Buffaloルーターは"192.168.11.1"から始まっていたため、本機器IPアドレス/サブネットマスクを"192.168.3.1"から"192.168.11.1"に変更。

同ページの固定割当でラズパイのIPアドレスを固定する。

Rasbian
pi@raspberrypi:~ $ ifconfig
中略
ether Macアドレス  txqueuelen 1000  (Ethernet)

softbank-ip-dhcp-setting_4.png

ether以下のMacアドレスを確認し、固定割当にIPアドレスとMACアドレスを入力する。

ポート転送の設定をする。
softbank-router-port-forwarding_2.png
有効、プロトコルUDP、ポートを500,4500、転送先IPアドレスを192.168.11.64で2ケ設定をする。

以上でルーターの設定は終わりです。

5.クライアント(Pixel3a)の設定

Screenshot_20200319-020436_2 (1).png
設定-ネットワークとインターネット-詳細設定-VPNをタップし、VPNの設定ページを開く。

右上の+ボタンをタップ。プロファイルの編集が出来るので、以下の項目に入力する。

  • 名前: 任意
  • タイプ: L2TP/IPSec PSK
  • サーバーアドレス: SoftEther Dynamic DNS FunctionのGlobal IPv4 Address
  • IPSec事前共有鍵: SoftEtherで設定したIPsec Common SettingsのIPsec Pre-Shared Key(*1)
  • 転送ルート: 0.0.0.0/0
  • ユーザー名: SoftEtherで設定したユーザー(*2)
  • パスワード: SoftEtherで設定したパスワード(*3)

Screenshot_20200319-020517_2.png
Screenshot_20200319-020523_2.png

以上を設定し、保存する。

Screenshot_20200319-020549_2.png
設定後に、設定したプロファイルをタップし、接続できれば完了です。
お疲れさまでした。


今回のハマりどころはルーターの設定でした。無線ルーターを単なるAPにして、ソフトバンク光 BBユニットの設定を引き継がすという考えが無かったので、気が付くまでに時間がかかりました。

コロナウィルスの騒動が落ち着いたら、中国で接続出来るか確認します。

参考URL

Raspberry Piで作るSoftEther VPNの環境
Raspberry PiでのVPNサーバ構築
RaspberryPiとsoftetherでVPN
ポート開放のブリッジモードとは

40
53
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
40
53