Einige der Dienste, die wir auf unseren Servern mit Docker ausführen, versuchen, eine Verbindung zu privaten IP-Adressen herzustellen (10.0.0.0/8, 192.0.0.0/16, 172.16.0.0/12 , 100.64.0.0/10).Ausgehende Verbindungen zu privaten IPs von Docker-Containern blockieren
Dieses Verhalten ist normal, aber unser Serveranbieter erkennt diesen Datenverkehr und sendet uns Warnungen.
Wir möchten nur den ausgehenden Verkehr stoppen, nicht die eingehenden mit iptables.
Dies ist unsere aktuelle Setup:
-A OUTPUT -d 192.168.0.0/16 -m owner --uid-owner `id -u dockeruser` -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -d 100.64.0.0/10 -m owner --uid-owner `id -u dockeruser` -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -d 172.16.0.0/12 -m owner --uid-owner `id -u dockeruser` -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -d 10.0.0.0/8 -m owner --uid-owner `id -u dockeruser` -j REJECT --reject-with icmp-port-unreachable
aber dies scheint nicht zu funktionieren, weil Docker die folgenden Regeln erstellt:
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-ISOLATION all -- anywhere anywhere
DOCKER all -- anywhere anywhere
Für die Leistungen:
Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:1234
ACCEPT tcp -- anywhere 172.17.0.4 tcp dpt:1234
Schließlich:
Chain DOCKER-ISOLATION (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Jede Rückmeldung wird geschätzt.
Ich bin kein Iptables-Experte, aber Sie können verhindern, dass Docker Ihre iptables ändert, indem Sie 'iptables = false 'als Flag an den Daemon übergeben, wenn Sie ihn starten. – johnharris85
Danke für den Rat, aber wir wollen, dass Docker seine eigenen Firewall-Regeln hinzufügt –
Alles oder nichts atm afaik. – johnharris85