Docker Container - Ports und Firewall

francy_space

Ensign
Registriert
Juni 2020
Beiträge
169
Hallo,

auf meinem VPS-Server habe ich Portainer als Docker-Container aufgesetzt, der als GUI dient. Folgenden Code gab ich dabei ein:

Code:
docker run -d -p 8000:8000 -p 9000:9000 --name portainer \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
    portainer/portainer-ce:2.11.1

Ich habe eine Frage zu den Ports 8000 und 9000. Die Portangabe heißt doch, dass ausgehend vom Container die Ports 8000 und 9000 geöffnet sein müssen, damit Pakete zum VPS übertragen werden können. Beim VPS hingegen müssten auch die beiden Ports geöffnet sein, damit die Paketübertragung von Statten geht.

Port 8000 steht für die Kommunikationsschnittstelle und Port 9000 für das Öffnen der Web-Oberfläche. Im VPS habe ich beide Ports geöffnet und ich konnte Portainer problemlos öffnen. Als ich die Freigabe für Port 8000 von der VPS-Firewall entfernte, merkte ich, dass Portainer immer noch läuft. Müsste es aber nicht zu einer Störung kommen, da ausgehend vom Container zur VPS auf Port 8000 keine Pakete mehr übertragen können?
 
Den Port 8000 brauchst du wohl nur, wenn du die Portainer Instanz als "Edge Agent" nutzen möchtest. In den meisten Setups wird demnach das Weiterleiten des Port 9000 ausreichen.
 
  • Gefällt mir
Reaktionen: francy_space
  • Gefällt mir
Reaktionen: francy_space
Das ist ein Portmapping
Links vom Doppelpunkt Host, rechts Container.
Wenn du also links 65000 stehen hast, dann werden anfragen auf deinem Server auf Port 65000 an den Port 8000 im Container geschickt.
Wenn du den Port in Iptables nach außen hin schließt, dann hat das erstmal keine Auswirkung auf den lokalen / Docker Traffic (je nachdem was du in iptables Regelst
 
  • Gefällt mir
Reaktionen: francy_space
francy_space schrieb:
Port 8000 steht für die Kommunikationsschnittstelle und Port 9000 für das Öffnen der Web-Oberfläche. Im VPS habe ich beide Ports geöffnet und ich konnte Portainer problemlos öffnen. Als ich die Freigabe für Port 8000 von der VPS-Firewall entfernte, merkte ich, dass Portainer immer noch läuft. Müsste es aber nicht zu einer Störung kommen, da ausgehend vom Container zur VPS auf Port 8000 keine Pakete mehr übertragen können?

Docker umgeht teilweise die Firewall, da es eigene Firewall Regeln setzt. Docker und Firewallen ist ein Thema fuer sich...
 
  • Gefällt mir
Reaktionen: francy_space
Richtig, deshalb Docker Ports nicht auf den Host mappen, sondern nur in interne Docker-Netzwerke "exposen" lassen und dann einen ReverseProxy einsetzen, der die SSL-Terminierung übernimmt. Man sollte den Docker Daemon nicht die Firewallregeln des Hosts verändern lassen, das ist ein Developer-Feature für interne Hosts und war so wohl nie gedacht.
 
  • Gefällt mir
Reaktionen: francy_space
Ich habe eine Frage zum Docker-Container NGINX Proxy Manager. Dort gibt es im VPS drei Ports, die ich freigegeben hatte.

Port 81 (= für Weboberfläche)
Port 80 (= für HTTP Zugriff)
Port 443 (= für HTTPS Zugriff)

Im Docker-Container-Netzwerk habe ich auch die drei Ports freigegeben gehabt. Nun habe ich Port 80 und Port 443 aus der Portfreigabe meines VPS-Servers rausgenommen. Ich sehe, dass ich die Weboberfläche vom NGINX Proxy Manager per HTTPS immernoch öffnen kann. Müsste der HTTPS Zugriff nicht gestoppt werden, da keine Pakete von Port 443 meines VPS-Servers zu Port 443 meines Containers gelangen?

Sorry, das hat sich geklärt. In der Tat: Ich kann NGINX per HTTPS-Zugriff nicht mehr öffnen. Ich muss im VPS alle drei Ports immer freischalten. Wie kann man NGINX-als-Anwendung in einem VPS vor Fremdangriffen schützen? Mir wird immer mulmig, wenn ich zuviele Ports auf meinem VPS freischalte.
 
Zuletzt bearbeitet:
francy_space schrieb:
Wie kann man NGINX-als-Anwendung in einem VPS vor Fremdangriffen schützen? Mir wird immer mulmig, wenn ich zuviele Ports auf meinem VPS freischalte.
das webui von NPM kannst du ja auch hinter den Reverse Proxy setzen ... dann hätte sich dein Port 81 dafür erledigt, wenn das die Frage ist ob es dafür eine andere Lösung gäbe ... oder lässt es aus wenn alles eingerichtet ist ... brauchst es ja nicht wenn alles geht.

ich nutze NPM nicht mehr da ich swag bevorzuge, aber hatte das auch mal so am Laufen also webui hinter RP).
 
Zurück
Oben