Heimserver - Docker-Container & Sicherheit

Begonnen von Norbert, 11.07.2025, 20:52

Vorheriges Thema - Nächstes Thema

Norbert

Ja ich weis, ich mach' mich langsam unbeliebt  :P
Dachte nur ich bring' mal nen bisschen Schwung hier ins Forum  8)

Nun gut, zum nachdenken gebracht hat mich mein eigener Thread Lesezeichen–Manager (Bookmark-Manager), wo ich zwar noch auf keinen grünen Zweig gekommen bin, mir aber dennoch Gedanken zur Sicherheit von Docker-Container mache, falls ich in Zukunft doch mal etwas finden sollte was Internetzugriff benötigt.

Mich würde halt interessieren ob und wie ihr eure Container noch zusätzlich absichert.

Mein Netzwerk sieht wie folgt aus:
Internet -> FritzBox -> Hardware-Firewall (ipfire) -> Switch -> LAN-Client's

Mein "Heimserver" ist ein kleiner Mini-Computer von Zotac (Zbox).
Auf diesen ist Debian 12 und u.a. Docker + Portainer installiert.
Als Container sind momentan paperless-ngx, immich, Linkding (zum testen) -> alles über Portainer + docker-compose

Da ich diesem "Heimserver" via ipfire komplett vom Internet getrennt habe (nur temporär freigegeben zwecks Updates), hab ich mir um Sicherheit keine weiteren Gedanken gemacht.

Falls ich allerdings doch mal ein Service benötige der Interzugriff braucht, befragte ich halt Suchmaschinen und eine KI was es denn da so schönes gibt.

Als erstes bin ich über diese Seite gestolpert:
Vorsicht bei Experimenten mit Docker im Internet

Da in sämtlichen docker-compose Dateien immer nur bspw.
ports:
      - 9090:9090
angegeben ist, kann ich obiges bestätigen (den Abschnitt mit 0.0.0.0 usw.)

Vorgeschlagen wird dann die Host-IP mit anzugegeben, also:
ports:
      - 127.0.0.1:9090:9090
Damit kann allerdings nur der Host selber, in meinem Falle also nur der Heimserver selbst auf den Dienst drauf zugreifen (da dieser ja der localhost ist), andere LAN-Clients halt nicht mehr.

Gut, dann also die IP des Heimservers eintragen (Beispielhaft):
ports:
      - 192.168.100.10:9090:9090
Das würde soweit funktionieren.
Ob das sinnig ist???

Als nächstes befragte ich eine KI -> duck.ai - Claude 3.5 Modell.
Dort wurde u.a. folgendes vorgeschlagen:

1. Container-Isolation
networks:
  isolated_network:
    driver: bridge

2. Benutzer-Rechte
user: 1000:1000  # Nicht-Root-User
3. Sicherheits-Optionen
security_opt:
  - no-new-privileges:true

4. Secrets Management
-> Keine Passwörter in docker-compose.yml
secrets:
      - db_password
   
secrets:
  db_password:
    file: ./db_password.txt

Als Beispiel hab ich hier paperless-ngx, wo in der docker-compose ADMIN-USER und ADMIN-PASSWORD sowie der SECRET_KEY in Klartext eingetragen ist.
Bei anderen sind diese Daten wiederum in der .env eingetragen.

Zusätzlich könnte man auf dem Heimserver die ufw installieren und entprechende Regeln setzen.

Ja ja, die Pro's unter euch schlagen jetzt die Hände über'n Kopp zusammen ::)   
Aber, bin ja noch lernfähig  ;D 

Finde es schade das in den vielen Tutorial's im Netz und auch auf YT so gut wie gar nicht darauf eingegangen wird, nur konfiguriert das es läuft.
Man also explizit danach suchen muss.

Für Anfänger (wie mich) kann das wohl mal ins Auge geh'n wenn die Docker-Dienste Internetzugriff haben, oder schiebe ich zu viel Paranoia?

Achja, falls es nicht so rüberkam:
Die Dienste sollen NICHT von außen erreichbar sein. Es sollen keine Ports geöffnet werden.
Nur ausgehender Traffic.

Tealk

Sorry ich sehe das Problem nicht mit dem 0.0.0.0 Proxy. Wen du den Port des Containers Veröffentlichst willst du doch das man von überall drauf zugreifen kann?

Ansonsten musst du auf der Fritzbox und/oder ipfire ein Portforwarding einrichten damit man vom WAN auf deinen Dienst kommt.

Norbert

Zitat von: Tealk am 01.08.2025, 20:20Sorry ich sehe das Problem nicht mit dem 0.0.0.0 Proxy. Wen du den Port des Containers Veröffentlichst willst du doch das man von überall drauf zugreifen kann?

Ansonsten musst du auf der Fritzbox und/oder ipfire ein Portforwarding einrichten damit man vom WAN auf deinen Dienst kommt.

Ok, ich habe mich wohl missverständlich ausgedrückt was ich eigentlich will, mein Fail.
Ich versuch's mal einfacher:

- Es sollen KEINE Container in dem Sinne veröffentlicht werden, wo von außen drauf 
  zugegriffen werden kann -> alles soll sich nur im Heimnetz abspielen
- Ich habe halt bedenken Container den Zugriff auf's Internet zu gewähren
-> Beispiel Linkding/Linkwarden -> diese holen sich die Website-Daten aus'm Netz
-> Beispiel Jellyfin -> Die Filmdaten werden ebenfalls aus'm Netz gezogen
...
usw.

Also alles nur ausgehender Traffic.

Evtl. mach' ich mir da auch zu viele Gedanken ???  :P

Tealk

Zitat von: Norbert am 02.08.2025, 14:36alles soll sich nur im Heimnetz abspielen
Tut es doch, dafür hast du ja die Firewal's