Raspberry PiでOpenVPN環境を構築

Linux
この記事は約8分で読めます。

 

このブログではASUSルーターを使用したOpenVPNサーバーの設定方法や接続方法を何度か紹介してきました。

OpenVPNサーバーの構築はASUSルーターでなくても構築できる、WindowsやLinuxなどいろいろなプラットフォームで環境を作ることができます。

Raspberry Pi 4を購入してから、初代Raspberry Piが余った状態になったのでOpenVPNサーバーを構築してみました。

ラズパイが余ったからやってみよう!くらいの気持ちです。

 

 

                 

目標

 

今回の目標はRaspberry Piで構築したOpenVPNサーバーに対して、自宅ネットワーク外からVPN接続し、LAN内にアクセスすることです。

イメージを作ってみました。

 

環境

 

  • Raspberry Pi

    モデル

    メモリ

    OS
    Raspberry Pi Imager では、Raspberry Pi OS Lite (32bit)を選択しています。


  • ルーター

    ASUS RT-AX56U
    ルーター機能によるOpenVPNサーバーは機能ONの状態

Raspberry Piのセットアップ

 

今回はRaspberry Piのセットアップからやりました。

そうはいっても以前紹介した通りの手順を踏んだだけです。

今回は8GBのSDカードを使用しました。

Raspberry Pi Imagerで『Raspberry Pi OS Full (32bit)』を選択したところ、以下のメッセージが表示されたので、Raspberry Pi OS Lite (32bit)を選択しています。

 

Storage capacity is not enough.
Needs to be at least 9.3GB.

 

 

                 

DDNSの設定 

 

自宅の回線は固定IPではないのでDDNSサービスを使用してグローバルIPアドレスの変更に対応できるようにしておきます。

DDNSサービスは以前紹介したNo-IPを使いました。

 

No-IPのDynamic Update Clientの設定を行います。

 

 

                 

PiVPNのインストール

 

以下のコマンドでインストールをします。

 

セットアップウィザードが出てくるので画面に従って設定を進めます。


Enterキーを押します。




VPNサーバーとなるRaspberry PiのプライベートIPアドレスの固定が必要だと書いてあります。
Enterキーを押します。



『No』を選択して、固定IPの設定を行います。

 


現在使用しているIPアドレスとゲートウェイをそのまま設定する場合はYES、違う場合はNOを選択します。
今回は別のIPアドレスにしたいのでNOにしました。


任意のIPアドレスとプレフィックス長を入力します。
例:192.168.1.10/24  といった具合に入力します。


ゲートウェイ(ルーター)のIPアドレスを入力します。


入力した内容に問題がなければYESを選択します。


Enterキーを押します。


VPN設定を保持するユーザーを選択します。
Raspberry Pi初期設定後で他のユーザーを作っていないので、Piだけが表示されています。
ユーザーが複数表示されていれば、カーソルでユーザーを選択し、スペースキーを押して、ユーザー名の左にアスタリスク(*)が付くことを確認します。



WireGuardではなく、OpenVPNにカーソルを合わせ、スペースキーを押し、Enterキーを押します。



推奨設定を使用して設定するかの確認です。
推奨設定を使用する⇒Noを選択
カスタム設定をする⇒Yesを選択


OpenVPNで使用するポート番号を入力します。
デフォルトでは1194が入っています。
特にこだわりがないのでこのまま進めました。



ポート番号の確認です。
Enterキーを押します。



VPNクライアントが利用するDNSサーバーの選択です。
Googleがあればよかったのですが、ないのでQuad9を選択しました。
下にスクロールしたら、GoogleもCloudFlareもありました。

お好きなDNSサーバーを選択してください。



クライアントがVPNサーバーに接続するときに使用する宛先を選択します。
グローバルIPアドレスかDNSを選択できます。
No-IPで取得したDDNSを使用するので、『DNS Entry』を選択して進めます。



No-IPで取得したDDNSを入力します。



DNS名を確認し、問題なければYesを選択してEnterキーを押します。


Enterキーを押します。



セキュリティ関連の自動更新に関する案内です。


セキュリティ関連の自動更新パッチをサーバーに適用するかしないかを選択します。
Yesにして進めます。



