書類
ラズパイでOpenVPNを構築する(SoftEtherVPN編)

ラズパイでOpenVPNを構築する(SoftEtherVPN編)

2024-11-22 以前 に raspberry pi を 使う て l 2 TP / IPsec サーバ を 構築 し て た の です が 、 今回 は openvpn で の 構築 方法 に なり ます 。 l 2 TP / IPsec で の VPN サーバ の 構築 方法 に つい て は 以下 の 記事 を

Related articles

VPNの接続方法とは?デバイス別の手順を紹介 YouTubeプレミアムは安く加入できる?VPNの違法性を徹底解説 MillenVPNの評判|実際の使用感は?速度や性能を実機レビュー ドコモhome5GでVPNを使う、ポート開放しなくても外出先から自宅ネットワークに参加する方法をご紹介 Netflixの国を変更する方法│海外に移住するなら必見!2024年 Netflixを安く契約する方法を解説!最も安い国はトルコ! VPNを構築する方法は?主な種類と構築時に必要な知識を徹底解説 VPNの選び方とは?7つのポイントや種類、おすすめ製品を紹介!|ITトレンド

以前 に raspberry pi を 使う て l 2 TP / IPsec サーバ を 構築 し て た の です が 、 今回 は openvpn で の 構築 方法 に なり ます 。 l 2 TP / IPsec で の VPN サーバ の 構築 方法 に つい て は 以下 の 記事 を 見る て ください 。

今回 な ん で openvpn を 構築 する と いう と なん です が 、 理由 は 主に 2 つ あり ます 。 1 つ is こと は 、 既に インストール 済み の softethervpn と いう ソフト が openvpn の プロトコル に つい て も 標準 サポート し て いる の で 、 簡単 に 設定 が 出来る と いう こと 。 そして 、 2 つ 目 is なり は 、 性能 検証 の ため に なり ます 。 と いう の も openvpn は 、 アプリ 型 の VPN な ん です が 、 噂 is 思い で は l 2 TP / IPsec より も 軽い て 早い と いう 話 を 聞く た の で 、 今回 試し に スピード や 使う 勝手 を 試す て み たい と 思う ます 。

またOpenVPNのもう一つの大きな特徴としては、L2TPではルータ側に特定のポートを開ける必要があるのですが、このポートが中継するルータ全てで解放されている必要があり、経路によってはVPNが接続できないなんていうこともしょっちゅうあるので、L2TP/IPsecが使えない時のサブ(もしくはメイン)としてOpenVPNを準備しておきたいと思います。

構成

今回 の 構成 is 使用 は 前回 の 記事 の 構成 を そのまま 使用 し ます 。 特に raspberry pi 側 に 新しい ソフト など は 入れる ませ ん 。

VPN サーバ の インストール

以下の手順は、L2TP/IPsec構築時にSoftEtherVPNを既にインストール済みの人は再インストールする必要はありません。

# 適当 な Version の ファイル を DL ( Linux / Arm 32 BIT ) 
 $ wget http:// JP . softether - download . com / files / softether / V 4.27 - 9668 - beta - 2018 . 05 . 29 - TREE / Linux / softether _ VPN _ Server / 32 bit _ - _ ARM _ EABI / 

 # パッケージ を 解凍 
 tar zxvf softether - vpnserver - V 4.27 - 9664 - beta - 2018 . 04 . 20 - Linux - Arm _ eabi - 32 BIT . tar . gz 

 # フォルダ ごと を 移動 し て 、 Make 
 sudo mv vpnserver / usr / local 
 CD / usr / local / vpnserver / 
 sudo Make 

 # 実行 権限 を 付与 
 sudo chmod 600 * 
 sudo chmod 700 vpncmd 
 sudo chmod 700 vpnserver

インストール の 確認 is 行い は 以下 の コマンド で 行う ます 。

