はじめに
SoftbankAirなどのほとんどのモバイルルータはセキュリティ対策の為か、あらかじめポート転送等の設定が出来ないようになっています。ネットサーフィンやゲームなど大半の人には関係無いですが、自宅でNASを建てていたりしている人にとってはこの制限があるために普通に固定回線を引いて自分でポートを開ける作業をしていると思います。
この記事では、ポート転送等通常だと外から繋げられない環境でVPNを使用して繋げられるようにする手順をまとめています。
(SBAir内にわざわざマシンを置く必要がある事情が無い限りVPSとかを構築する方が無難になります。)
すること
SoftEther VPNを使用して、VPSからAir内のブリッジに繋いでアクセスするようにします。
(左がVPS、右がSoftbankAirのLAN内)
最低限必要なもの
- VPS(自由にポート開放の設定が可能なもの)
- Linuxが入っているマシン(無くても可,後述)
- windowsが入っているマシン
※今現在リリースされているMacOS用のサーバー管理ツールは正常に動作しません。
ローカル内のLinuxマシンは、proxmoxで仮想化した中にcentosを入れたマシンを使っていますが、別にブリッジ用途でしか使わないのであればラズベリーパイにraspbian lite(debianベース)を入れた物を使っても良いと思います。
SoftEther VPN
筑波大学がSoftEther VPNプロジェクトで開発したフリーウェアのことです。
L2TPによってクライアント側は別途ソフトウェアをインストールする必要も無く、またSSL-VPN、OpenVPN、EtherIP、L2TPv3、IPsec の全て対応しており、高い互換性があります。
VPSにSoftEther VPN Serverを導入する
公式マニュアル通りに進めていきます。
必要なソフトウェアおよびライブラリの確認
VPN Server を Linux にインストールするには、以下のようなソフトウェアおよびライブラリが必要です。これらのソフトウェアやライブラリがシステムにインストールされており使用可能なことを確認してください。
・gcc ソフトウェア
・binutils ソフトウェア
・パッケージファイル展開用の tar や gzip などのソフトウェア
・chkconfig システムユーティリティ
・cat や cp などの基本的なファイル操作ユーティリティ
・日本語環境で使用するための EUC-JP や UTF-8 などのコードページテーブル
・libc (glibc) ライブラリ
・zlib ライブラリ
・openssl ライブラリ
・readline ライブラリ
・ncurses ライブラリ
・pthread ライブラリ
# dnf install -y gcc binutils tar gzip chkconfig libc glibc zlib openssl readline ncurses pthread make
ダウンロードとインストール
ダウンロードセンターから最新のファイルのURLをコピー、ダウンロードし解凍します。
2021/01/15時点での最新バージョンは4.34です。
# wget https://jp.softether-download.com/files/softether/v4.34-9745-rtm-2020.04.05-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz
--2021-01-15 15:23:20-- https://jp.softether-download.com/files/softether/v4.34-9745-rtm-2020.04.05-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz
jp.softether-download.com (jp.softether-download.com) をDNSに問いあわせています... 130.158.75.49
jp.softether-download.com (jp.softether-download.com)|130.158.75.49|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 7510103 (7.2M) [application/x-gzip]
`softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz' に保存中
softether-vpnserver-v4.34-974 100%[================================================>] 7.16M 3.59MB/s 時間 2.0s
2021-01-15 15:23:23 (3.59 MB/s) - `softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz' へ保存完了 [7510103/7510103]
# tar xvzf softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz
vpnserver/
vpnserver/Makefile
vpnserver/.install.sh
vpnserver/ReadMeFirst_License.txt
vpnserver/Authors.txt
vpnserver/ReadMeFirst_Important_Notices_ja.txt
vpnserver/ReadMeFirst_Important_Notices_en.txt
vpnserver/ReadMeFirst_Important_Notices_cn.txt
vpnserver/code/
vpnserver/code/vpnserver.a
vpnserver/code/vpncmd.a
vpnserver/lib/
vpnserver/lib/libcharset.a
vpnserver/lib/libcrypto.a
vpnserver/lib/libedit.a
vpnserver/lib/libiconv.a
vpnserver/lib/libintelaes.a
vpnserver/lib/libncurses.a
vpnserver/lib/libssl.a
vpnserver/lib/libz.a
vpnserver/lib/License.txt
vpnserver/hamcore.se2
その後、vpnserver
というディレクトリが生成されます。makeコマンドを実行し、画面の指示に従ってビルドしてください。この際にソフトウェアが無事に作動するかどうかのチェックが行われます。
必要であればvpnserver下のファイル群を別の場所に移動しても大丈夫です。
./vpnserver start
でサーバーが立ち上がります。
ポート開放
通常の443/TCP
の他に、L2TPで通信する場合は別途500/UDP
と4500/UDP
も開放する必要があります。(2敗)
ポート開放はそれぞれの環境によって異なると思うので調べてください。
ローカル内のLinuxマシンにSoftEther VPN Bridgeを導入する
※この操作を省いてもVPNは動作しますが、VPN専用のマシンを動作させることでWindowsを落としても通信する事が出来ます。
同じようにダウンロードセンターからSoftEther VPN Bridgeを選択しコピー->ダウンロード->解凍->ビルド->実行します。
Windowsにサーバー管理ツールを導入する
ダウンロードセンターからSoftEther VPN Server Manager for Windowsを選択しダウンロード、インストールします。
ソフトを起動した後に表示される、管理するサーバーを選択する画面です。初期状態ではlocalhostのみしか表示されていないので新しい接続設定から先ほど作成したホストとブリッジを登録します。
※ブリッジ用Linuxを用意していない場合はwindows管理ツールに同梱されているブリッジ(localhost)を使用します。
VPN Serverの設定
登録したサーバーを選択して接続します。最初にVPN設定の管理用パスワード設定を求められるので、設定します。
プリセットに沿ってセットアップが行われるので、サーバー用の設定を選択して進めます。
「仮想HUBの管理」から「ユーザの管理」を選択し、ブリッジ接続用とVPN接続用のアカウントを作成します。
最後に、「IPsec/L2TP 設定」から、L2TBサーバー機能を有効にし、事前共有鍵を設定します。
VPN Bridgeの設定
同じように登録したサーバーを選択して接続します。
※ブリッジ用Linuxを用意していない場合はlocalhostを選択します
ブリッジ用のプリセットを選択し、先ほど登録したホストサーバーとブリッジ用アカウントを登録してカスケード接続をします。
あとはwindowsなりmacOSからL2TPでVPN接続する事が出来ます。