VPNによるリモート環境構築

この記事は SLP KBIT Advent Calendar 2018 の16日目の記事です。

SLP KBIT Advent Calendar 2018 – Qiita
香川大学 学生プログラミング 研究所 による アドベントカレンダー

今年で6年目。

なにを書いてくれても構いません。
が、可能な限りSLPの活動とひも付けてくれると嬉しいです。

※SLPとは、香川大学工学部のサークルです。
ゲームプログラミングや、ウェブプログラミング、ETロボコンが主な活動。
https://poulenc.eng.kagawa-u.ac.jp/Pub/KBIT/

過去のアドベントカレンダーを貼っておきます。参考にしてくだ…

どうも、適当にリツイートしたらGalaxyオリジナルカレンダーが当選した赤西真論です。

前回の記事でネタが無ければVPNでのリモート環境について記事を書くと言いましたが、本当にネタが無いのでこれで行きますw

アドベントカレンダーでこの日を選んだのは育ちゃん(中谷育)の誕生日だからです。アイドルの誕生日に記事を書くのっていいよね。

そもそもVPNとは?

まずは一応VPNの説明から

VPNとはVirtual Private Networkの略で、簡単に言えばインターネットを通じて仮想的に作成された自分のLANネットワークに接続するものです。(これは厳密にはリモートアクセス型VPNで、それとは別にLAN同士を接続するLAN型VPNも存在するが、今回の内容は前者を使用したものである)

インターネットを介して自分のネットワークに接続出来るので、そのネットワーク内にあるPCにはグローバルIPアドレスではなく、ローカルIPアドレスによって接続出来ます。

また、VPNを通じてそのネットワークが使用しているネット回線を利用することも出来ます。この説明だとよく分からないので図を用意しました。

これはうちの環境をざっくり説明したものです。以降の内容もこの図に従って説明していきます。書くのを忘れていましたが、TamakiとAnnaはWindows10です。Tamakiは結局Windows10にしました。

メインのノートPC(Tsubasa)に関しては今回は省略しました。また、図にはありませんが、大学の部室にあるUbuntuのデスクトップPCも接続することがあります。

で、最低条件としてどのデバイスもインターネットに接続されている必要があります。まあ、インターネットを使ってネットワークを組むので当たり前ですね。

このとき、どのデバイスもグローバルIPアドレスを利用してインターネットに接続します。もちろんDHCPサーバーがあれば降ってくるのはローカルIPアドレスになりますが、結局はルーターでNATによりグローバルIPアドレスに変換されて接続することになります。

で、VPNを利用すると何が出来るかというとVPNサーバー上でNATを動作させることにより、サーバーのグローバルIPアドレス、つまりサーバーが接続している回線を利用してインターネットに接続出来るようになります。プロキシサーバーのように使えると考えてもらえると分かりやすいと思います。

今回の目的には関係ないのであれですが、うちの大学だとVPNは非常に重宝します。というのもうちの大学の場合はフィルタリングが存在するため、ゲームなどをプレイできません。すべてブロックされてしまいます。ですが、VPNを利用すると大学側からするとただ単にVPNサーバーと通信しているように見えるのでブロックの対象にならず、ゲームをプレイ出来ます。非常に重要です。(ミリシタは弾かれないんですけどねw)

ちなみに通信内容はもちろん全て暗号化されているので、公共のフリーWifiとか使うときにも使えます。このあたりは最近よく言われている気がします。

今回の目的

今回は別に接続するためのプロキシのように使うのでは無く、リモート環境の構築がメインです。

VPNではサーバーに接続しているデバイスはすべて同じハブに繋がっているように見えます。(設定によっては接続先のハブを変更することが可能です。)

ですので、VPN上でのローカルIPアドレスを指定するとそのデバイスに接続出来ます。これがとても重要になります。うちの家はマンションの共用回線を使用してインターネットに接続しています。こういう場合、壁にLAN端子があるのですがグローバルIPアドレスではなく、ローカルIPアドレスが降ってきます。また、ルーターは共用部分にあるため設定を変更できません。つまり、ポート開放等が出来ないため家のPCに直接接続することが出来ません。

ここで家のPCをVPNに接続しておくとします。すると通常のインターネット回線に接続しているだけでVPN上でのIPアドレスを指定するだけでマシンに接続出来ます。これがやりたい。

ということで今回の環境を構築しました。まあ、ただ単にVPNサーバー建てて、固定IPアドレスでそこに接続するだけなのですが…

ちなみにマンションの共用回線ですが、通常こういう回線は遅くなるのが一般的なのですが、なぜか夜でも60Mbpsぐらい出ます。調子がいいと90Mbpsは超えます。まあ、100Mbpsが最高になっているので、それ以上は出ないのですがすごいですね。一度プロバイダーが知らない間に変わっていて、それ以降このスピードが出るようになっています。変わる前は夜は1MbpsぐらいでTwitterの画像すら表示されないような回線でしたw

