
固定IPなしでも家に帰れる|TailscaleでNAS・店舗へ安全に入るVPN設計【OpenWrt集中連載018】
外出先からNASの資料を開きたい。閉店後の店舗で、録画機や管理用PCの状態を確認したい。でも、固定IPはなく、IPoE回線でポート開放できるかも分からない。
この記事では、TailscaleでNASや店舗へ入るための経路、アクセス許可、接続確認を進めます。方式選びから始めたい方は013のWireGuard・Tailscale比較へ。複数利用者の権限設計は028で整理できます。
Tailscaleは、暗号化通信に端末認証やNAT越えを組み合わせたサービスです。直接接続できない条件では中継を使います。アカウント、料金、機能、利用条件も導入時に確認してください。
今回使っているOpenWrtルーターはこちらです。
最初に、どこまで入るかを決める
「VPNを入れる」だけでは、設計は終わりません。先に、外出先から何へ接続するかを一行で書きます。

Tailscaleを入れられるNASやPCだけ: その端末へ直接インストールする
Tailscaleを入れられないカメラや録画機: サブネットルーター経由にする
外出先のインターネット通信も自宅・店舗経由にする: Exit Nodeを検討する
LuCIなど管理画面だけ: 管理端末と利用者を限定する
Tailscale公式も、可能なら各端末へ直接クライアントを入れる構成を、セキュリティと性能の面で優先しています。サブネットルーターは、クライアントを入れられない機器への橋渡しです。
接続先は「自分のノートPCからNASのHTTPSへ」のように決めます。
IPoEでも始めやすい理由
WireGuardサーバーを自宅へ置く場合、外出先から自宅へ最初のパケットが届く必要があります。共有IPv4や利用可能ポートが限られる回線では、ここで詰まることがあります。
Tailscaleでは、各端末がTailscaleの調整サービスへ外向きに接続し、可能ならNAT越えで端末間の経路を作ります。直接接続できない時は中継経路が使われるため、「自宅のIPv4ポートを自由に開けられない」状況でも使える可能性があります。
ただし、会社やホテルのネットワークが外向き通信を厳しく制限している場合、時刻やDNSが壊れている場合、Tailscale側へ認証できない場合は接続できません。「IPoEなら必ず使える」ではなく、着信ポートへの依存を減らせると理解します。
公開する経路は小さくする
サブネットルーターは、LAN内の経路をtailnetへ知らせます。広告する範囲が広いほど、多くの機器へ到達できる可能性が生まれます。

たとえば、NAS一台だけが対象なら 192.168.10.10/32、管理用ネットワーク全体なら 192.168.10.0/24 のように考えます。
ただし、経路の広告だけで最終的な権限管理が完成するわけではありません。Tailscale管理コンソールでの経路承認、tailnetのGrants、転送先サービスの認証、OpenWrt側のファイアウォールがそれぞれ関係します。
POS、決済端末、従業員PC、来訪者Wi-Fiまで同じ経路へ含めないでください。店舗機器はベンダーの保守条件も先に確認します。
直接インストールとサブネットルーターを使い分ける

NASや管理用PCがTailscaleに対応しているなら、直接インストールするほうが構成を理解しやすくなります。接続先はTailscale端末として個別に見え、ポリシーでも端末単位に扱えます。
カメラ、録画機、プリンターなどへTailscaleを入れられない場合は、LN6001-JPや別の常時稼働端末をサブネットルーターにします。外出先端末からの通信を、そのゲートウェイがLANへ転送します。
サブネットルーターでは既定でSNATが使われるため、LAN内機器からは接続元がゲートウェイに見える場合があります。最初は既定のまま使い、監査ログで元の接続元IPが必要な時だけ、ルーティングとファイアウォールを含めて再設計します。
LN6001-JPへVPN Assistantを入れる
LN6001-JPでは、Linksys公式サポートがVPN Assistantモジュールを案内しています。一般的なOpenWrt用パッケージを手当たり次第に追加せず、製品向けに案内されたモジュールと手順を使います。

