メインコンテンツへスキップ
見出し画像

固定IPなしでも家に帰れる|TailscaleでNAS・店舗へ安全に入るVPN設計【OpenWrt集中連載018】

    外出先からNASの資料を開きたい。閉店後の店舗で、録画機や管理用PCの状態を確認したい。でも、固定IPはなく、IPoE回線でポート開放できるかも分からない。

    この記事では、TailscaleでNASや店舗へ入るための経路、アクセス許可、接続確認を進めます。方式選びから始めたい方は013のWireGuard・Tailscale比較へ。複数利用者の権限設計は028で整理できます。

    Tailscaleは、暗号化通信に端末認証やNAT越えを組み合わせたサービスです。直接接続できない条件では中継を使います。アカウント、料金、機能、利用条件も導入時に確認してください。

    今回使っているOpenWrtルーターはこちらです。


    連載目次: LN6001-JPで始めるOpenWrtルーター実践ガイド

    最初に、どこまで入るかを決める

    「VPNを入れる」だけでは、設計は終わりません。先に、外出先から何へ接続するかを一行で書きます。

    外出先からの接続先でTailscaleの構成を選ぶ
    • 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まで同じ経路へ含めないでください。店舗機器はベンダーの保守条件も先に確認します。

    直接インストールとサブネットルーターを使い分ける

    Tailscaleを直接入れる構成とサブネットルーター経由の構成

    NASや管理用PCがTailscaleに対応しているなら、直接インストールするほうが構成を理解しやすくなります。接続先はTailscale端末として個別に見え、ポリシーでも端末単位に扱えます。

    カメラ、録画機、プリンターなどへTailscaleを入れられない場合は、LN6001-JPや別の常時稼働端末をサブネットルーターにします。外出先端末からの通信を、そのゲートウェイがLANへ転送します。

    サブネットルーターでは既定でSNATが使われるため、LAN内機器からは接続元がゲートウェイに見える場合があります。最初は既定のまま使い、監査ログで元の接続元IPが必要な時だけ、ルーティングとファイアウォールを含めて再設計します。

    LN6001-JPへVPN Assistantを入れる

    LN6001-JPでは、Linksys公式サポートがVPN Assistantモジュールを案内しています。一般的なOpenWrt用パッケージを手当たり次第に追加せず、製品向けに案内されたモジュールと手順を使います。

    VPN Assistantを安全に導入する確認項目
    1. Linksys公式サポートからLN6001-JP用のVPN Assistantをダウンロードする

    2. LuCIの System → Software を開く

    3. Update lists を実行し、エラーがないことを確認する

    4. Upload Package から公式の .ipk を選ぶ

    5. 内容を確認してインストールする

    6. 完了後にルーターを再起動する

    7. Services → VPN Assistant が表示されることを確認する

    ダウンロード元、対象機種、ファームウェアの対応条件を確認します。古い手元ファイルを流用せず、導入時点の公式ページを見てください。

    対象はメーカー提供のOpenWrtベースのOS(ver. 1.2.0.15)です。VPN Assistantと tailscale version の版を別々に記録し、操作は利用中モジュールの公式手順へ合わせます。以下のGrants例は設計例で、全項目を実機再検証した結果ではありません。

    Tailscaleへ登録する

    VPN AssistantのTailscaleタブで、まずサービスの有効化だけを行います。

    VPN AssistantからTailscaleへ登録する順序
    1. Services → VPN Assistant → Tailscale を開く

    2. Enable Tailscale Service を有効にする

    3. 表示された認証URLを、自分の管理用ブラウザで開く

    4. 使用するtailnetとアカウントを確認して登録する

    5. LuCIへ戻り、必要な完了操作を行う

    6. Tailscale管理コンソールでLN6001-JPがオンラインか確認する

    公式手順では、有効化直後にバックグラウンドで接続を数回試すため、安定するまで数分待つよう案内されています。認証URLや認証キーを、チャット、記事、スクリーンショットで共有しないでください。

    最初は Advertise as Exit Node を有効にしません。LN6001-JPと外出先端末がtailnet上で見えることを確認してから、必要な機能を一つずつ足します。

    サブネットルートは管理側と接続元の両方で確認する


    画像

    サブネットルートを使うため、管理側では次の三つを確認します。

    1. サブネットルーターが経路を広告する

    2. Tailscale管理コンソールで、その経路を承認する

    3. Grantsで、利用者や端末から宛先への通信を許可する

    加えて、接続元クライアントがサブネット経路を受け入れている必要があります。特にLinuxクライアントは経路の受け入れを明示的に設定する必要があるため、Tailscale公式のOS別手順を確認します。これは接続元端末の確認で、LN6001-JP側の経路広告とは別です。

    VPN Assistantのバージョンによって、サブネット経路の入力欄や表示は変わる可能性があります。入力欄がある場合は、対象ネットワークを指定して保存し、その後Tailscale管理コンソールで承認します。入力欄がない場合は、一般的なOpenWrt向けコマンドをそのまま混ぜず、利用中モジュールの公式手順を確認するか、Tailscaleを正式にサポートするNASや常時稼働端末をサブネットルーターにします。

    Exit NodeはLANアクセスとは別の機能

    サブネットルーターとExit Nodeの役割の違い

    サブネットルーターは、NASやカメラがある特定のプライベートネットワークへの経路を提供します。

    Exit Nodeは、外出先端末の一般的なインターネット通信を、自宅や店舗の回線から出す機能です。既定ルート 0.0.0.0/0 と ::/0 に相当する通信を扱うため、LANへ入るだけの用途には不要です。

    Exit Nodeを使うには、端末側で広告し、管理コンソールで許可し、利用するクライアント側でも明示的に選びます。利用中は、通信速度、拠点回線の上り帯域、障害時の影響、DNS、外出先のローカルLANへ接続できるかを確認します。

    Grantsで「接続できる」を狭くする

    TailscaleのGrantsは、送信元 src、宛先 dst、許可する通信 ip などでアクセスを定義します。外部保守会社を招待する場合も、管理者と同じ権限を渡さず、終了後に削除する範囲を決めておきます。

    Grantsで送信元・宛先・ポートを限定する

    考え方の例です。

    {
      "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端末を紛失した時の対応順
    1. Tailscale管理コンソールで対象端末を確認する

    2. 端末を無効化または削除する

    3. OS側の遠隔ロック・消去を実行する

    4. 重要サービスのセッションと認証情報を確認する

    5. 不審な接続や設定変更の記録を確認する

    端末名に利用者と用途を入れ、最後に使った時刻を確認できるようにします。退職者、機種変更済み端末、テスト端末を残し続けないでください。

    サブネットルーターやExit Nodeのような常時稼働端末では、鍵期限と再認証の扱いも運用項目にします。タグ付き端末は鍵期限の既定動作が通常端末と異なるため、導入時点のTailscale公式資料を確認します。

    外から本当に接続を試す

    設定後は、管理LANの内側ではなく、スマートフォンの携帯回線など外部から確認します。

    Tailscale接続を外部回線から段階的に確認する
    1. 外出先端末がtailnetへ参加できるか

    2. LN6001-JPまたは直接導入した端末のTailscale IPへ届くか

    3. サブネット経由なら、承認した宛先IPへ届くか

    4. 許可したHTTPSやSSHだけが使えるか

    5. 許可していない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、アカウント、拠点名がログに含まれる場合があります。公開記事やサポート依頼では必要な範囲だけ残し、個人情報とネットワーク情報を伏せます。

    つながらない時は順番を戻る

    Tailscaleでつながらない時の確認順

    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接続とサブネット経路が動くかを分けます。

    運用メモを一枚持つ

    Tailscale運用メモに残す項目
    • tailnetの管理者と予備管理者

    • LN6001-JP・NAS・管理PCの端末名と担当者

    • 広告・承認したサブネット経路

    • Grantsで許可した利用者、宛先、ポート

    • Exit Nodeの有無

    • 鍵期限、再認証、紛失時の手順

    • 最終接続テスト日と次回確認日

    月に一度でも、不要端末、退職者、テスト用経路、使っていないExit Nodeを確認すると、tailnetが「誰でもどこへでも入れる網」になるのを防げます。

    次に読むなら

    参考情報

     
     
    外資系テックの仕事と、ネットワーク・AI・動画制作を実際に試す人。日本の仕事を少し便利にする方法を書いています。Linksys / OpenWrt / IPoE / Apple / YouTube tools. 個人の発信です。

    あなたへのおすすめ