私の目標は、パブリックサービスと対話できる他の管理UIを維持しながら、VPSで特定のポートとサービスをパブリックにホストできるソリューションを見つけることです。
これまで私の解決策は、パブリックドッカーポートをホストローカルループバックアドレスにバインドし、SSHトンネルを使用して再接続することです。ここは働いたすぐにポートの競合が発生する可能性があります(そして私のsshコマンドはますます長くなります)。
スプリットトンネリングVPNを使用して多数の管理UIに接続し、リバースプロキシを使用してパブリックトラフィックを特定のDockerポートに転送できる孤立したDockerネットワークを作成したいと思います。理想的には、Dockerコンテナ内でWiregaurdを使用し、Wireguard-UIやFirezoneなどのツールを利用してクライアント構成を簡素化したいと思います。
これを複雑にするのは、Dockerがiptablesと対話する方法です。これを行うための一般的なステップバイステップガイドがある場合は、教えてください。
また、Autheliaなどのいくつかの選択肢も検討しましたが、可能であれば、通常のネットワークを介して設定インターフェイスへのアクセスを許可しないことをお勧めします。
答え1
ついに働く解決策を得ました。明らかに、UFWはまた、異なるネットワーク間でルーティングするときに邪魔になるのが好きです。
解決策:
- VPSに直接WireGuardをインストールして設定します。wiregaurd-ui、VPSのローカルホストにバインドする追加の環境変数を追加します(sshはポートをマイコンピュータに戻します。頻繁に実行する予定はありません)。
- 次のdockerネットワークサブネットに適切な「許可されたIP」フィールドを使用してクライアントを設定します。
- 新しいドッカーネットワークを作成して起動します。ネットワーク多機能ツールネットワークに接続されたコンテナ。ホストにバインドされたポートがありません。組み込みのApacheサーバーと幅広いネットワークテストツールが付属しています。
- IPv4転送が有効になっていることを確認してください仮想プライベートサーバーそして極細糸束(有効化後にVPSを再起動してください)。
ufw route allow in on <wg0> out on <docker bridge interface>
ufwのポート転送と再ロードを許可するUFWルールを設定します。- Multitoolコンテナを実行し、tcpdumpポート80を起動します。ローカルコンピュータでWireguardインターフェイスを起動し、コンテナの内部IPアドレスに接続して接続を確認しました。