はじめに
自宅のPCの自宅外から操作したいと思った初心者がTailscaleを使ってみただけです
やりたかったこと
下図のような感じで自宅PCに踏み台用VMを作って遠隔から自宅NWの端末に触りたい
踏み台VM:ubuntu-server24.01
案
遠隔からの通信なのでVPNを使ってセキュリティ意識してやってみたかった
そこで2案考えた
案1. 自前でVPNサーバを立てる
案2. Tailscaleなどのプラットフォームを用意しているものを利用する
案1 自前でVPNサーバを立てる
結論から言うと無理だった。
正確には、自宅の環境では無理だった
考えていた方針
VMと遠隔端末側にwireguardを入れて鍵のやりとりやIFの設定を行い通信させようとしていた。
感覚的にはこんな感じ

特定ポート番号でポート転送させるイメージだった
ルータ側には遠隔端末しかポート転送させないようなセキュリティの問題もあった。
正直、危険なことしていると感じていた。。。。
結果
ポート転送云々の話の前に、自宅のネット環境がマンションタイプなのもあって自宅NWのインターネット側IPにパケットを送れなかった。
試したこと
- 試しに遠隔端末を自宅NW内に入った状態でVPNを作って接続
-> うまく接続できた - 携帯のテザリングで遠隔端末をネット接続した状態でVPN接続
-> うまくできず。踏み台VM側のキャプチャでもwireguardパケットが届いていない
考察
多分、自宅NW内のルータの一段上に集約しているルータ(?)があって、そこからIPとかも払い出されているのかなと勝手に推測
集約しているルータに手を出すわけにはいかない(手を出せない)、ので案1は失敗
案2 Tailscaleなどのプラットフォームを用意しているものを利用する
結論としてはうまくいった
めっちゃ簡単だった
Tailscaleの公式サイトに載っている手順通りに行ったらうまくいった。
簡単な手順
- Tailscale内でアカウントを作成
- 踏み台VMと遠隔端末側にTailscaleを入れて、表示されたURLからログインする
- 踏み台VMと遠隔端末のVPN用IPが払い出されるので、接続する時にはTailscaleを有効にしてsshするだけ
考察
Tailscale自体はwireguardが行なっている鍵認証や一時鍵の生成を代わりに行う中継サーバを用意している感じかと想定している。
-> 自宅PC側のパケットキャプチャをしてみると鍵の初期化やレスポンスのパケットが飛んでいなかったため
まとめ
Tailscaleの登録自体はすぐに終わったので案1でかけた時間はなんだったのかと思っていたが、VMを作る練習やufw、EDRのfalcoを入れてみるきっかけになったので結果的には糧になった。
wireguardのパケットキャプチャを取ってみたので見てみた
案1で行ったキャプチャからの抜粋
handshakeとresponseを大体120秒間隔で行なっているように見える
一時鍵をサーバとクライアント側で作成し、対向側の公開鍵で暗号化する感じなのk

