@applejxd

雑記帳

VPN 設定メモ

目次

VPN の目的

VPN(Virtual Private Network)は、インターネット越しに プライベートネットワークへ安全に接続するための技術。 通信は暗号化され、遠隔地からでもホームネットワークなどにアクセス可能。

動的IPやNAT(Network Address Translation)環境 (例:集合住宅のインターネット契約、WiMAX など)では 外部からの直接接続ができない場合が多いが、 VPNを使えば中継サーバやNAT越え技術を通じて自宅ネットワークにアクセス可能。

そもそもパブリックIPを直接端末に持たせて接続を受ける方法は セキュリティリスクが高く、公開サーバ等の目的がなければ避けるべき。

構築の選択肢(外部からホームネットワークを利用する場合)

L3 接続(IP-VPN)の場合

Tailscale ならサービスにログインしてガイドに従えば設定できる。

L2 接続(広域イーサネット)の場合

以下のように構築:

  1. 静的グローバル IP か DDNS サービスに対応した環境を用意
    • 静的グローバル IP は「さくらのVPS」や「AWS Lightsail」などで対応環境が用意可能
    • DDNS サービスは TP-Link のルータなどで利用可能(固定のドメインとグローバルIPを自動対応)
  2. 対象の環境と 1. の環境を VPN で L2 接続
  3. 接続クライアントは 1. の環境へ VPN 接続・経由して対象環境へアクセス

IPアドレスは国ごとにレンジが決まっていることに注意。 「IPアドレスの割り当て国検索」から検索可能。 各種 Web サイトへのアクセスは(サーバの設置国に関わらず)IPアドレスの割り当て国で判定されることに注意。 (AWS に割り当てられる IP アドレスは全て US 判定?)

OpenVPN

使用方法

TP-Link ルータ & Ubuntu クライアントの場合は次の通り:

  1. TP-Link の設定画面から ovpn ファイルを出力
    • 手順は 「詳細設定」→「VPN サーバ」→「OpenVPN」→「設定ファイル」→「出力」
  2. 必要であれば OneDrive などのクラウドストレージに一時保存
    • Ubuntu 側での設定ファイルダウンロードに使う
  3. Ubuntu の設定で ovpn ファイル読み込み
    • 手順は「ネットワーク」 →「VPN」→ 「+」ボタン押下→「ファイルからインポート」→ ovpn ファイルを選択
  4. クラウドに保存していた設定はセキュリティ強化のため削除する

SoftEther VPN

設定新規構成

やる事

「Softether VPN §10.5 拠点間接続 VPN の構築」 の通り

  1. カスケード接続でリモートの仮想 HUB 同士を Ethernet レベル (L2) 接続
  2. ローカルブリッジ接続で物理 LAN カードと仮想 HUB を Ethernet レベル (L2) 接続

構成

手順

  1. ネットワーク設計を行う・LAN IP アドレスの割当決定(設計例
    • 家庭 LAN 環境のゲートウェイの IP アドレス
    • VPN サーバの IP アドレス (Secure NAT の仮想 NIC) → 「仮想 DHCP サーバのデフォルトゲートウェイ」「DNS サーバ」の IP アドレス
    • VPN ブリッジ用サーバの IP アドレス
  2. VPS サーバ構築(AWS Lightsail を使う場合
  3. VPN ブリッジ用自宅サーバ構築
  4. 自宅 PC にSoftEther VPN Server Managerをインストール
  5. VPN サーバ設定 (from Server Manager)
    • 仮想 HUB 作成 → ブリッジ用とクライアント用で別々のユーザを作成 → SecureNat 有効化(1. で設計したアドレスを指定)
    • 上記仮想 HUB に VPN クライアントと VPN ブリッジ用サーバのユーザを作成 (VPN ブリッジ用サーバは固有証明書認証を推奨)
    • IPsec/L2TP 設定(セキュリティのため必ず事前共有キーは変更)
    • ローカルブリッジ設定(「新しい tap デバイスとのブリッジ接続」)
  6. VPN ブリッジ用サーバを設定 (from Server Manager)
    • 仮想 HUB 作成 → カスケード接続設定 (ホスト名:静的IP, ポート番号:5555, ユーザ認証:クライアント証明書認証)
    • ローカルブリッジ設定 (LANカードへブリッジするため有線接続必須)
  7. 自宅内ネットワークのルータの設定変更
    • 上記 1. に応じてルータのアドレスとDHCPの設定変更

設定移行

Linux の VPN サーバの注意

「Softether VPN §3.6 ローカルブリッジ」によると

Linux オペレーティングシステム内部での制限事項により、VPN 側 (仮想 HUB 側) からローカルブリッジしている LAN カードに割り当てられる IP アドレスに対して通信を行うことはできません。

とある。つまり単純に Linux PC で VPN サーバを稼働すると SSH や HTTP などで接続することができない。その対策として

ローカルブリッジ用の LAN カードを用意して接続し、その LAN カードと既存の LAN カードの両方を物理的に同じセグメントに接続してください

といったことが必要になる。 つまり通常の SSH や HTTP などの通信を行う既存の物理 LAN カードに加えて、VPN を用いた拠点間通信用の仮想 (または物理) LAN カードを用意しなければならない。 この LAN カードの用意は tap デバイスの追加で解決できる。tap デバイスは

Linux 版 VPN Server / VPN Bridge を使用している場合は、ローカルブリッジ先のネットワークデバイスとして、既存の物理的な LAN カードを指定するのではなく、新しい「tap デバイス」を作成して、その tap デバイスに対してブリッジ処理を行うことが可能です。(中略)この機能によって生成された tap デバイスは、仮想 HUB に直接接続した仮想 LAN カードのように振舞います。

とある ように Linux 版 Softether で使用可能な仮想 LAN カードとして扱える。 tap デバイスも netplan の ethernets の一つとして固定 IP を割り振ることが可能で、tap デバイスを介して SSH や HTTP 等での接続が可能。

その他参考リンク

設定参考

シンプルな VPN 設定

リモートデスクトップ