見出し画像

リモートネットワーク接続(vpn接続)の設定をした話 その1

こんにちは!

リモートから自宅ネットワーク環境に接続するための設定をしたので、今回はそのときの話を書きたいと思います。昨今のリモートワークの流れで話題になったいわゆるVPN(Virtual Private Network)ってやつですね。設定自体はそこまで難しくはなかったですが、特にネットワーク関係について新たに勉強することも多かったので、その集積と言う意味も兼ねて書いておきます。


Virtual Private Network

冒頭にも書いたとおり、今回の話題はVPNです。Virtual Private Networkなので、日本語にすると「仮想秘密ネットワーク」と言ったところでしょうか。要するに、インターネットを経由して組織や自宅のネットワークを拡張するための仕組みです。(会社側で適切な設定をしていれば)自宅から会社のサーバーに接続できるようになるので、リモートワークの拡張に伴ってここ最近かなり話題になっている技術ですね。詳しくはwikipediaの記事をご覧ください。

このVPNを個人で運用する主なメリットは、自宅PCに遠隔からアクセスできるようになることだと思います。以前の記事でも書いているとおり、僕は家に常時起動のサーバー用PCを置いており、WEBサーバーにwikiを立てていたり共有ファイルサーバーとして運用したりしているので、外からでもアクセス出来るようにしたいというのが導入した理由です。

今現在はなかなか外に出づらい状況が続いていますが、ちょっと前まではカフェでiPadを使って文章を書いたりしたことも多かったので、そういう時に自宅のPCに接続できるのは助かります。以前、共有ファイルサーバーの記事で書いた時の課題として、「外部から接続できない」という点をあげていましたが、それを解決できるのがこのVPNなんですね。外からでもインターネット経由で自宅の共有ファイルサーバーにアクセスできるので、自宅の共有フォルダがDropboxなどのオンラインストレージと同じような感覚で使えるようになります。

あと、そのうちやりたいと思っているのが、iPad側にプログラム開発環境を整えて、外でもプログラム開発が出来るようにするというものです。以前、読書会のリスト作成をプログラミングで自動化したという話を書きましたが、それ以降も継続してプログラミングは続けているので、それが外からも出来るようになると幅も広がるんじゃないかなという気もしています。


Softether VPN

VPNと言ってもソフトウェアは有償無償で色々とあるようですが、今回利用したのは筑波大学で開発された「SoftEther VPN」というものです。オープンソースのソフトウェアで、その利用も無料でできちゃいます。やはり、オープンソースは偉大ですね。。。

Softetherとはイーサネット(Ethernet)をソフトウェア的に再現する(要するに仮想イーサネットを構築する)ものらしく、それが名前の由来になっているようです。詳しくは下記のページを見てほしいのですが、ここに書いてある情報量がすごい! 実際に利用する前にSoftether VPNの仕組みについて一通り目を通してみたのですが、ネットワークについての理解は飛躍的に上がったと思いますw もちろん、具体的にこのプログラムでどのような操作をしているのかというレベルまではわかってはいませんが、少なくとも概念としてどういうことをやっているかについてはかなりしっかり理解できました。

このソフトウェアの特徴としては、ネットワークハブやLANカードを仮想化して接続を確立するという点にあるらしいです。詳細な解説は公式サイトのドキュメントを見てほしいのですが、他のVPNシステムがネットワークレイヤー(レベル3)で仮想化をしているものが多いのに対して、このSoftetherはデータリンクレイヤー(レベル2)での仮想化をしているのがユニークなところであるようです。

一般的に使われているVPNソフトとの互換性も対応しており、今回もiOSやAndroidに標準搭載されているVPNとも容易に接続することができました。このあたりのドキュメントもかなりしっかり整備されており、親切で使いやすい仕様になっているなという印象を受けます。もちろん、法人で使う場合にはセキュリティの問題等をもっとしっかり調べなければならないのでしょうが、少なくとも個人で使う分にはなかなか良い選択肢だと思います。設定もITについての一般的な知識があればそこまで難しくない感じです。

