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_netfilter
sysctlを有効にしますnet.bridge.bridge-nf-call-iptables = 1
。
これにより、レイヤ2ブリッジトラフィックをiptablesファイアウォールで保護できます。しかし、iptablesIPv4パケットのみを処理し、br_netfilter
IPv4タイプのイーサネットフレームをパケットに変換してフィルタリングできるようにします。
下の画像には、一般的な緑色のフィールド(IPv4ルーティング)の代わりに、青いフィールド(イーサネットブリッジ)内の緑色のボックス(IPv4フィルタリング)があります。
競合が発生する可能性があるため、同じシステムで他のネットワークツールで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
は次のように置き換えることができ、-I
DockerとUFWの設定によって正しいチェーンが選択されていません。
iptables -A choosetherightchain -m physdev --physdev-is-bridged -j ACCEPT
しかし、UFWとの統合は、UFWをUFWだけでなく低レベルのストレートハイブリッドにし始めるでしょう。iptablesルールとUFWルール。
また、同じ質問でこのQ / Aを参照してください。ここで私はそれを組み合わせる方法に答えました。nftables一般的な状態を維持しようとしている間:nftablesホワイトリストドッカー