Ich habe einen Docker-Container auf einem Host mit einem Port, der einem Port auf dem Host zugeordnet ist.
docker run -d -p 9009:9009 someserver
Ich möchte, dass diese Maschine mit Ausnahme von 80, 443 und 22 vom Internet abgeschirmt wird.
Ich möchte jedoch weiterhin, dass Prozesse im Host eine Verbindung zu 9009 herstellen können.
Ich war ein wenig geschockt, als ich herausfand, dass Docker die Firewall-Regeln für das Verwerfen von Paketen offenbar komplett umgeht.
Ich habe versucht , auf CentOS 7 sowohl mit firewalld und iptables alles außer zum Block 80, 443 und 22 Irgendwie war ich noch in der Lage an der Docker Port-mapped Behälter (Port 9009) vom außerhalb des Host! Einige Lösungen, die ich gefunden habe, scheinen das Routing für Docker völlig durcheinander zu bringen - entweder lassen Docker-Container nicht ins Internet gelangen oder was auch immer.
Ist mein Szenario möglich?
Dies scheint die gleiche Frage zu stellen: https://security.stackexchange.com/questions/66136/docker-port-forwarding-exposure
netstat -an
undiptables -L
vom Host bereitstellen, während der Docker ausgeführt wird?Antworten:
Es sieht so aus, als ob ich meine freigelegten Containerports nur an localhost binden kann.
docker run -d -p 127.0.0.1:9009:9009 someserver
quelle