u08154711
Goto Top

Fragen zu NPM Docker Installation

Hallo,

Ich habe ein paar kleine Fragen zur NPM Installation auf Ubuntu 22.0.4 LTS SERVER.
Hab es nach Anleitung auf der NPM Seite als Stack mit Portainer installiert, aber so richtig laufen tut es noch nicht.

Fragen:
1. Muss ich für jeden Proxy Host, den ich im NPM anlege, z.B. test.domain.de, auch in der DNS Verwaltung der Domain Domain.de eine Subdomain anlegen?

2. Aktuell habe ich die Ports wie in der Anleitung exposed: 80, 443, 81. Das NPM Interface möchte ich nicht öffentlich zugänglich machen. Einfache Idee war, den Port bei der Putty Verbindung zu tunneln. Somit Zugriff auf Port 81 nur bei SSH Verbindung möglich. D.h. ich kann diesen Port 81 komplett aus dem Stack rausnehmen oder?

3. Wie kann ich denn den Containern fixe IPs verpassen, damit die sich nicht bei jedem Neustart ändern und die Firewall Regeln nicht mehr passen? Beim Wireguard Server, der ein eigenes Docker Netz hat, ging es einfach einzutragen. Container im Netz Bridge verweigern das. Gibt's ne andere Lösung?
Hintergund:,Aufgrund des UFW Docker Problems nutze ich das TOOL UFW Docker was auch funktioniert, aber wenn sich die Container IP ändert funktionieren eben die Regeln nicht mehr.

4.Jeder Container, den ich über NPM erreichen will muss in des NPM Docker Netzwerk, richtig? Also zusätzlich zu dem Netz, das in dem er selbst schon war?
Richte ich dann in den Proxy Hosts die IP ein, oder den Containernamen? Wenn IP, dann die aus dem NMP Netz oder die aus dem ursprünglichen Netz?

Ich weiß viele Fragen.
Trotzdem Danke

Content-ID: 42010191581

Url: https://administrator.de/contentid/42010191581

Printed on: November 5, 2024 at 17:11 o'clock

Dani
Dani May 07, 2024 at 17:24:28 (UTC)
Goto Top
Moin,
1. Muss ich für jeden Proxy Host, den ich im NPM anlege, z.B. test.domain.de, auch in der DNS Verwaltung der Domain Domain.de eine Subdomain anlegen?
Ja, am Besten als CNAME Eintrag, welcher auf den FQDN des NPM zeigt.

2. Aktuell habe ich die Ports wie in der Anleitung exposed: 80, 443, 81. Das NPM Interface möchte ich nicht öffentlich zugänglich machen.
Die Verwendung einer Access List des NPM ist keine Option für dich?

3. Wie kann ich denn den Containern fixe IPs verpassen, damit die sich nicht bei jedem Neustart ändern und die Firewall Regeln nicht mehr passen?
In dem du vor du den Container startest, das jeweilige Netzwerk mit Subnetz manuell anlegst. Die Zuweisung erfolgt dann an Hand des Namens des Netzwerk in der YML Datei des Containers.

4.Jeder Container, den ich über NPM erreichen will muss in des NPM Docker Netzwerk, richtig?
Ja und nein. Hängt davon, ob der Container hinter NPM selbst ins Internet muss oder nicht. Wenn dieser nicht ins Internet oder mit einem anderen Container sprechen muss, ist kein dediziertes Netzwerk erforderlich.


Gruß,
Dani
U08154711
U08154711 May 07, 2024 at 18:41:54 (UTC)
Goto Top
@Dani
Vielen Dank.
1. Verstanden

2. Doch ist es, mache ich bei Teilen meiner Homepage mit .htaccess quasi ja auch. Geplant ist dann auch 2FA nicht Authelia. Aber erst mal so alles zunächst laufen bringen...

3.Versteh ich nicht. Die feste IP in den Stack mit rein oder das yaml oder den Dockerbefehl?