$ sudo ./vpncmd
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.27 Build 9668   (Japanese)
Compiled 2018/05/29 21:51:20 by yagi at pc33
Copyright (c) SoftEther VPN Project. All Rights Reserved.
vpncmd プログラムを使って以下のことができます。
1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)
1 - 3 を選択: 3
VPN Tools を起動しました。HELP と入力すると、使用できるコマンド一覧が表示できます。
VPN Tools>check
Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
---------------------------------------------------
SoftEther VPN 動作環境チェックツール
Copyright (c) SoftEther VPN Project.
All Rights Reserved.
この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください...
'カーネル系' のチェック中...
[合格] ○
'メモリ操作系' のチェック中...
[合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
[合格] ○
'ファイルシステム' のチェック中...
[Unit]
[合格] ○
'スレッド処理システム' のチェック中...
[合格] ○
'ネットワークシステム' のチェック中...
[合格] ○
すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。
コマンドは正常に終了しました。
VPN Tools>exit

デーモンサービス化

これもデーモン化してない人は以下のコマンドでサービスの自動起動を設定しておきます。

# サービス起動ファイルの作成 (名前はお好みで)
$ sudo vim /etc/systemd/system/softether-vpn.service
[Unit]
Description=Softether VPN Server Service
After=network.target
[Service]
Type=forking
User=root
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
Restart=on-abort
WorkingDirectory=/usr/local/vpnserver/
ExecStartPre=/sbin/ip link set dev eth0 promisc on
[Install]
WantedBy=multi-user.target
#実行権限の付与
$ chmod +x /etc/systemd/system/softether-vpn.service
# デーモンの再起動と起動確認
$sudo systemctl daemon-reload
$ sudo systemctl start softether-vpn
$ sudo systemctl status softether-vpn
● softether-vpn.service - Softether VPN Server Service
Loaded: loaded (/etc/systemd/system/softether-vpn.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2018-09-07 17:21:53 JST; 4s ago
Process: 26300 ExecStart=/usr/local/vpnserver/vpnserver start (code=exited, status=0/SUCCESS)
Process: 26296 ExecStartPre=/sbin/ip link set dev eth0 promisc on (code=exited, status=0/SUCCESS)
Main PID: 26303 (vpnserver)
CGroup: /system.slice/softether-vpn.service
├─26303 /usr/local/vpnserver/vpnserver execsvc
└─26304 /usr/local/vpnserver/vpnserver execsvc
9月 07 17:21:53 raspberrypi systemd[1]: Starting Softether VPN Server Service...
9月 07 17:21:53 raspberrypi vpnserver[26300]: The SoftEther VPN Server service has been started.
9月 07 17:21:53 raspberrypi systemd[1]: Started Softether VPN Server Service.
# 自動起動設定
$ sudo systemctl enable softether-vpn

VPNサーバの基本設定

# 設定コマンドを起動
$ sudo ./vpncmd
1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)
1 - 3 を選択: 1


# 仮想ハブを選択。今回は特に複数のハブを使って〜〜とは考えていないので、デフォルトのものを使ってます。
VPN Server>hub default
Hub コマンド - 管理する仮想 HUB の選択
仮想 HUB "DEFAULT" を選択しました。
コマンドは正常に終了しました。
# ユーザの作成
VPN Server/DEFAULT>usercreate
UserCreate コマンド - ユーザーの作成
ユーザー名: hoge
参加するグループ名:
ユーザーの本名:
ユーザーの説明:
コマンドは正常に終了しました。
# ユーザのパスワードの設定
VPN Server/DEFAULT>userpasswordset
UserPasswordSet コマンド - ユーザーの認証方法をパスワード認証に設定しパスワードを設定
ユーザー名: hoge
パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。
パスワード: ********
確認入力  : ********
コマンドは正常に終了しました。

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

OpenVPNを設定するためにはコマンドラインユーティリティ(vpncmd)を使っても良いですが、OpenVPNをCLIで設定するのがなんだかよく分からなかったので、今回はSoftEtherVPN管理ツールを使うことにしました。

以下 、 Web サイト から ダウンロード し て いく ます 。

SoftEther VPN のダウンロード:https://www.softether-download.com/ja.aspx?product=softether

ファイルが結構重い(275MB程度)ので、ダウンロードに時間がかかるかもしれません。SoftEtherVPN自体がRaspberry Piにインストール済みの方であれば、ダウンロードするのは”Server Maneger”だけOKです。

ダウンロード出来たら、単純に自分のPCにインストールするだけです。

OpenVPNの設定方法

インストールが完了したら、設定は全然難しくありません。アプリをダブルクリックで起動してください。

下の画面では、既にL2TP/IPsecの時に作成した接続設定が残っていますので、このままConnectをクリック。

RaspberryVPNに接続出来たら、次に右下のOpenVPN/MS-SSTPをクリック。

OpenVPNを起動するにクリックしてから、中ほどにある設定ファイルの生成をクリックして、設定ファイル(zip)をダウンロードしてください。

ダウンロードしたzipファイルを見ると、以下の2つのファイルがあると思います。

  • xxxxxxxx_openvpn_remote_access_l3(普通のスマホ/パソコン用)
  • xxxxxxxx _ openvpn _ site _ to _ site _ BRIDGE _ l 2 ( ブリッジ 接続 用 )

通常の使い方(スマホ/パソコンでVPNサーバに接続する)であれば、remote_access_l3の方だけで十分です。このファイルを後ほど使いますので、VPN接続したいスマートフォンもしくはパソコンにコピーしてください。

VPN Clientの設定方法

iPhoneでのOpenVPN

iPhoneでの設定にはまずは以下のアプリをインストールしてください。

インストール が 完了 し て 、 最初 の 画面 を 開く と 、 以下 の ページ が 出る と 思う ます 。 一番 下 の ovpn PROFILE を クリック し て ください 。

する と ovpn ファイル を この アプリ に コピー する よう に メッセージ が 出る て き ます の で 、 先ほど ダウンロード し た xxxxxxxx _ openvpn _ remote _ ACCESS _ l 3 ファイル を コピー し て ください 。

因みにコピーの仕方はいくつかありますが、メールで送るか、itunesで送るか、もしくはファイルサーバ経由で送り込むなどどれも大丈夫です。

ファイル が コピー 出来 たら 、 あと は 接続 する だけ です 。 尚 、 接続 に は ユーザー ネーム と パスワード が 必要 です が 、 l 2 TP / IPsec の 際 に 使用 し た もの と 共通 で 使用 でき ます 。

因みにSoftEtherVPNでは、デフォルトでDDNS機能がされており、”vpn111222333.softehter.net”というホスト名を使用することが出来ます。そしてこのホストネームは、自動生成されているファイルにも記載済みですので、特に拘りがなければこのまま使用してもOKだと思います。

ルーターでのポート解放

最後 に 自宅 の ルーター で ポート 解放 ( ポート フォワード ) し て あげる 必要 is あり が あり ます 。 openvpn で は 、 1194 / udp を 使用 し て い ます の で 、 私 の elecom の 設定 画面 で は 以下 の よう な 感じ で 登録 し て あげる ます 。

因み に ローカル IP アドレス は 、 SoftEther が インストール さ れ て いる Raspbery pi の IP アドレス に なり ます 。

ログの確認方法(デバッグ)

この手順でやってもタイミングなどによってはうまくいかないケースもあります。その場合は以下の2つを試してみてください。

  • .ovpnファイルを編集して、remote vpn111222333.softether.netの部分をVPNサーバのローカルIPアドレス(192.168.12.xx)に変更し、同じWiFi LANの中から接続確認をする
  • tail -f /usr/local/vpnserver/server_log/vpn_201901xx.logのコマンドを打った後に、もう一度接続を試してみてログをリアルタイムで確認する。

1つ目の確認で上手くいかない場合は、softether自体のインストールに失敗しているかユーザー/パスワードを間違えている可能性があります。もしくはRaspberry Piのファイアウォールの機能もあるかもしれません。

2つ目のポイントでは、メッセージが何も動かない場合はルーターのポート開放が上手く出来ていない可能性があるので、もう一度ルーターの設定を確認してください。

OpenVPN vs ??

OpenVPNと他のVPN、L2TPやIKEv2とガチンコでどちらが使いやすく、速度が早いのかなど、後ほど詳細に比較していきたいと思います。

最後に

OpenVPNはアプリ層での比較的に上のレイヤーでのVPNになりますので、たまに使用しているサービスの一部が使用できないケースもありますが、ほとんどは大丈夫だと思います。

オープンソースかつ軽いソフトなので、L2TPやIKEv2の比較によってはこちらをメインVPNにするかもしれません。