設定が簡単なVPNサービス「Tailscale」でクローズドな環境を構築する
システム開発部の前野です。いつもウェブネーションのコーポレートサイトへご訪問頂きありがとうございます。少し前から「Tailscale」を使い始めましたので良し悪しについて紹介です。
VPNの恩恵を受けやすいケースとしてはやはり「自宅のNASにアクセスができる」ことでしょうか。
NASがあれば個人的なファイルから、データのバックアップ、パソコン本体、スマホのバックアップまで完結します。今やハードディスクも10TBを超えるものまで登場し、個人で大容量のNASを持つことも容易となりました。地上波も1日録画しっぱなしで150GBほどですので、常に録画しながら番組を見ることもいまや可能ですね。
とは言え、我が家ではGoogleドライブにすべてのデータを移行したこともありますし、普段から番組の録画はしておらず、あまりNASの恩恵は多くはありません。ではなぜVPNを使うかと言えば、サーバーの管理が主になっています。Linuxサーバーへ接続するにはsshが定番ですが、ポート22を開放しようものなら、巡回しているBOTによってセキュリティ周りのログが溢れかえってしまいます。
そこで、私がよく組むサーバーでは接続元IPアドレスをファイアウォールで制限することにより、固定元IP制限+鍵認証による二段階認証により、万が一鍵が漏洩しても限定したPCよりセキュアな構成を組めています。
また海外からNetflixやAmazonプライムを普段使いできるのもVPNの理由の1つです。
もちろんNetflixやAmazonプライムは海外からでも見れますし、全てが影響を受けるわけではないですが、国によっては番組の閲覧に制限がかかることがあるので便利です。長い飛行機の移動時間やトランジットの空いた時間潰しに便利でしょう。
そんなVPNサービスは商用から無料まで様々ですが、どのようなものがあるのか簡単に紹介したいと思います。
商用サービス例
商用サービスの例としてはExpressVPNやNordVPNなどが有名ですが、正直商用のVPNサービスはどこも似たりよったりです。
個人的評価 | 詳細 |
× | 1ヶ月あたり1000円から2000円程度 |
× | 同時に接続できるPC数は5台前後 |
◎ | 自分でサーバーを用意する必要がなく、専用ツールで接続するPCのみで完結 |
◎ | 日本だけでなく、世界各国のサーバーへ接続が可能 |
◎ | 難しい設定は基本不要 |
× | VPN接続先を超えた同一アカウントにおける拠点接続には非対応 |
無料サービス例
日本独自ならSoftEtherVPN、海外だとOpenVPNが有名です。
個人的評価 | 詳細 |
△ | 導入するサーバー費用のみ、ソフトウェアライセンスは無料 |
◎ | 接続できるPCはほぼ無制限(サーバースペックに依存) |
× | 自分でサーバーの用意が必要 |
△ | 用意した環境に対してのみ接続が可能 |
× | 設定のハードルはスキルレベルに依存 |
◎ | 拠点間接続に対応 |
・・・と商用サービスだと導入ハードルは低いですが、お金がかかるし、多少制約があります。一方でオープンソースをベースにするとスキルレベルに依存しますが、やりたいことは網羅できます。
そこで今回紹介するのが「Tailscale」です。
TailscaleはWireGuardというVPN技術をベースに作られているサービスで、専用のクライアントを通じて「100.x.y.z」という独自のアドレスを持ったメッシュネットワークを構築します。
従来のネットワークと言えばVPNアプライアンスを用意し、みんながVPNアプライアンスに接続するという方式でした。管理が集中される反面、VPNアプライアンスが故障すれば接続不可となりますので、冗長化が欠かせませんが、エッジロケーションに対する接続、例えばブロードバンド環境を冗長化するのはかなりハードルが高いです。
Tailscaleの特徴
WireGuard自体はまだ比較的最近登場した新しい分野のオープンソースソフトウェアで、UDPベースで接続し、高速、かつ、メッシュネットワークを形成しますが、相互接続する兼ね合いで接続台数が増えると設定の管理が大変です。・・・が、そういった管理の手間からTailscaleは開放してくれます。
個人的評価 | 詳細 |
◎ | 基本機能は無料、接続するPCに導入するだけ |
○ | 無料は100台までの制約あり、個人や、小規模なら十分な台数 |
◎ | 自分でサーバーを用意する必要がなく、専用ツールで接続するPCのみで完結 |
△ | 用意した環境に対してのみ接続が可能 |
◎ | 難しい設定は基本不要 |
◎ | 拠点間接続に対応 |
専用クライアントを用いた専用のメッシュネットワークを構築し、同一アカウント間で相互接続ができる他、追加設定を行うことで拠点間通信にも対応します。
またメッシュネットワークで相互接続されているため、冗長化と通信のフェイルオーバーにも対応しています。
メッシュネットワークを信頼できるネットワークとして設定することにより、例えば上記で挙げたSSHへのアクセスをインターネット上では完全に非公開としつつ、メッシュネットワーク内からはアクセスできるようにすることで、よりセキュアな構成を保つことができます。
流れとしてはアカウントの作成後、アカウントにログインしている状態で導入したいPCにクライアントソフトウェアをインストールするだけです。
アカウント作成もソーシャルログインが使えるため、手順はシンプルですし、管理画面もネットワーク設定とはほど遠い、良い意味でシンプルなインターフェースです。
インストール方法
Linuxなら以下を実行するだけです。
$ sudo curl -fsSL https://tailscale.com/install.sh | sh
あとは必要パッケージを勝手にダウンロードして追加してくれます。
インストールと同時に起動させられますので、以下のメッセージが最後に表示されます。
To authenticate, visit:
https://login.tailscale.com/a/a1234567890
To approve your machine, visit (as admin):
https://login.tailscale.com/admin
Success.
Some peers are advertising routes but --accept-routes is false
(応用編)超簡単にSSH管理
まだβ版の機能ですが、sshの鍵管理を任せることができるTailscale SSHがかなりやばく、接続先に対し以下を実行するだけで設定完了です。
$ sudo tailscale up -ssh
あとは普通に該当マシンへMagicDNS経由でSSH接続をするだけというお手軽なモノ。
加えてブラウザーからも接続できるので、ターミナルがPCに入って無くても使えます。
こんな高性能なサービスが無料で使える化け物的サービスがTailscaleです。双方のPCをダイレクトに繋いで暗号化(E2E)されているため、メッシュネットワーク上の情報はTailscaleに流れず、あくまで手間のかかる設定の自動化とACLなどのルーティングの管理に留まります。
出先から自宅環境にアクセスしたいが、ルータに穴を空けるのはどうも抵抗があるとお悩みの方、ぜひお試しください。