4. Was wärs denn ein Beispiel für einen Container der nichts ins WWW muss? Ne Datenbank?
Dani
Dani May 07, 2024 at 19:11:41 (UTC)
Goto Top
Moin,
4. Was wärs denn ein Beispiel für einen Container der nichts ins WWW muss? Ne Datenbank?
Webserver, Datenbank, etc. das hängt schlussendlich vom Container bzw. den Zweck ab. Da gibt es keine Faustformel.

Geplant ist dann auch 2FA nicht Authelia.
Du meinst sicherlich mit und nicht nicht.

3.Versteh ich nicht. Die feste IP in den Stack mit rein oder das yaml oder den Dockerbefehl?
https://docs.docker.com/network/network-tutorial-standalone/
https://www.baeldung.com/ops/docker-assign-static-ip-container

Unabhängig davon bräuchte doch nur der NPM eine fixe IP. Weil die Container sprichst du über den NPM mit deren Namen an.


Gruß,
Dani
U08154711
U08154711 May 07, 2024 at 19:20:03 (UTC)
Goto Top
Zitat von @Dani:

Moin,
4. Was wärs denn ein Beispiel für einen Container der nichts ins WWW muss? Ne Datenbank?
Webserver, Datenbank, etc. das hängt schlussendlich vom Container bzw. den Zweck ab. Da gibt es keine Faustformel.

Geplant ist dann auch 2FA nicht Authelia.
Du meinst sicherlich mit und nicht nicht.

Tippfehler.

Unabhängig davon bräuchte doch nur der NPM eine fixe IP. Weil die Container sprichst du über den NPM mit deren Namen an.


Stimmt, solange Sie nicht mit dem NPM verbunden sind stehen sie mit Ihrem Namen und IP in den Firewall Regeln. Danach steht da ja nur der NPM drin...

Muss ich alles mal testen.
U08154711
U08154711 May 07, 2024 at 21:30:34 (UTC)
Goto Top
Ich bekomme trotzdem nur 502 Bad Gateway
Dani
Dani May 09, 2024 at 07:39:41 (UTC)
Goto Top
Moin,
Stimmt, solange Sie nicht mit dem NPM verbunden sind stehen sie mit Ihrem Namen und IP in den Firewall Regeln.
das hast du mich jetzt abgehängt...

Ich bekomme trotzdem nur 502 Bad Gateway
Was hast du jetzt ausprobiert? Wer kommuniziert mit wem und was geht nicht?


Gruß,
Dani
U08154711
U08154711 May 12, 2024 at 20:12:44 (UTC)
Goto Top
Bin noch nicht weiter dazu gekommen. Muss ich die Tage probieren
U08154711
U08154711 Jul 22, 2024 at 08:25:29 (UTC)
Goto Top
Sorry leider erst jetzt im Urlaub dazu gekommen weiterzumachen…

So richtig läuft mein NPM Setup noch nicht (auf Ubuntu 22.0.4 LTS):.
Ich schreib mal kurz was ich bisher verstanden und gemacht habe.

Durchgeführt:
- jewiligen Subdomains für den NPM angelegt => Zeigen auf Server, funktioniert

- Portainer Agent auf dem Server installiert, wird über meine Portainer Instanz auf meinem Heimnetz Raspi gesteuert. Dazu in der UFW Port 9001 tcp auf dem Server für den Portainer Agent Container freigegeben => funktioniert

- NPM Container installiert => läuft

- Zum Test noch Heimdall Container installiert => läuft

- Neues Netzwerk "NPM-Network" eingerichtet und sowohl den NPM als auch Heimdall da hinzugefügt. Aus den Netzen, in denen die beiden Container vorher waren, habe ich sie entfertn. Sind jetzt jeweils nur noch in "NPM-Network". => So korrekt?

- Proxy hosts in NPM für Heimdall und für NPM eingerichtet und jeweils SSL Zertifikate dazu => funktioniert

