ご質問・お見積り等お気軽にご相談ください
お問い合わせ

設定が簡単なVPNサービス「Tailscale」でクローズドな環境を構築する

設定が簡単な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サービスは商用から無料まで様々ですが、どのようなものがあるのか簡単に紹介したいと思います。

商用サービス例

商用サービスの例としてはExpressVPNNordVPNなどが有名ですが、正直商用のVPNサービスはどこも似たりよったりです。

個人的評価詳細
×1ヶ月あたり1000円から2000円程度
×同時に接続できるPC数は5台前後
自分でサーバーを用意する必要がなく、専用ツールで接続するPCのみで完結
日本だけでなく、世界各国のサーバーへ接続が可能
難しい設定は基本不要
×VPN接続先を超えた同一アカウントにおける拠点接続には非対応
商用サービスを例にした個人的評価

無料サービス例

日本独自ならSoftEtherVPN、海外だとOpenVPNが有名です。

個人的評価詳細
導入するサーバー費用のみ、ソフトウェアライセンスは無料
接続できるPCはほぼ無制限(サーバースペックに依存)
×自分でサーバーの用意が必要
用意した環境に対してのみ接続が可能
×設定のハードルはスキルレベルに依存
拠点間接続に対応
無料サービスを例にした個人的評価

・・・と商用サービスだと導入ハードルは低いですが、お金がかかるし、多少制約があります。一方でオープンソースをベースにするとスキルレベルに依存しますが、やりたいことは網羅できます。

そこで今回紹介するのが「Tailscale」です。

TailscaleはWireGuardというVPN技術をベースに作られているサービスで、専用のクライアントを通じて「100.x.y.z」という独自のアドレスを持ったメッシュネットワークを構築します。

WireGuardのメッシュネットワーク

従来のネットワークと言えばVPNアプライアンスを用意し、みんながVPNアプライアンスに接続するという方式でした。管理が集中される反面、VPNアプライアンスが故障すれば接続不可となりますので、冗長化が欠かせませんが、エッジロケーションに対する接続、例えばブロードバンド環境を冗長化するのはかなりハードルが高いです。

従来のVPN接続方法、中央に用意したVPNゲートウェイ(VPNアプライアンス)に対して各クライアントが接続しますので、アプライアンスの性能で接続可能数やパフォーマンスに依存します。

Tailscaleの特徴

WireGuard自体はまだ比較的最近登場した新しい分野のオープンソースソフトウェアで、UDPベースで接続し、高速、かつ、メッシュネットワークを形成しますが、相互接続する兼ね合いで接続台数が増えると設定の管理が大変です。・・・が、そういった管理の手間からTailscaleは開放してくれます。

個人的評価詳細
基本機能は無料、接続するPCに導入するだけ
無料は100台までの制約あり、個人や、小規模なら十分な台数
自分でサーバーを用意する必要がなく、専用ツールで接続するPCのみで完結
用意した環境に対してのみ接続が可能
難しい設定は基本不要
拠点間接続に対応
Tailscaleの個人的評価

専用クライアントを用いた専用のメッシュネットワークを構築し、同一アカウント間で相互接続ができる他、追加設定を行うことで拠点間通信にも対応します。

またメッシュネットワークで相互接続されているため、冗長化と通信のフェイルオーバーにも対応しています。

メッシュネットワークを信頼できるネットワークとして設定することにより、例えば上記で挙げたSSHへのアクセスをインターネット上では完全に非公開としつつ、メッシュネットワーク内からはアクセスできるようにすることで、よりセキュアな構成を保つことができます。

流れとしてはアカウントの作成後、アカウントにログインしている状態で導入したいPCにクライアントソフトウェアをインストールするだけです。

アカウント作成もソーシャルログインが使えるため、手順はシンプルですし、管理画面もネットワーク設定とはほど遠い、良い意味でシンプルなインターフェースです。

Tailscaleの管理画面

インストール方法

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に入って無くても使えます。

上記を実行したマシンにブラウザーで接続。Macのターミナルっぽい見え方ですが、これブラウザーの画面です。

こんな高性能なサービスが無料で使える化け物的サービスがTailscaleです。双方のPCをダイレクトに繋いで暗号化(E2E)されているため、メッシュネットワーク上の情報はTailscaleに流れず、あくまで手間のかかる設定の自動化とACLなどのルーティングの管理に留まります。

出先から自宅環境にアクセスしたいが、ルータに穴を空けるのはどうも抵抗があるとお悩みの方、ぜひお試しください。

この記事を書いた人
大樹前野
maeno
株式会社ウェブネーションの取締役です。ある時はうどん屋の皿洗い、ある時はサービス運営チームのメンバー、ある時はクラウド環境の設計を担当するバランス型なキャラですが、唯一プログラミングだけ苦手です。3度の飯よりドライブが好きで、週末に安心してドライブを楽しむために日々自動化の技術に取り組んでいます。