Raspberry PiでVPNサーバ構築

Raspberry Pi 4にSoftEther VPN Serverを導入しました。
様々なサイトを参考に設定を試みては失敗し…を繰り返し、ようやく上手く構築できた(今のところ)ので、その手順をメモしておきます。

環境

  • Raspbian GNU/Linux 10 (buster)
  • softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-arm_eabi-32bit

仮想ブリッジの設定

ラズパイの有線LANポートeth0と、SoftEther VPNで作成する仮想HUBであるtap_softether(名称は後ほど設定)を繋ぐ仮想ブリッジを作成します。

bridge-utilsのインストール

$ sudo apt-get install bridge-utils

インターフェイスの設定

仮想ブリッジbr0を設定します。

$ sudo vim /etc/network/interfaces
# eth0の設定
auto eth0
 iface eth0 inet manual

#br0の設定
auto br0
 iface br0 inet manual
 bridge_ports eth0
 bridge_maxwait 10

dhcpcd.confの編集

各インターフェイスに割り振るIPアドレスを設定します。

$ sudo vim /etc/dhcpcd.conf
# eth0にIPアドレスを振らない
denyinterfaces eth0

# br0に固定のIPアドレスを振る
interface br0
static ip_address=192.168.0.55/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

これでインターフェイスの設定は完了です。
再起動後はbr0に振ったIPアドレスが、ラズパイの実質の有線ポートのIPになります。

$ sudo reboot

SoftEther VPN Serverの準備

ダウンロード

ブラウザでSoftEtherのダウンロードページへアクセスし、下のイメージのように項目を選択し、最新版をダウンロードします。

続いてターミナル上で操作。

# ダウンロードフォルダに移動して解凍
$ cd ~/ダウンロード
$ tar xzvf softether-vpnserver-*.tar.gz

# vpnserverフォルダに移動してmake
$ cd vpnserver
$ make

# 途中で3回入力を求められるので全て「1」
1
1
1

# ビルドしたvpnserverを移動し、パーミッションの設定
$ sudo mv vpnserver /usr/local/vpnserver/
$ cd /usr/local/vpnserver
$ sudo chmod 600 *
$ sudo chmod 700 vpncmd
$ sudo chmod 700 vpnserver

Systemdでの自動起動の設定

vpnserver.serviceというファイルを作成し、下記の内容を記述の上、保存します。

$ sudo vim /etc/systemd/system/vpnserver.service
[Unit]
Description=SoftEther VPN Server
After=network.target network-online.target

[Service]
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
WorkingDirectory=/usr/local/vpnserver/
#ExecStartPost=/bin/sleep 10 ; brctl addif br0 tap_softether
Type=forking
RestartSec=3s

[Install]
WantedBy=multi-user.target

コメントアウトしている行は、後ほどtapの設定が完了後にアンコメントします。
「tap_」の後ろの文字列がtap名になります。

続いてパーミッションの設定など。

# パーミッションの変更
$ sudo chmod 755 /etc/systemd/system/vpnserver.service

# サービスのリロードと起動
$ sudo systemctl daemon-reload
$ sudo systemctl enable vpnserver.service
$ sudo systemctl start vpnserver.service

SoftEther VPN サーバ管理(Windows or Mac)での設定

SoftEther VPN サーバ管理のインストール

SoftEtherのダウンロードページから、管理ツールをダウンロードします。
先程の「コンポーネントを選択」で「SoftEther VPN Server Manager for Windows(Mac OS X)」を選択してダウンロード、インストールします。

インストール後は、先程作成したbr0のIPアドレスをホストとして設定・接続し、表示されるダイアログに沿ってポチポチと設定を進めていきます(内容は割愛)。

ローカルブリッジの設定を変える

一通りの設定が完了後、ローカルブリッジの接続を編集します。
まずは下記画面の「ローカルブリッジ設定」を開きます。

ローカルブリッジ設定

続いての画面で、
①既存のローカルブリッジを「ローカルブリッジの削除」します。
②仮想HUBはインストール後に作成したHUBを選択し、「新しいtapデバイスとのブリッジ接続」で新しいtapデバイス名を設定します。デバイス名は先程、vpnserver.service内で記述した「softether」です。

tapデバイスとのブリッジの設定

再度ラズパイ側に戻り、ifconfigでtapデバイスが追加されていることを確認します。

$ ifconfig

表示されるインターフェイスの中に、tap_softetherがあることを確認できたら、vpnserver.service内のコメントアウトしていた箇所を戻します。

$ sudo vim /etc/systemd/system/vpnserver.service
#ExecStartPost=/bin/sleep 10 ; brctl addif br0 tap_softether
↓ アンコメント
ExecStartPost=/bin/sleep 10 ; brctl addif br0 tap_softether
# サービスのリロードと再起動
$ sudo systemctl daemon-reload
$ sudo systemctl restart vpnserver.service

これで作業完了です。

参考サイト

コメント

タイトルとURLをコピーしました