firezoneという、VPN(中身はwireguard)制御するOSSのコンテナをローンチする。
作業としては面倒で、AWS/VPNエンドポイント利用した方が楽ではあります。
こちらのがコスト抑えられるのでお試しで構築してみました。
ドメインを必要とするのですが、IPで設定してもいけるのではないかと思います。
ドメインが必須となるので、事前にいずれかのドメインを取得しておく必要があります。
1)以下で作成したdocker環境にログインする
AmazonLinux2023にdockerを入れる - 偏屈エンジニアブログ
2)インスタンスのセキュリティグループに443ポート/tcpでmyIP、80と51820ポート/udpでフルオープンを追加
51280側は、国内IPのみのマネージドプレフィックスに修正したい。
3)以下コマンド実行
bash <(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh) posthog-blocked
- E-mail聞かれるので適当なアドレスを入れる
- インストールパスを聞かれるので、デフォルトから変えるなら入力
- GUIのURLを聞かれるので、ドメインで適当なものを登録する。
EIPつけないと面倒なのでEIP推奨。 - Let’s Encrypt で証明書作るかを聞かれるので、とりあえずYで回答。
自前で組み込んだ方が安全 - FirezoneのFeedback要求のメールしてもいいか聞いてくるので
回答してあげる。 - クラッシュ時のログ出すかを聞いてくるので回答。
ディスクの肥大化いやならYで拒否する - インストールが完了するとログインのパスワードが出るので控えてログインする
4)クライアントとなるスマホにwireguardのアプリをダウンロードする。
Installation - WireGuard
5)defaultのDNS設定をgoogleのDNSに変更する(DNSは機能するやつならなんでもOK)
6)登録ユーザをクリックして、デバイスのAddを実行
7)QRコードが発生するので、スマホのクライアントプログラムを起動して
QRコードをスキャンで撮影
トンネル名を聞かれるので任意の名前を付ける
8)あとはクライアントのトグルをONにして、VPNを張ります。
cmanなどでIPを確認すると、AWS上インスタンスのEIPになります。
ルーティングの制御などはおいおい入れるとして、比較的簡単にVPNの環境を構築できました。
お試しで、AWS環境にある資源をVPN越しに見たいニーズにはあってると思います。