使用用途

では、接続出来るようになってから何をしたいかです。今回はメインマシン(Anna)にリモートデスクトップで接続する、共有しているドライブにアクセス出来るようにしました。これに関しては特に難しい設定は要りません。普通にリモートデスクトップの接続を許可して、ドライブに関してはLANに公開するように共有を有効化すればいいだけです。簡単ですね。

Windows標準のリモートデスクトップとかじゃなくて、TeamViewerを使えばいいと思われるかも知れませんが、こっちのほうが直接通信するので動作が全く違います。回線が良ければ普通に動画とかも見れます。あと、TeamViewerはなんか通知とかがウザいんだよね…

VPNサーバーに関して

VPNを作るためにはハブとなるようなサーバーが必要になります。これに関しては以前の記事でConoHaのVPS(Kotoha)上に建てたので、これを利用しています。

ちなみにL2TPによる接続が出来ないと言っていましたが、これは解決しました。せっかく作成したセキュリティグループをKotohaにアタッチするのを忘れていました。ただの馬鹿です。Readmeはきちんと読みましょう。

クライアントに関して

さて、VPNサーバーが出来たら次はクライアントです。これはOSによって接続方法が変わります。今回は紹介だけなので適当に流しますw

Windows

これはSoftEtherのクライアントを入れてサーバーを指定するだけです。とても簡単。

ただ、Annaに関しては固定IPアドレスにしておかないといけないのですが、SoftEtherの簡易DHCPサーバー機能にはその機能が存在しません。なので、Windowsのアダプター設定でIPアドレスをDHCPから取得するのではなく、指定して接続するようにしておきます。ただ、あんまりこの設定は好きじゃないんですよね。間違えて設定するとIPアドレスがぶつかる可能性があります。

また、Annaは常時接続が必要なので、スタートアップ接続に登録しておきます。これは接続先一覧から指定のサーバーを右クリックすることで登録できます。

リモートデスクトップに関しても標準でクライアントがあるのでそれを利用します。共有ドライブも普通にエクスプローラーから接続できます。

iPad(iOS)

iPadはiOS標準のVPN接続機能でL2TP/IPsecによって接続しています。

リモートデスクトップはMicrosoftが提供しているアプリを、共有ドライブに関してはFE File Explorer Proを利用しています。

‎Microsoft リモート デスクトップ
‎概要
Microsoft リモート デスクトップ アプリを使えば、ほとんどどこからでもリモート PC や作業用リソースに接続できます。どこにいても作業ができるように支援するリモート デスクトップ クライアントの RemoteFX を使用して、Windows をフル活用してください。

はじめに
Windows Professional エディションと Windows Server エディションがサポートされています。サポートされている Windows の全エディションが列挙された一覧を確認し、Windows PC に正常に接続できるように、http://technet.microsoft.co…

‎FE File Explorer Pro
‎FE File Explorer Pro is a powerful file manager app on your iPhone and iPad. It can access not only local files, but also files on your computer, NAS and cloud storages. Transfer files among those locations. Stream movies and music to your iPhone/iPad. Directly view and manage documents, photos, fil…

Galaxy S8(Android)

S8もAndroid標準のVPN接続機能でL2TP/IPsecによって接続しています。

こいつからはリモートデスクトップにアクセスすることはありませんが、共有ドライブを見ることがあります。その際はX-ploreを利用しています。

X-plore File Manager – Google Play のアプリ
Highlights:

● Dual-pane tree view
● Root, FTP, SMB1 / SMB2, Sqlite, Zip, Rar, 7zip, DLNA/UPnP explorer
● Disk Map – see which files consume most space on your disk – http://bit.ly/xp-dmap
● Cloud storage access: Google Drive™, Dropbox, Box, Amazon cloud drive, ОБЛАКО.mail.ru, Mega.co, OneDrive, Flickr, Webdav, Yandex.disk, MediaFire, IDrive, Owncloud, PCloud, SugarSync, Dump Truck, pCloud, Picasa
● SSH File Transfer (SFTP) and SSH Shell – http://bit.ly/xp-ssh ***
● Music player ***
● App manager
● USB OTG
● PDF viewer (on Android 5.0+)
● WiFi file sharing *** – http://bit.ly/xp-wifi
● Manage files from a PC web browser *** – http://bit.ly/xp-web
● Favorite folders
● Built-in viewers for images, audio, text
● Video player with subtitles ***
● Batch rename
● Hex viewer
● Fast Image viewer with zoom and slide to previous/next images
● Thumbnails for images and video as well as for various file types (depending on associated application)
● Multi-selection – always available, yet not disturbing
● View APK files as ZIP
● Share – send files by Bluetooth, email, or whatever the device supports, from any location
● Configurable buttons and key shortcuts
● Seamless work with Zip (as if it was normal folder)
● Vault for encrypting sensitive files – http://bit.ly/xp-v ***

