Raspberry Pi 4BをVPNサーバ化して自宅に乗り込んでみた。

中小企業診断士 ITコンサルのTakToolsです。テレワークの普及で、VPNを利用する機会も増えたかと思いますが、実際にVPNを導入するには結構お高くつくイメージがありますよね。無料という事で、シン・テレワークシステムを利用されている方も多いかと思いますが、期限付きだったりWindowsのみ利用可能だったりするので、次のソリューションを見つけておく必要があります。

という事で、RaspberryPi 4Bに無料のVPNサーバであるWireGuardを試してみたお話です。

本記事の内容は、かなり省略した手順になっています。詳細については、WireGuard公式サイト、YouTubeの動画を見て頂くのが良いと思いますので、そちらをご確認ください。

WireGuard公式ページ

詳細は公式ページをご確認ください。

WireGuard: fast, modern, secure VPN tunnel
WireGuard: fast, modern, secure VPN tunnel

Raspbian を入れる

今回は、Raspberry Pi OS Liteを選択しました。Raspberry Pi Imagerを利用してSD Cardを作成します。

Raspberry Pi セットアップ

rasps-config

sudo raspi-config
  • wifiの設定
  • ssh有効
  • ホスト名変更
  • ロケーションの設定(en_GB.UTF-8 -> ja_JP.UTF-8)
  • ユーザ名変更、パスワード変更

を行いました。

パッケージ更新

sudo apt update
sudo apt upgrade

ファイアウォール

ssh用と、wireguard用(UDP)のポートを有効にしました。

$ sudo apt-get install ufw
$ sudo ufw disable
$ sudo ufw default deny
$ sudo ufw allow proto tcp from xxx.xxx.xxx.xxx/24 to any port xxxx
$ sudo ufw allow proto udp to any xxxxxx  
$ sudo ufw enable

セキュリティアップデート自動適用

$ sudo apt install unattended-upgrades
$ sudo dpkg-reconfigure -plow unattended-upgrades

IPアドレス固定

sudo apt install vim
sudo vim /etc/dhcpcd.conf
interface eth0
static ip_address=[設定したい固定IPアドレス]/24
static routers=[デフォルトゲートウェイのIPアドレス]
static domain_name_servers=[DNSサーバーのIPアドレス] ⭐️複数の場合はスペース区切り

PiVPN

今回は、インストールを簡略化できるPiVPNを利用しました。この中でWireGuardを選択します。

手順は以下のYouTubeを参考にしました。必ずご確認ください。

インストールの流れ

コマンドを実行することで、ウィザードが起動します。

$ curl -L https://install.pivpn.io | bash

以下、インストール中の画面となります。抜けていたらごめんなさい。

pivpn add

接続情報を追加します。ここではClient01としました。

$ pivpn add
Enter a Name for the Client: client01
::: Client Keys generated
::: Client config generated
::: Updated server config
::: WireGuard reloaded
======================================================================
::: Done! client01.conf successfully created!
::: client01.conf was copied to /home/<user>/configs for easy transfer.
::: Please use this profile only on one device and create additional
::: profiles for other devices. You can also use pivpn -qr
::: to generate a QR Code you can scan with the mobile app.
======================================================================

pivpn -qr

以下のコマンドを実行すると、画面上にQRコードが表示されます。

 pivpn -qr

iPhoneやiPadなどは、WireGuardアプリをインストール後、このQRコードを読み込ませるとすぐにVPNが利用できるようになります。

macOS / Win10 pro / Raspbian

/home/<user>/configs/client01.conf が接続に必要な情報です。

それぞれのOSでWireGuardをインストール後、接続情報をコピペします。

なお、この情報が漏れると誰でも接続出来てしまうため、取扱に十分気をつけてください。

これで接続できるようになります。

まとめ

実際に構築が終わると、あっけなく接続が可能になります。WireGuardは無料でVPNが利用可能になるので、非常に可能性があるソフトウェアだといえます。シンテレワークシステムと比べると、Windows以外の環境からもVPNが使えるようになるのは大きいですね。

経路繋ぎ方メリットデメリット
シンテレワーク経由Win10 -> シンテレワークシステム -> Win10(踏み台くん) -> 内部ネットワーク2要素認証、MACアドレス制限が使える・Windowsのみ利用可能
・使用期限がある(状況次第?)
WireGuard接続元[Win10 / macOS / Raspbian ] -> WireGuard -> 内部ネットワーク・接続がシンプル
・Windows以外のOSでも利用可能
・接続情報の取扱に十分に注意が必要。
・アクセス制限が不十分

実際には、ご利用のネットワーク種類の確認、ルーター側のポート開放の設定が必要となり、十分に知識のある人が作業を行う必要があります。WireGuardはアクセス制限が不十分なところもあるため、お試しの際には、接続情報の取扱に関して十分にご注意ください。

良かったら他のテレワーク関連の記事も読んで頂けると嬉しいです