LXC für nextCloud - (un)privilegiert?

Probleme mit Samba, NFS, FTP und Co.
Antworten
buhtz
Beiträge: 1098
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

LXC für nextCloud - (un)privilegiert?

Beitrag von buhtz » 07.03.2021 12:43:43

Ich lese mich gerade in Linux Containers (LXC) ein.

Um zu entscheiden, ob ich einen privilegierten oder unprivilegierten LXC benötige, fehlt es mir leider an Erfahrung, auch wenn ich über die Pros/Cons natürlich schon gelesen habe. Bin mir jedoch weiterhin unsicher über die Konsequenzen einer solchen Entscheidung.

Ich möchte den LXC für eine nextCloud Instanz in einem lokalen Netz nutzen. D.h. der Containter benötigt Zugriff auf das Netzwerk-Interface des Hosts und Zugriff auf das Dateisystem des Hosts.

Welche der Konfigurationsvarianten würden erfahrende LXC Admins hier empfehlen?
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Benutzeravatar
jph
Beiträge: 1042
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: LXC für nextCloud - (un)privilegiert?

Beitrag von jph » 07.03.2021 18:46:38

Typischerweise reicht ein unprivilegierter Container für Webservices wie Nextcloud.

Allerdings schließen sich die Verwendung eines unprivilegierten Containers und der Start über root nicht aus. Das bringt eine vereinfachte Konfiguration sowie den vereinfachten Start beim Booten des Hosts mit sich. Schau mal hier nach: https://linuxcontainers.org/lxc/getting-started/, und dann weiter unten den Abschnitt „Creating unprivileged containers as root“.

Zugriff auf ausgewählte Teile des Host-Dateisystems gibst du in der Containerkonfiguration. Dort mountest du die entsprechenden Verzeichnisse ins Dateisystem des Containers. man lxc.container.conf, Abschnitt lxc.mount.entry.

Achte dabei darauf, dass sich die UID bei unprivilegierten Containern unterscheiden von denen Hosts unterscheiden. root des Container-Betriebssystems mag im Container UID 0 haben, außerhalb des Containers aber die unprivilegierte UID 100000 sein. Auf den Host-Dateisystem schreibt er also Dateien mit UID 100000 und diese UID tauchen auch in der Prozessliste des Host-OS auf.

Du solltest dir beim Einsatz von Container generell Gedanken machen, welche Services du in einem Container betreibst und welche auf dem Blech. Ich betreibe auf dem Blech so wenig wie möglich – dort laufen nur Kerberos, NFS sowie PostgreSQL. Nextcloud funktioniert übrigens prima mit PostgreSQL.

Antworten