wordpressとは何の関係もないのですが...
外出している際に自宅の録画機器にアクセスしたいといったようなことはありませんか?
そういった場合、通常はルーターのポート開放などを行い、家庭内LANにアクセスできるようにするのでしょうが、我が家はドコモ光のIPV6接続を使っており、外部からのアクセスができないようになっていました。
ブログを作成するためにVPSを借りていたということもあったので、この際VPNで接続できるようにしたら良いかな?と思ったのがきっかけで接続してみることにしました。
設定にやたら時間がかかってしまい、もう二度とやりたくないなと思いましたので、備忘録がわりに残しておこうと思います。
スポンサーリンク
VPNとは?
VPNとはVirtual Private Networkの略で、直訳すると「仮想専用線」となります。インターネット上に仮想の専用線を設け、安全なルートを確保した上で情報のやり取りをすることができます。
無料WIFIなどを利用する時にも効果を発揮します。
VPNは暗号化によって保護された仮想専用回線を構築できますので、無料WIFI使用時における通信の盗聴などを防止できるというメリットもあります。
私もスタバなどで、スマホなどを利用する時はVPNを介してネットに接続するようにしています。便利ですよ!
もちろんこんな面倒なことをしなくてもノートンやソースネクストなどがVPNサービスを提供してくれていますので、そちらを利用すれば良いとは思いますができるだけ安く済ませたいと思っていますので…
設定に必要なもの
- VPSサーバー(ブログなどを運営しているもので構いません)
- Bridgeサーバー(自宅内設置のサーバー、今回はRaspberryPIeを使用しています。)
- Softether VPN(筑波大学の研究プロジェクトです。素晴らしいことに無料です。)
設定手順
設定は以下の手順で行います。
- VPSサーバーにVPNサーバーをインストール
- 自宅にあるRaspberry Pi 2にはVPN Bridgeサーバーをインストール
- VPNサーバーとVPN Bridgeサーバーを接続
それではやってみましょう!
VPNサーバーのインストール(VPS)
OS version確認
cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
CPU確認
uname -a
SMP Tue Mar 17 23:49:17 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
どうやらさくらvpsには64bitCPUが使用されているようです。
対応するVPNサーバーをSoftEtherダウンロードセンターで調べ、wgetを用いて最新版をダウンロードします。
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.34-9744-beta/softether-vpnserver-v4.34-9744-beta-2020.03.20-linux-x64-64bit.tar.gz
ダウンロードされたファイルを解凍します。
tar -zxvf softether-vpnserver-v4.34-9744-beta-2020.03.20-linux-x64-64bit.tar.gz
解凍されたvpnserverディレクトリを/usr/localに移動した後、makeを実行して実行可能ファイルを生成します。
mv vpnserver /usr/local
cd /usr/local/vpnserver
sudo make
規約などが表示された後、インストールのチェックが行われます。
Copyright (c) SoftEther VPN Project.
All Rights Reserved.
この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください...
'カーネル系' のチェック中...
[合格] ○
'メモリ操作系' のチェック中...
[合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
[合格] ○
'ファイルシステム' のチェック中...
[合格] ○
'スレッド処理システム' のチェック中...
[合格] ○
'ネットワークシステム' のチェック中...
[合格] ○
すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。
コマンドは正常に終了しました。
こちらのテストはインストール後、./vpcmdコマンドを実行しても実施できます。
sudo ./vpncmd
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.34 Build 9744 (Japanese)
Compiled 2020/03/20 19:23:20 by buildsan at crosswin
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>check
Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
---------------------------------------------------
SoftEther VPN 動作環境チェックツール
Copyright (c) SoftEther VPN Project.
All Rights Reserved.
この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください...
'カーネル系' のチェック中...
[合格] ○
'メモリ操作系' のチェック中...
[合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
[合格] ○
'ファイルシステム' のチェック中...
[合格] ○
'スレッド処理システム' のチェック中...
[合格] ○
'ネットワークシステム' のチェック中...
[合格] ○
すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。
コマンドは正常に終了しました。
VPN Tools>exit
テストに合格してれば問題なく動作するかと思われますので、フォルダに対して適切なパーミッションを付与してください。
$ cd /usr/local/vpnserver/
$ sudo chmod 600 *
$ sudo chmod 700 vpncmd
$ sudo chmod 700 vpnserver
$ sudo chown root:root *
$ ls -l
自動起動設定
続いて自動起動の設定を行います。
OSはCentOS7なのでSystmectlを使って自動起動の設定をします。
cd /etc/systemd/system
ここにvpnserver.serviceとして以下の内容のファイルを作成します。
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
[Install]
WantedBy=multi-user.targe
実行権限を付けずに保存し、以下のコマンドで自動起動するようにします。
systemctl start softethervpn
systemctl enable softethervpn
#状態の確認
sudo systemctl list-unit-files --type=service | grep softether
softethervpn.service enabled
VPSのポート解放
UDP500,UDP4500番のポートにアクセスできるようにポートを解放します。
さくらVPSの場合、VPSコントロールパネルのパケットフィルタ設定の”任意の開放ポート設定を追加する”から追加するのが簡単です。
VPN Server設定
VPNサーバーがデフォルトで使用できるポートを制限するとともに、ログのローテーション設定を行います。
vi /usr/local/vpnserver/vpn_server.config
declare DDnsClient
{
bool Disabled true ← ダイナミックDNS機能無効化(VPNサーバーへ独自ドメイン名(例:centossrv.com)でアクセスする)
}
declare ListenerList
{
declare Listener0
{
bool DisableDos false
bool Enabled false ← ポート443での待ち受けを無効化※Apacheと競合するため
uint Port 443
}
declare Listener1
{
bool DisableDos false
bool Enabled false ← ポート992での待ち受けを無効化
uint Port 992
}
declare Listener2
{
bool DisableDos false
bool Enabled false ← ポート1194での待ち受けを無効化
uint Port 1194
}
declare Listener3
{
bool DisableDos false
bool Enabled true
uint Port 5555
}
}
systemctl start vpnserver ← SoftEther VPN Server起動
ログのローテーション設定
vi /etc/cron.daily/vpnserver ← SoftEther VPN Serverログローテーションスクリプト作成
#/bin/bash
# 30日以前のログを削除
find /usr/local/vpnserver/*_log -name '*.log' -mtime +30 -delete
chmod +x /etc/cron.daily/vpnserver ← SoftEther VPN Serverログローテーションスクリプトへ実行権限付加
VPN Bridgeインストール(Raspberry Pie)
自宅内に設置してあるRaspberryPieにVPN Bridgeをインストール
念のためCPUを確認
cat /proc/cpuinfo
model name : ARMv7 Processor rev 5 (v7l)
ARM EABIだとエラーにならないとのことだったので、CentOSにインストールした時と同じ手順でダウンロードし、/usr/localに展開、makeを実行します。
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.34-9744-beta/softether-vpnbridge-v4.34-9744-beta-2020.03.20-linux-arm_eabi-32bit.tar.gz
tar -zxvf softether-vpnbridge-v4.34-9744-beta-2020.03.20-linux-arm_eabi-32bit.tar.gz
mv vpnbridge /usr/local/vpnbridge
cd /usr/loca/vpnbridge
sudo make
Softether管理マネージャーをインストールします。
管理が楽になりますのでSoftether管理マネージャーをインストールします。
SoftetherVPNのダウンロードページからSoftether VPN Server Managerをダウンロードしてください。
管理マネージャーによる設定
CentOS側のVPN ServerとRaspberryPie側のVPN Bridgeをそれぞれ管理マネージャーに新規接続先として登録します。
登録の方法は公式サイトを参照
VPNServer(VPS側)の設定
ユーザーとしてVPNServerにログインするユーザー、Bridge接続に使用するユーザーの2人を作成します。

ここではVPN Bridgeと接続するユーザーをBridgeUserとしました。
続いてローカルブリッジ設定を開き、新しいtapデバイスとのブリッジ接続を選択
新しいtapデバイス名に任意の名前を入力します。ここではvpnとしました。

続いて、SecureNatの設定を開き仮想ホストのネットワークインターネットフェイスの設定内のIPアドレスにVPN BridgeをインストールしたデバイスのIPアドレスを入力



仮想DHCPサービスを使用するにチェック、配布IPアドレスにVPN接続した際に付与されるIPアドレスの範囲指定します。
デフォルトゲートウェイには家庭内ルーターのデフォルトゲートウェイの値と同じにしてください。
VPNBridge(RaspberryPie側)の設定
仮想ハブを選択し、カスケード接続を選択

遷移した画面でカスケード接続の設定を選択し、VPSのIPアドレスを入力
カスケード接続するユーザーとしてBridge接続させるユーザー名とパスワードを入力します。
iPhoneでの設定
「設定」→「一般」→「VPN」→「VPN構成を追加」画面で必要事項を入力します。

お疲れ様でした。
まとめ
今回はブログ用のVPS移行に伴う再設定でしたので2回目だったのですが、やたら時間がかかってしまいました。
今回再度やり方をまとめましたので、次回設定する際はもっと簡単に済ませたいと思います。
どこにいても自宅にあるファイルにアクセスできるというのは結構便利だと思いますし、VPNは仮想の専用線を構築するというものですので、外出先で無料WIFIなどを使用する際に盗聴を防いてくれたりもします。
便利ですので、興味のある方は是非設定してみてください!