- UNter "Access Lists" einen User samt PW vergeben und auf beiden Proxy Hosts aktiviert => Funktioniert 1a für Heimdall, wenn ich die NPM Domain aufrufe kann ich die Zugangsdaten gemäß Access List eingeben, komme auf die Loginseite von NPM, kann mich aber nicht einloggen (Zugangsdaten korrekt, eingesetzt aus Keepass, selbe wie für Heimdall) => Ideen woran das liegen kann?

- Die NPM Login Seite ist aber nach wie vor unter IP:81 zu erreichen. => Sollte doch durch u.g. Maßnahmen nicht mehr sein, oder?

Grundsätzliche Fragen:
- Irgendwo hab ich gelesen, in meinem Fall Raspi Portainer und Server Portainer würden auch über Port 8000 kommunizieren? Hab ich nicht freigegeben, läuft trotzdem. Benötigt?

- Auf dem Server läuft kein Webserver. D.h. es würde reichen, wenn ich dort in er UFW Port 80 & 443 TCP für den NPM Container und das NPM-Network freigebe. Generelle Freigabe von 80 & 443 ist nciht mehr nötig => Hab ich das so richtig verstanden?

- habe gelesen, man braucht keine Ports mehr exposen. Aktuell sieht das so aus. D.h. ich würde Portainer interne und externe Ports löschen, so dass da gar nix mehr steht?
img_4644


- Wenn ich nun die Ports entferne und ein anderer Container lauscht auch intern auf z.B. Port 80? Wird da dann doch die Einstellung im NPM http => Containername => Port 80 geregelt, oder gibt es dann Fehler.

Wäre super, wenn Ihr mal schauen könntet, ob ich richtig liege bzw. wo der fehler leigt.

Danke
Dani
Dani Jul 22, 2024 at 16:00:31 (UTC)
Goto Top
Moin,
- UNter "Access Lists" einen User samt PW vergeben und auf beiden Proxy Hosts aktiviert => Funktioniert 1a für Heimdall, wenn ich die NPM Domain aufrufe kann ich die Zugangsdaten gemäß Access List eingeben, komme auf die Loginseite von NPM, kann mich aber nicht einloggen (Zugangsdaten korrekt, eingesetzt aus Keepass, selbe wie für Heimdall) => Ideen woran das liegen kann?
wenn du die ACL entfernst, funktioniert der Login?

Die NPM Login Seite ist aber nach wie vor unter IP:81 zu erreichen. => Sollte doch durch u.g. Maßnahmen nicht mehr sein, oder?
Ne, wieso? Sperr doch einfach den Port 81 in der lokalen Firewall. So wie das alle anderen auch machen.

Irgendwo hab ich gelesen, in meinem Fall Raspi Portainer und Server Portainer würden auch über Port 8000 kommunizieren?
Wo hast du das gelesen?

Auf dem Server läuft kein Webserver. D.h. es würde reichen, wenn ich dort in er UFW Port 80 & 443 TCP für den NPM Container und das NPM-Network freigebe. Generelle Freigabe von 80 & 443 ist nciht mehr nötig => Hab ich das so richtig verstanden?
Für ein NPM Network kannst du keine Ports freigeben. Du kannst Ports für den Container (in deinem Fall NPM) freigeben. Was du mit "generelle Freigabe" meinst erschließt sich mir nicht.

Wenn ich nun die Ports entferne und ein anderer Container lauscht auch intern auf z.B. Port 80? Wird da dann doch die Einstellung im NPM http => Containername => Port 80 geregelt, oder gibt es dann Fehler.
Probieren geht über studieren.


Gruß,
Dani
U08154711
U08154711 Jul 22, 2024 updated at 22:09:51 (UTC)
Goto Top
@Dani
Zitat von @Dani:

wenn du die ACL entfernst, funktioniert der Login?

Ja, dann funktioniert es.


