新型コロナによる緊急事態宣言が発出されたあたりから、テレワークが注目されるようになりました。緊急事態宣言は5月末には解除となったのですが、引き続き「新しい生活様式」が求められているため、テレワークへの注目は今後も変わらないと思われます。
テレワークを始める際に考慮すべき点はいくつかありますが、その一つは会社ネットワークあるファイルやソフトウェアにいかにアクセスするかです。
私の場合、会社ネットワークは(お客様環境を除いて)ありませんが、自宅ネットワークにはいろいろなファイルや、操作したいサーバがあります。その自宅ネットワークに出先(カフェやサテライトオフィス、出張先のホテルなど)からアクセスしたいと思えば、やはり同様の環境が必要になります。(この記事では、そうした私の事情も含めて、会社ネットワークに接続したいということにします。)
会社ネットワークのファイルを外部からアクセスする方法
会社ネットワークに存在するファイルに外部からアクセスする方法を考えてみましょう。
まず、考えられるのは、そもそもデータをクラウドに置いておく方法です。DropboxやGoogleドライブ、OneDriveといったクラウドストレージサービスはすっかり普通になりましたが、そうしたサービス上にファイルを置いておけば、そもそも外部からアクセス・・・の必要性がなくなります。
こうしたクラウドストレージサービスは、多くの場合、クラウド上のファイルをPC上のフォルダに同期するので、自宅PC(例えば社員のプライベートPC)に会社のファイルが大量に保存されることになります。これは、セキュリティ的に問題になることがあります。
最近はクラウドストレージサービスから必要なファイルだけを自宅PCに保存したり(OneDriveなどにあるファイルオンデマンド機能)、ネットワークストレージとしてマウントする形で使用して自宅PCにはキャッシュ程度しか置かないようにする(G Suiteで使用できるGoogleドライブファイルストリーム)といったことが可能になり、セキュリティ上の不安が軽減されるようになっています。
このような、クラウドストレージサービスを使わなくても、会社内のファイルサーバとしてownCloudを導入する方法があります。ownCloudはオープンソースで提供されているソフトウェアで、会社ネットワーク上でクラウドストレージを構築することができます。
また、クラウドストレージサービスを使わなくても、会社内のファイル共有をNASで行っている場合は、NASのメーカーによっては外部からNAS上のファイルにアクセスできるサービスを提供している場合もあります。
リモートデスクトップ
会社ネットワークに接続したい理由が、ファイルの共有だけなら、クラウドストレージサービスを使うだけでずいぶん解決されます。しかし、ファイルだけでなく、会社ネットワーク上のサーバやPCに入っているソフトウェアを使いたいという場合は、やはり会社ネットワークへの接続が必要になります。
ここで考えられるのは、会社で使用しているPCの画面を自宅等から操作するリモートデスクトップを使う方法です。Windowsに標準搭載されているリモートデスクトップ(RDP)や、macOSに標準搭載されている画面共有機能(VNC)を使うことができます。しかし、会社PCにグローバルIPアドレスで外部から直接接続できるようにルーターでポート開放を行う必要がありますし、複数の会社PCを対応させようと思えばポート転送の設定も必要です。セキュリティ的にもあまり良い方法とは言えず、お勧めできません。
別の方法として、Chromeリモートデスクトップや、Team Viewerといったサービスを使うことが考えられます。Chromeリモートデスクトップは会社PC上のChromeに拡張機能を導入することによって使用できます。Team Viewerはソフトウェアの導入が必要です。
これらのサービスは、会社PC側からそれぞれのサービスに接続しておき、自宅PC側からはそのサービスが提供するサーバを介して会社PCにアクセスすることになるため、会社PCにグローバルIPアドレスで接続したり、ルーターの設定を変える必要はありません。
VPN
次に、VPNを使う方法を考えてみましょう。VPNでは、自宅PCが会社ネットワークに直接接続されているような形になるため、会社ネットワーク上のリソースが無制限に使用できます。また、自宅PCからVPNで会社ネットワークに接続するには認証が必要となり、通信は全て暗号化されるため、セキュリティ的にも安心です。
VPNを使用するには、多くの場合、会社ネットワーク上にVPNサーバーを構築することになります。VPNサーバーとしては、OpenVPNやSoftEtherが用いられます。いずれの場合でも、会社ネットワークのルーターにIPv4のグローバルアドレスが設定されている必要があります。望ましいのはインターネットプロバイダの固定IPサービスに契約することですが、通常のインターネット接続サービスで用いられるDHCPで振られたIPv4のグローバルアドレスでもダイナミックDNSサービスなどと併用することで、VPNサーバーを構築することも可能です。
ただ、最近のインターネット接続サービスでは、高速化のためにIPv6接続を行い(IPv6だから速いわけではありませんが、相対的に混雑度が低く、高速であることが多い)、IPv4についてはDS-Liteなどの方法でNAT変換する方式が採られていることがあります(オプションとして提供されているだけで、その方式だけということはないと思いますが・・・)。
DS-Liteなどのサービスでは、IPv6についてはグローバルアドレスが占有の形で付与(といってもDHCP)されるものの、IPv4については他のユーザーと共有のグローバルアドレスがDHCPで付与されるだけで、一部のポートが占有になっているに過ぎません。そのため、全てIPv6で完結させられるなら別として、VPNサーバーの構築は基本的に難しいということになります。
このような場合でも、外部にVPNサーバーを構築し、そのネットワークに会社PCと自宅PCの両方が参加するという方式を採ることができます。(実は、私の環境でその方法を実装したので、その説明がしたくて、長々と前提を書いてきたわけです・・・。具体的な実装方法については、別の記事としてまとめます。)
また、外部にVPNサーバーを構築しなくても、インターリンク社が提供するVPNサービスを使用するという方法もあります。(私も以前使ったことがあるのですが、今は上記のとおり自前で実装したので、使っていません。)
ということで、3つの方法をそれぞれ説明しました。次回は、DS-LiteとVPNについて書いていきます。