コンテキスト:
- 複数のドッカーコンテナがすべてのインターフェイスを受信します。
wg0
IPv6 アドレスを使用した wireguard インターフェイス- 最終的に、NFSは
wg0
クライアントにファイルサービスを提供します。
質問:
後でクライアントはwg0
これらのコンテナにアクセスできます。私はこれを避け、このインターフェイスの背後にあるホストにアクセスするドッカーコンテナを避けたいと思います。
これをフィルタリングする最も簡単な方法は、DockerコンテナとWireguardインターフェイスの間でパケットをドロップすることです。ただし、次のルールは機能しません。
iptables -I DOCKER-USER -i wg0 -j DROP
最初にこの質問を書いた時はなぜそうなのかよく分からなかったのに分かってみるとwg0
IPv6アドレスだけを使っていてruleを使うべきだがそこにはチェーンがないip6tables
ようです。DOCKER-USER
関連質問:これ無効な入力チェーンが使用されました。それ本質的に同じ質問ですが、変更したくないapache-mesosは特定の方法で定式化されました。
考慮すべき追加の状況とソリューション
- どうやらファイアウォール問題のようですが、iptableルールが機能しない理由を知りたいです。
nftables
この除外ルールは、または他のBPFツールを使用して指定できます。文法が気になります。- 名前空間が機能する可能性があります。まだ多くの問題がありますが、単純化のためにこれを避けることは賢明であり、wg-quickはそれをサポートしていません。また、これがNFSと対話するかどうかはわかりません。
- WireguardホストでIP範囲をブロックしてみることができます。これはより複雑でメンテナンスが難しく見えます。
- コンテナサービスは特定のIPを受信できます。柔軟性が低下し、メンテナンスがより困難になります。