Ne, wieso? Sperr doch einfach den Port 81 in der lokalen Firewall. So wie das alle anderen auch machen.

Hab ich, siehe hier:
screenshot 2024-07-22 225149

Irgendwo hab ich gelesen, in meinem Fall Raspi Portainer und Server Portainer würden auch über Port 8000 kommunizieren?
Wo hast du das gelesen?

z.B. hier:
[https://forum.netcup.de/administration-eines-server-vserver/vserver-server-kvm-server/14651-portainer-aus-dem-internet-abschotten/]
Post #9

Auf dem Server läuft kein Webserver. D.h. es würde reichen, wenn ich dort in er UFW Port 80 & 443 TCP für den NPM Container und das NPM-Network freigebe. Generelle Freigabe von 80 & 443 ist nciht mehr nötig => Hab ich das so richtig verstanden?
Für ein NPM Network kannst du keine Ports freigeben. Du kannst Ports für den Container (in deinem Fall NPM) freigeben. Was du mit "generelle Freigabe" meinst erschließt sich mir nicht.

Sorry meinte nicht NPM Network sondern den NPM Container .
Mit "genereller Freigabe" meinte ich die generelle Freigabe von Port 80 & 443, also nicht nur für den NPM Container.
Dani
Dani Jul 23, 2024 at 20:06:46 (UTC)
Goto Top
Moin,
Hab ich, siehe hier:
ich sehe da eine Allow Regel für Port 81. Indem Zusammenhang beschäftige dich mit Thema ufw-docker.

Ja, dann funktioniert es.
Warum sicherst du den Login von NPM mit einer ACL, wenn das Passwort gleich ist?!
Steht, wenn du den Fehlerfall reproduziert hast, etwas im Log des NPM?

Mit "genereller Freigabe" meinte ich die generelle Freigabe von Port 80 & 443, also nicht nur für den NPM Container.
Kannst du machen. Was auf Port 80 und 443 "lauscht" hängt davon ab, was du konfigurierst. In dem Fall mappst du so zusagen den NPM dagegen. Was anderes macht doch auch keinen Sinn?!


Gruß,
Dani
U08154711
U08154711 Jul 23, 2024 updated at 22:01:16 (UTC)
Goto Top
@Dani

Zitat von @Dani:

Moin,
Hab ich, siehe hier:
ich sehe da eine Allow Regel für Port 81. Indem Zusammenhang beschäftige dich mit Thema ufw-docker.

Ok, anscheinend Denkfehler auf meiner Seite. Nochmal kurz, ob das nun so richtig ist.
- Ich brauche nur Port 80 & 443 für den NPM
- Für die Container, für die ich in NPM einen Proxy Host angelegt habe, brauche ich keine weiteren Firewall Regeln (das scheint das Problem gewesen zu sein)
- Für Container, die nicht über den NPM laufen, wie der Wiregaurd in meinem Screenshot, mache ich weiter die UFW-Docker Regeln

Habs ich so richtig verstanden?
Dani
Dani Aug 03, 2024 at 08:46:38 (UTC)
Goto Top
Moin,
Ich brauche nur Port 80 & 443 für den NPM
wenn du zuvor für das Management UI für NPM, welche auf Port 81 läuft eine ProxyHost angelegt hast. Anderenfalls sperrst du dich ja aus.

Für die Container, für die ich in NPM einen Proxy Host angelegt habe, brauche ich keine weiteren Firewall Regeln (das scheint das Problem gewesen zu sein)
Richtig. Weil die Kommunikation zwischen NPM und dem Container stattfindet.

Für Container, die nicht über den NPM laufen, wie der Wiregaurd in meinem Screenshot, mache ich weiter die UFW-Docker Regeln
Die beschriebene Problematik tritt immer auf, wenn UFW und Container zum Einsatz kommen, welche aus dem Internet erreichbar sind (Port veröffentlicht).


Gruß,
Dani