Linksys公式サポートからLN6001-JP用のVPN Assistantをダウンロードする
LuCIの System → Software を開く
Update lists を実行し、エラーがないことを確認する
Upload Package から公式の .ipk を選ぶ
内容を確認してインストールする
完了後にルーターを再起動する
Services → VPN Assistant が表示されることを確認する
ダウンロード元、対象機種、ファームウェアの対応条件を確認します。古い手元ファイルを流用せず、導入時点の公式ページを見てください。
対象はメーカー提供のOpenWrtベースのOS(ver. 1.2.0.15)です。VPN Assistantと tailscale version の版を別々に記録し、操作は利用中モジュールの公式手順へ合わせます。以下のGrants例は設計例で、全項目を実機再検証した結果ではありません。
Tailscaleへ登録する
VPN AssistantのTailscaleタブで、まずサービスの有効化だけを行います。

Services → VPN Assistant → Tailscale を開く
Enable Tailscale Service を有効にする
表示された認証URLを、自分の管理用ブラウザで開く
使用するtailnetとアカウントを確認して登録する
LuCIへ戻り、必要な完了操作を行う
Tailscale管理コンソールでLN6001-JPがオンラインか確認する
公式手順では、有効化直後にバックグラウンドで接続を数回試すため、安定するまで数分待つよう案内されています。認証URLや認証キーを、チャット、記事、スクリーンショットで共有しないでください。
最初は Advertise as Exit Node を有効にしません。LN6001-JPと外出先端末がtailnet上で見えることを確認してから、必要な機能を一つずつ足します。
サブネットルートは管理側と接続元の両方で確認する

サブネットルートを使うため、管理側では次の三つを確認します。
サブネットルーターが経路を広告する
Tailscale管理コンソールで、その経路を承認する
Grantsで、利用者や端末から宛先への通信を許可する
加えて、接続元クライアントがサブネット経路を受け入れている必要があります。特にLinuxクライアントは経路の受け入れを明示的に設定する必要があるため、Tailscale公式のOS別手順を確認します。これは接続元端末の確認で、LN6001-JP側の経路広告とは別です。
VPN Assistantのバージョンによって、サブネット経路の入力欄や表示は変わる可能性があります。入力欄がある場合は、対象ネットワークを指定して保存し、その後Tailscale管理コンソールで承認します。入力欄がない場合は、一般的なOpenWrt向けコマンドをそのまま混ぜず、利用中モジュールの公式手順を確認するか、Tailscaleを正式にサポートするNASや常時稼働端末をサブネットルーターにします。
Exit NodeはLANアクセスとは別の機能

サブネットルーターは、NASやカメラがある特定のプライベートネットワークへの経路を提供します。
Exit Nodeは、外出先端末の一般的なインターネット通信を、自宅や店舗の回線から出す機能です。既定ルート 0.0.0.0/0 と ::/0 に相当する通信を扱うため、LANへ入るだけの用途には不要です。
Exit Nodeを使うには、端末側で広告し、管理コンソールで許可し、利用するクライアント側でも明示的に選びます。利用中は、通信速度、拠点回線の上り帯域、障害時の影響、DNS、外出先のローカルLANへ接続できるかを確認します。
Grantsで「接続できる」を狭くする
TailscaleのGrantsは、送信元 src、宛先 dst、許可する通信 ip などでアクセスを定義します。外部保守会社を招待する場合も、管理者と同じ権限を渡さず、終了後に削除する範囲を決めておきます。

考え方の例です。
{
"groups": {
"group:home-admin": ["your-account@example.com"]
},
"grants": [
{
"src": ["group:home-admin"],
"dst": ["192.168.10.10"],
"ip": ["tcp:443"]
}
]
}
これは「管理者グループからNASのHTTPSへ」という形を示す例です。実際には自分のアカウント、宛先IP、サービスのポートへ置き換え、ポリシーのテストとレビューを行います。
狭いGrantを足しただけで、既存の広い許可は消えません。 Grantsと従来のACLは同じポリシー内に共存できます。全端末・全ポートを許可するルールが残っていないか、ファイル全体を確認してください。編集前のポリシーを保存し、管理用端末の必要な通信を保ちながら、許可した接続と拒否したい接続を両方テストします。
Grantsに加え、接続先サービスのアカウント・多要素認証も使います。
紛失端末はtailnetから止める
VPNの利点は、入口を端末単位で止められることです。スマートフォンやノートPCを紛失した時の手順を先に決めます。

