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

2717
adapt-dev

Ich habe einen Docker-Container, der auf einem Host ausgeführt wird, wobei einem Port ein 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, dass Prozesse innerhalb des Hosts eine Verbindung zu 9009 herstellen können.

Ich war ein wenig geschockt, als ich herausfand, dass Docker alle Firewall-Regeln für das Löschen von Paketen vollständig umgeht.

Ich habe auf Centos 7 mit firewalld und iptables versucht, alles außer 80, 443 und 22 zu blockieren. Irgendwie konnte ich immer noch an den Docker-Container (Port 9009) von außerhalb des Host gelangen! Einige Lösungen, die ich gefunden habe, scheinen Routing für Docker völlig durcheinander zu bringen - entweder machen Docker-Container nicht in der Lage, ins Internet zu gelangen, oder was auch immer.

Ist mein Szenario möglich?

Dies scheint die gleiche Frage zu sein: https://security.stackexchange.com/questions/66136/docker-port-forwarding-exposure

6
Könnten Sie vom Host ein "netstat -an" und "iptables -L" bereitstellen, während das Docker läuft? Paul vor 8 Jahren 0

1 Antwort auf die Frage

6
adapt-dev

Anscheinend kann ich meine exponierten Container-Ports nur an localhost binden.

docker run -d -p 127.0.0.1:9009:9009 someserver