TL; DR: Wireguard を VPS にインストールし、OpenWRT 上のホーム ルーターから VPS に接続し、携帯電話からホーム サブネットにアクセスします。
個人のインフラストラクチャをホーム サーバー上に置いている場合、または自宅に多数の IP 制御デバイスがある場合は、職場、バス、電車、地下鉄からそれらのデバイスにアクセスできるようにしたいと考えるでしょう。 ほとんどの場合、同様のタスクでは IP がプロバイダーから購入され、その後各サービスのポートが外部に転送されます。
代わりに、自宅 LAN にアクセスできる VPN を設定しました。 このソリューションの利点:
- 透明:どんな状況でもアットホームな感じがします。
- 緩和: 設定すればあとは忘れ、各ポートの転送について考える必要はありません。
- Цена: 私はすでに VPS を持っています。このようなタスクの場合、最新の VPN はリソースの点でほぼ無料です。
- セキュリティ: 目立ったものは何もありません。パスワードなしで MongoDB をそのままにしておくことができ、誰もあなたのデータを盗むことはありません。
いつものように、欠点もあります。 まず、サーバー側も含めて、各クライアントを個別に構成する必要があります。 サービスにアクセスするデバイスが多数ある場合、不便になることがあります。 次に、同じ範囲の LAN が職場にある可能性があります。この問題を解決する必要があります。
我々は、必要があります。
- VPS (私の場合は Debian 10)。
- OpenWRTルーター。
- 電話番号。
- テスト用の Web サービスを備えたホーム サーバー。
- まっすぐな腕。
私が使用する VPN テクノロジーは Wireguard です。 このソリューションにも長所と短所がありますが、それらについては説明しません。 VPN にはサブネットを使用します 192.168.99.0/24
、そして私の家では 192.168.0.0/24
.
VPS構成
運が良ければ、月額 30 ルーブルの最も悲惨な VPS であっても、ビジネスには十分です。
クリーンなマシン上で root としてサーバー上のすべての操作を実行します。必要に応じて、`sudo` を追加し、手順を調整します。
Wireguard を安定版に組み込む時間がなかったので、「apt edit-sources」を実行し、ファイルの末尾に XNUMX 行でバックポートを追加しました。
deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main
パッケージは通常の方法でインストールされます。 apt update && apt install wireguard
.
次に、キーペアを生成します。 wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public
。 回路に参加しているデバイスごとに、この操作をさらに XNUMX 回繰り返します。 別のデバイスのキー ファイルへのパスを変更し、秘密キーのセキュリティを忘れないでください。
次に、構成を準備します。 ファイルへ /etc/wireguard/wg0.conf
設定が配置されます:
[Interface]
Address = 192.168.99.1/24
ListenPort = 57953
PrivateKey = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=
[Peer] # OpenWRT
PublicKey = 36MMksSoKVsPYv9eyWUKPGMkEs3HS+8yIUqMV8F+JGw=
AllowedIPs = 192.168.99.2/32,192.168.0.0/24
[Peer] # Smartphone
PublicKey = /vMiDxeUHqs40BbMfusB6fZhd+i5CIPHnfirr5m3TTI=
AllowedIPs = 192.168.99.3/32
セクションで [Interface]
マシン自体の設定が表示され、 [Peer]
— 接続する人のための設定。 で AllowedIPs
カンマで区切って、対応するピアにルーティングされるサブネットを指定します。 このため、VPN サブネット内の「クライアント」デバイスのピアにはマスクが必要です。 /32
、その他すべてはサーバーによってルーティングされます。 ホーム ネットワークは OpenWRT 経由でルーティングされるため、 AllowedIPs
対応するピアのホーム サブネットを追加します。 で PrivateKey
и PublicKey
VPS 用に生成された秘密キーとピアの公開キーをそれに応じて分解します。
VPS 上で残っているのは、インターフェイスを起動して自動実行に追加するコマンドを実行することだけです。 systemctl enable --now wg-quick@wg0
。 現在の接続状況はコマンドで確認できます。 wg
.
OpenWRT 構成
この段階で必要なものはすべて、luci モジュール (OpenWRT Web インターフェイス) にあります。 ログインして、「システム」メニューの「ソフトウェア」タブを開きます。 OpenWRT はマシンにキャッシュを保存しないため、緑色の [リストの更新] ボタンをクリックして、利用可能なパッケージのリストを更新する必要があります。 完成したらフィルターに打ち込みます luci-app-wireguard
そして、美しい依存関係ツリーが表示されたウィンドウを見て、このパッケージをインストールします。
「ネットワーク」メニューで「インターフェース」を選択し、既存のインターフェースのリストの下にある緑色の「新しいインターフェースの追加」ボタンをクリックします。 名前を入力した後(また、 wg0
私の場合)、WireGuard VPN プロトコルを選択すると、XNUMX つのタブのある設定フォームが開きます。
[全般設定] タブで、OpenWRT 用に用意された秘密キーと IP アドレス、およびサブネットを入力する必要があります。
[ファイアウォール設定] タブで、インターフェイスをローカル ネットワークに接続します。 これにより、VPN からの接続がローカル エリアに自由に入るようになります。
[ピア] タブで唯一のボタンをクリックし、更新された形式で VPS サーバー データ (公開キー、許可された IP) を入力します (VPN サブネット全体をサーバーにルーティングする必要があります)。 [エンドポイント ホスト] と [エンドポイント ポート] に、ListenPort ディレクティブで前に指定したポートを持つ VPS の IP アドレスをそれぞれ入力します。 作成するルートの [ルート許可 IP] を確認します。 また、Persistent Keep Alive を必ず入力してください。そうしないと、VPS が NAT の背後にある場合、VPS からルーターへのトンネルが切断されます。
この後、設定を保存し、インターフェイスのリストが表示されたページで [保存して適用] をクリックします。 必要に応じて、[再起動] ボタンを使用してインターフェイスを明示的に起動します。
スマートフォンのセットアップ
Wireguard クライアントが必要になります。これは次の場所で入手できます。
携帯電話からの大胆なスクリーンショット
隅にあるフロッピー ディスクをクリックして電源を入れます...
仕上げ
これで、ホームモニタリングにアクセスしたり、ルーター設定を変更したり、IP レベルであらゆる操作を実行できるようになります。
ローカルエリアのスクリーンショット
出所: habr.com