Tailscale管理コンソールで対象端末を確認する
端末を無効化または削除する
OS側の遠隔ロック・消去を実行する
重要サービスのセッションと認証情報を確認する
不審な接続や設定変更の記録を確認する
端末名に利用者と用途を入れ、最後に使った時刻を確認できるようにします。退職者、機種変更済み端末、テスト端末を残し続けないでください。
サブネットルーターやExit Nodeのような常時稼働端末では、鍵期限と再認証の扱いも運用項目にします。タグ付き端末は鍵期限の既定動作が通常端末と異なるため、導入時点のTailscale公式資料を確認します。
外から本当に接続を試す
設定後は、管理LANの内側ではなく、スマートフォンの携帯回線など外部から確認します。

外出先端末がtailnetへ参加できるか
LN6001-JPまたは直接導入した端末のTailscale IPへ届くか
サブネット経由なら、承認した宛先IPへ届くか
許可したHTTPSやSSHだけが使えるか
許可していないNAS管理、カメラ、他セグメントへ届かないか
成功だけでなく、拒否されるべき通信も試します。LuCIへ接続できる端末は、特に少なくします。
設計変更で届きすぎる状態になったら、該当する経路承認やアクセス許可を戻し、外出先端末から確認し直します。修正のために一時的な全許可を残さないようにします。LuCIへ戻れない場合の入口は、022の有線LANからの復旧で先に用意しておきます。
LN6001-JPで読み取り確認する
問題が起きた時は、設定を重ねる前に状態を確認します。
tailscale version
tailscale status
tailscale ip -4
ip addr show tailscale0
ip route show
uci show firewall
logread | grep -Ei 'tailscale|tailscaled|vpn' | tail -n 120
確認するのは、サービスが動いているか、認証済みか、Tailscale IPがあるか、目的の経路があるか、ファイアウォールが拒否していないかです。
端末名、Tailscale IP、アカウント、拠点名がログに含まれる場合があります。公開記事やサポート依頼では必要な範囲だけ残し、個人情報とネットワーク情報を伏せます。
つながらない時は順番を戻る

LN6001-JPが管理コンソールへ出ない
ルーターの時刻、DNS、インターネット接続、Tailscaleの認証状態を確認します。VPN Assistant有効化直後は数分待ち、認証URLが期限切れなら新しいURLで登録します。
LN6001-JPは見えるがNASへ届かない
NASへTailscaleを直接入れたのか、サブネットルーターを使うのかを確認します。後者なら、経路広告、管理コンソールの承認、Grants、接続元の経路受け入れ、NASのIPとファイアウォールを順に見ます。
IPでは届くが名前で届かない
通信経路ではなくDNSの問題です。最初はIPで確認し、MagicDNSや内部DNS、split DNSは接続後に整えます。
Exit Nodeを選ぶとインターネットへ出られない
Exit Nodeの許可、クライアント側の選択、拠点回線、DNS、デフォルト経路を確認します。一度Exit Nodeを解除し、通常のTailscale接続とサブネット経路が動くかを分けます。
運用メモを一枚持つ

tailnetの管理者と予備管理者
LN6001-JP・NAS・管理PCの端末名と担当者
広告・承認したサブネット経路
Grantsで許可した利用者、宛先、ポート
Exit Nodeの有無
鍵期限、再認証、紛失時の手順
最終接続テスト日と次回確認日
月に一度でも、不要端末、退職者、テスト用経路、使っていないExit Nodeを確認すると、tailnetが「誰でもどこへでも入れる網」になるのを防げます。
次に読むなら
WireGuardとTailscaleの入口を比較する: ポート開放の前にVPNを考える|WireGuardとTailscaleで外から安全に入る
firewall zoneを整理する: GuestからNASを見せない|firewall zoneを部屋分けで理解する