*** marked features are paid – they require donation

X-plore allows you to see inside of your Android device. And also outside.

This is a dual-pane explorer, there are two folders shown at same time, and common operation such as copying files are done from one pane to another.
And X-plore shows folder hierarchy in a tree view for clear orientation and fast switching to other location.

You may explore internals of the device, and if you’re power user and have your device rooted, you can make changes to system data – backup files, remove unwanted applications, etc.

If you’re standard user, you may choose to hide internal memory from view and be sure not to mess with system.
You can comfortably see contents of mass memories on your device, or possibly attached USB memory stick.

Simple app manager allows to see, run, copy, share, uninstall and further explore installed applications.

WiFi file sharing
Access files on your Android device from other Android devices over WiFi.

Access from a PC web browser
Manage files on your Android device from your PC.

Access to FTP and FTPS (secure FTP) servers is supported.
Multiple servers may be configured.

X-plore can display shared folders on other computers in LAN.

X-plore can access various web storage “Cloud” servers, and access their files.
You need to have account in supported web service, then you can access your files stored online through X-plore.

Supported is also SSH File Transfer (SFTP) and Terminal shell emulator.

X-plore contains music player that can play music tracks from any available location.

With Vault function, you can encrypt sensitive files, even by your fingerprint.

Main operations are related to managing files and folders – viewing, copying, moving, deleting, compressing to Zip, extracting, renaming, sharing, and more.

SQLite database viewer
X-plore can show SQLite database files (those with .db extension) as expandable list of tables, each table containing list of rows and columns with database entries.

Main interaction is done by touch screen, clicking on folders or files to open files, or long-click to open context menu which contains options which can be done on particular clicked item, or multiple selected items.
Multi-selection allows to do operation on more files at once.

Opening file may mean to use one of built-in viewer for most popular file types: images, audio, video and text.
Or you may configure X-plore to use system application for opening files, in which case system-predefined application that can open particular file is launched.

Archives (currently supported are Zip, Rar and 7zip) are displayed as other folders.

ちなみにこれで共有ドライブに入ってる音楽を数時間聞いていたのですが、MP3 320kbpsのファイルだと通信量が大変なことになるので気を付けましょうww

Ubuntu

Ubuntu 18.04.1なのですが、最初L2TP/IPsecで接続しようとしたのですが、何回やってもきちんと接続されなかったので、OpenVPNで接続するようにしました。

リモートデスクトップにはRemmina、共有ドライブへのアクセスは通常のファイルマネージャーで接続出来ます。

通信速度とか

Kotoha経由で接続してもそれなりの速度が出ます。というかConoHaって思った以上に外部との通信が速いです。また、そこまで低速になったことがありません。

ただ、リモートデスクトップに関しては以下の設定をしたほうがいいかもしれないです。10Mbpsもあれば充分な速度出ると思います。

リモートデスクトップの反応が鈍く描画がカクつく問題を直す [クソゲ〜製作所]

共有ファイルにアクセスするのはもっと低速でも大丈夫で、例えばS8にはServersMan SIMという通信量無制限の代わりに下り速度がよくて2Mbpsぐらいしか出ないSIMを刺して運用していますが、特に問題なく音楽の再生とかが出来ます。

ただ、やっぱり家の回線速度も影響が出るのでそこが遅いと辛いかも知れません。まあ、重要なのは下りより上りなので大抵の場合は大丈夫だと思うのですが…

最後に

なんでこんな環境を構築したかというと、最近ノーパソを持ち歩くのが億劫でiPadで作業が出来たらいいのにってことでやりました。

結果としては結構満足しています。また、T90chiのようにAtomを搭載した低スペックPCでもデスクトップPCに接続することで様々な作業をサクサク出来るようになります。リモートデスクトップの場合はそれなりの速度が出る回線が必須ですが、SSHと違って接続が切れたとしてもデータが飛んだりしません。画面自体がそのままの状態で残っています。

あと、自宅の環境をそのまま使えるのでメインマシンで開きっぱなしのファイルを外で編集とかも出来ます。

やろうと思えば多分WoLとかも出来るんじゃないですかね。やってないので知りませんが…

正直、ポート開放とか出来る回線ならこんなことしなくてもいい気がしますが、VPNであれば通信がきちんと暗号化される上に秘密鍵での接続とかにすれば、外部から不正に接続されることがまず無いはずです。

 

思った以上に長く書いてしまいました。本当はもっと短い記事になる予定だったので、ちょっとお茶を濁すようなネタも準備していたのですが、別の記事にします。

投稿者: 赤西 真論

アイマスに人生を変えられ、コードを書くのが嫌いになった大学生

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください