ufw はドッカーコンテナ間の通信をブロックします。

ufw はドッカーコンテナ間の通信をブロックします。

MagentoインスタンスとRedisインスタンスに2つのDockerコンテナを設定しました。現時点では、特定のIPアドレスだけがサイトにアクセスできるようにしたいので、ufwを有効にしていくつかのエントリを追加しました。問題は、MagentoインスタンスがufwサポートRedisインスタンスに接続できないことです。無効にすると、すべてがうまく機能します。これは私のufwエントリです。

--                         ------      ----
7722/tcp                   ALLOW       Anywhere
443/tcp                    ALLOW       <censored>
Anywhere                   ALLOW       172.17.0.0/16
Anywhere                   ALLOW       <censored>
Anywhere                   ALLOW       172.20.0.0/16
Anywhere                   ALLOW       127.0.0.1
6379                       ALLOW       172.20.0.0/16
3306                       ALLOW       172.20.0.0/16
6379                       ALLOW       127.0.0.1
6379                       ALLOW       172.17.0.0/16
6379                       ALLOW       <censored>
6379                       ALLOW       172.20.0.5
6379                       ALLOW       172.20.0.7
Anywhere                   ALLOW       172.20.0.5
Anywhere                   ALLOW       172.20.0.7
Anywhere                   ALLOW       <censored>
Anywhere                   ALLOW       127.0.0.0/8
Anywhere                   ALLOW       172.16.0.0/16
6379/tcp                   ALLOW       Anywhere
7722/tcp (v6)              ALLOW       Anywhere (v6)
6379/tcp (v6)              ALLOW       Anywhere (v6)

Anywhere                   ALLOW OUT   172.17.0.0/16 on docker0

Aug 1 20:35:52 <censored> kernel: [14792.173011] [UFW BLOCK] IN=br-d212b7b554b0 OUT=br-d212b7b554b0 PHYSIN=veth9ca196b PHYSOUT=vethbce3637 MAC=<censored>:14:00:05:08:00 SRC=172.20.0.5 DST=172.20.0.7 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=35267 DF PROTO=TCP SPT=45680 DPT=6379 WINDOW=64240 RES=0x00 SYN URGP=0

どんなアイデアがありますか?

ベストアンサー1

ルストバウ、コードから、ロードしてbr_netfiltersysctlを有効にしますnet.bridge.bridge-nf-call-iptables = 1

これにより、レイヤ2ブリッジトラフィックをiptablesファイアウォールで保護できます。しかし、iptablesIPv4パケットのみを処理し、br_netfilterIPv4タイプのイーサネットフレームをパケットに変換してフィルタリングできるようにします。

下の画像には、一般的な緑色のフィールド(IPv4ルーティング)の代わりに、青いフィールド(イーサネットブリッジ)内の緑色のボックス(IPv4フィルタリング)があります。

一般ネットワークのNetfilterとパケットフロー

競合が発生する可能性があるため、同じシステムで他のネットワークツールでDockerを使用しないことをお勧めします。

そこには多くの副作用が記載されています。http://ebtables.netfilter.org/br_fw_ia/br_fw_ia.html

その中には:7.フレーム/パケットがiptables PREROUTING、FORWARD、およびPOSTROUTINGチェーンを通過する2つの可能な方法

Dockerとの互換性を確保するには、次の推奨事項に従ってください。常にLAN上で独自にトラフィックを有効にします。したがって、OPログを解決するには、次の手順を実行します。

ufw route allow from 172.20.0.0/16 to 172.20.0.0/16

これは通常、ルーティング(配信)が含まれていないため意味がありません。セクション7したがって、追加する必要があります。そして、Dockerが管理するすべてのLANに同じコンテンツを追加する必要があります。それ以外の場合、UFW は Docker が実行する操作を妨げます。もちろん、これらのネットワークは動的であり、UFWが迅速に制限される可能性があるため問題になります。

iptablesこれには特別な一致があります:(physdev実際には状況によって異なりますbr_netfilter-Aは次のように置き換えることができ、-IDockerとUFWの設定によって正しいチェーンが選択されていません。

iptables -A choosetherightchain -m physdev --physdev-is-bridged -j ACCEPT

しかし、UFWとの統合は、UFWをUFWだけでなく低レベルのストレートハイブリッドにし始めるでしょう。iptablesルールとUFWルール。

また、同じ質問でこのQ / Aを参照してください。ここで私はそれを組み合わせる方法に答えました。nftables一般的な状態を維持しようとしている間:nftablesホワイトリストドッカー

おすすめ記事