I6ptablesルールはDockerコンテナアクセスインターフェイスをブロックします。

I6ptablesルールはDockerコンテナアクセスインターフェイスをブロックします。

コンテキスト:

  • 複数のドッカーコンテナがすべてのインターフェイスを受信します。
  • wg0IPv6 アドレスを使用した wireguard インターフェイス
  • 最終的に、NFSはwg0クライアントにファイルサービスを提供します。

質問:

後でクライアントはwg0これらのコンテナにアクセスできます。私はこれを避け、このインターフェイスの背後にあるホストにアクセスするドッカーコンテナを避けたいと思います。

これをフィルタリングする最も簡単な方法は、DockerコンテナとWireguardインターフェイスの間でパケットをドロップすることです。ただし、次のルールは機能しません。

iptables -I DOCKER-USER -i wg0 -j DROP

最初にこの質問を書いた時はなぜそうなのかよく分からなかったのに分かってみるとwg0IPv6アドレスだけを使っていてruleを使うべきだがそこにはチェーンがないip6tablesようです。DOCKER-USER


関連質問:これ無効な入力チェーンが使用されました。それ本質的に同じ質問ですが、変更したくないapache-mesosは特定の方法で定式化されました。


考慮すべき追加の状況とソリューション

  • どうやらファイアウォール問題のようですが、iptableルールが機能しない理由を知りたいです。
  • nftablesこの除外ルールは、または他のBPFツールを使用して指定できます。文法が気になります。
  • 名前空間が機能する可能性があります。まだ多くの問題がありますが、単純化のためにこれを避けることは賢明であり、wg-quickはそれをサポートしていません。また、これがNFSと対話するかどうかはわかりません。
  • WireguardホストでIP範囲をブロックしてみることができます。これはより複雑でメンテナンスが難しく見えます。
  • コンテナサービスは特定のIPを受信できます。柔軟性が低下し、メンテナンスがより困難になります。

ベストアンサー1

おすすめ記事