このソフトの構成としては、サーバー側(接続される側)に設置する「Softether VPN server」と、クライアント側(接続する側)に設置する「Softether VPN client」となっています。「Softether VPN bridge」というのもあるらしいですが、現在はこのソフトの機能は「Softether VPN server」に入っているので、特別な場合を除いては特に必要無いらしいとのこと。

今回導入するのは、自宅サーバーに設置するための「Softether VPN server」の方です。現時点で、外からアクセスするようのパソコンはないのでclietnの方は特に必要ありません。メインPCはノートパソコンでは有りますが、以前紹介したとおり、ちょっと持ち運べるようなサイズではないのですw 今考えているのは、Android端末やiPadからインターネット経由で自宅サーバーに接続することですが、先にも少し触れたとおり、これらの端末からはそれぞれOS標準搭載のvpnソフトからアクセスできるので、専用のソフトは必要ありません。


Softether VPN serverのインストール

Softether VPN serverは、上記の公式サイトからダウンロードできます。OSごとにパッケージが配布されているので、適切なものを選んでダウンロードすればOK。今回はサーバーPC用のOSである「Linux(32 bit)」を選びます。

余談ですが、ここのところ各種ソフトの開発において、32bit版が切り捨てられる流れがあるようなので、このサーバーマシンの寿命も長くないのかも知れませんw そもそも、ベースOSのubuntuがもはや64bit版のみになっていますしね。今すぐ変えるつもりはないですが、ぼちぼち後継をどうするかを考えなくてはならないなぁと感じつつあります。

まあ、それは置いておくとして、無事にダウンロードできたら、そのパッケージを「make」コマンドでビルドします。「make」がインストールされていなければ

$ sudo apt-get install build-essential

というコマンドを打てばインストール出来ます。「make」できる環境が整ったら、ダウンロードしたtar.gzファイルを解凍した後、「vpnserver」のフォルダに入って「make」します。

$ cd Downloads/
$ tar xzvf softether-vpnserver-v4.34-9745-beta-2020.04.05-linux-x86-32bit.tar.gz
$ cd vpnserver/
$ make

利用規約が表示されるので、内容を確認しつつ「Yes」を何度か入力。設定方法は公式サイトのマニュアルを参考に下記のように実行。

$ cd ..
$ sudo mv vpnserver/ /usr/local/
$ cd /usr/local/vpnserver/
$ sudo chmod 600 *
$ sudo chmod 700 vpncmd 
$ sudo chmod 700 vpnserver

基本的に、ここまで設定できれば「vpnserver」は起動できるようになります。この状態で「vpncmd」を打ち込むと、softether vpnの対話型コマンドツールが表示され、何をするかを問われるので「3」を入力(3はVPN Toolsという一般的な設定ツールです)。「VPN Tools>」という表示がされればOK。

$ sudo ./vpncmd

画像1

これに対して「check」コマンドを打つことで、動作環境が適切かどうかを確認出来ます。

>check

実際の画面はこんな感じ(画質が粗いのはリモートデスクトップで低画質設定にしているせいです)。

画像2

ここまでできればとりあえずのインストールは完了です。このあとも色々と設定が必要なわけですが、長くなりそうなので今回はここまで。次回は自動起動の設定や、vpnサーバーの設定について書いていく予定です。


まとめ

今回はSoftether VPNをつかったリモートネットワーク環境の構築について、その概要とソフトのインストールまでを書きました。色々とやることはありますが、公式のドキュメントがかなり充実しているので、ここまではそんなに大変ではないですね。

次回で終わるか、次々回まで続くかはわかりませんが、近日中に続きを書く予定なので、もしよければそちらも合わせて読んでいただければと思います。リモート環境でなにかをするという機会はこれからも増えてくると思うので、なにかしらの役に立てば幸いです。

それでは、また!

この記事が気に入ったらサポートをしてみませんか?