ConoHaでWireGuard中継サーバーを作った話
もう何番煎じかわかりませんが、備忘録として…
構成
PC -- 中継サーバー(ConoHa) -- 踏み台(RasPi) -- 目的のサーバー
- PCはWindows
- 中継サーバーはConoHa VPS上のUbuntu 22.04
- RasPiを踏み台にして目的のサーバーにアクセスしたい
- PCからは透過的に目的のサーバーのIPアドレスを指定してアクセスする
- VPSは管理用に必要最低限のアクセスのみ許可するよう基盤側のセキュリティグループを設定する
手順
- 前準備
- ConoHaのIPv6を有効にする(必要に応じて)
- ConoHaのセキュリティグループを設定してSSH接続可能なIPアドレスを制限する
- Wireguardをインストールして設定する
- サーバー(ConoHa)
- クライアント(PC)
- 踏み台(RasPi)
- ConoHaのセキュリティグループにWireguardの待ち受けポートを追加する
- API経由でカスタマイズする(ConoHa Netが便利)
- Wireguardで末端同士が通信できるようにする
- sysctl.confを修正してフォワードを有効にしないとクライアント間の通信ができない
- さらにufwでrouteを追加し、TCP/UDPのフォワードを許可する
- sudo ufw route allow in on wg0 out on wg0
- iptablesのFORWARDの追加に相当
- ICMPはデフォルトで許可されているのでpingは通る(これではまった)
- 踏み台の向こう側のネットワークと通信できるようにRasPiにルーティング設定をする
- iptabelsにNATとフォワードの許可設定をする
- FORWARDに追加する許可エントリは-iと-oの両方が必要
- RasPiの電源を引っこ抜いても壊れないようにシステムをRAMディスク化する
- raspi-config nonint enable_overlayfs
-
ubuntuの場合
- overlayrootをインストール
- /etc/overlayroot.local.confを作成し、overlayroot="tmpfs"を記述
- なにかあったときにSDカードを再作成できるようにイメージを作成する
- 上記手順を行う前に、初回起動時にパーティションを拡張しないようにbootフォルダ内の起動時のコマンドを変更しておく
- https://qiita.com/yamato225/items/e42e7e395a99d9dabcbd
参照URL
全体像
IPv6設定
20230316追記
Ubuntu22.04で改めて実行したところ、
下記サイトのRAを有効にする方法ではIPv6アドレスが割り当てられませんでした。
手動でnetplanにアドレスを書いてあげる必要がありました。
https://world.203.jp/blog/post/1175 (RAで対応。20230316現在IPアドレス設定できず)
↓
セキュリティグループの設定用ツール
ルーティング
Overlayfs
カスタムイメージ化