インストール設定はこれで完了です。
後で、pivpn addのコマンドでVPN接続するためのユーザーを作成します。



セキュリティ関連の自動更新設定をするために再起動を促すメッセージです。
Yesを選択し、再起動します。



Enterキーを押すと、Raspberry Piが再起動します。

 

 

                 

ポート開放

 

ルーターでポート開放の設定をします。

RT-AX56Uでは、[WAN] ⇒ [ポートフォワーディング] から[ポートフォワーディングを有効にする]をONにすると設定できます。

  • プロトコル:UDP(PiVPNで推奨設定を使用した場合)
  • 外部ポート:1194(PiVPNで推奨設定を使用した場合)
  • 内部IPアドレス:VPNサーバーのIPアドレス

 

 

                 

VPN接続するユーザーの作成

 

VPNサーバー設定を行う際にプライベートIPアドレスを変更したので、SSHでリモート接続する際には変更後のIPアドレスで接続します。

接続後、VPN接続するユーザーを作成します。

 

/home/pi/ovpnsに.ovpnファイルが作成されたので、これをVPNする端末(スマートフォンやパソコン)にコピーします。

今回はNASをラズパイでマウントしてファイルを転送し、スマートフォンにコピーしました。

 

                 

接続テスト(失敗)

 

スマートフォンのSIMによる通信でVPN接続できるかテストしました。

結果は失敗です。

VPNクライアントのログを見ると、TIME OUTでそもそもサーバーに接続できていないように見えました。

VPNサーバー側のログ(/var/log/openvpn.log)を見ても、VPNサーバーの開始ログが残っているのみでした。

ポート開放がうまくいっていないのか。。。

 

ポート開放状況確認

 

以下のサイトでポート開放を確認してみました。

結果としてはポート開放が失敗しているようです。

ただし、そもそもルーターのOpenVPNサーバー機能が有効な状態でも対象のポートはErrorになるので謎です。。。

 

原因が分かった

 

ルーターの製造元であるASUSのサポートページを見てみたら原因が分かりました。

※各ポートで使用できるのはLANデバイス1台のみで、同じポートでPC2台を通信させることはできません。

FTPサービス、ポート21をポートフォワーディングで設定した場合、ポート 21をポートフォワーディングで使用することができません。ポートの衝突は、不具合の原因になる恐れがあるため、避けるようにしてください。

 

つまり、ルーターのOpenVPNサーバーと今回構築したRaspberry PiのOpenVPNサーバーで使用しているポートが重複していることが原因のようです。

LAN内でポートが重複してはいけないって、そりゃそうか。。。

 

                 

接続テスト(成功)

 

原因が分かったので、対処をして再テストします。

 

ポート変更

 

ルーターのOpenVPNサーバーのポート番号を変えずに、Raspberry PiのOpenVPNサーバーのポートを変更しました。

もう一度以下のコマンドを実行します。

 

ポート番号を入力する手順で、1194番以外の任意のポートを入力し設定しました。

 

ルーターのポートフォワーディング設定も、新しく設定したポート番号に変更しました。

 

 

接続してみる

 

サクッと接続完了しました。

 

VPN接続し、NASに接続できるところまで確認できました。

成功しました!

 

ひとまずOpenVPNサーバーを作って接続するところは問題なく成功しました。

今後はもう少し設定をいじってみたりしようかなと思います。


Raspberry Piのはじめ方 (日経BPパソコンベストムック)


WIMAXIT 7インチ Raspberry Pi用タッチモニター IPS 1024X600 HDMI端子/Raspberry Pi 4/3/2/1 Model B A+ B+ BB Black Banana Pi Windows10/8/7対応


Raspberry Pi 4 8GB(技適マーク入)MicroSDHCカード128G/Raspbianシステムプリインストール/カードリーダ /5.1V/3A Type-C スイッチ付電源/MicroHDMI-to-HDMIケーブルライン/三つヒートシンク/簡単に取り付けケース/日本語取扱説明書/12ヶ月保証


エレコム micro HDMI ケーブル 1m 4K×2K対応 スーパースリム ブラック DH-HD14SSU10BK

コメント

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