Wie blockiere ich Docker-Ports mit einer Firewall von außerhalb des Hosts, ohne das Docker-Routing innerhalb des Hosts zu beeinträchtigen?

6

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

adapt-dev
quelle
Könnten Sie ein netstat -anund iptables -Lvom Host bereitstellen, während der Docker ausgeführt wird?
Paul

Antworten:

7

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

adapt-dev
quelle