Heute ist mir mehr oder weniger zufällig aufgefallen, dass meine Ubuntu-18.04-Container ohne Benutzer-Zuordnung laufen. Der Benutzer “root” innerhalb des Containers entspricht also dem Benutzer “root” außerhalb. Damit fehlt aus meiner Sicht eine wichtige Hürde für Ausbrechmöglichkeiten!
Hier beschreibe ich, wie ich das Problem korrigiere
Sichtung der LXC-Container mit Ubuntu-16.04
Die LXC-Container, die unter Ubuntu-16.04 laufen, haben diese Zuordnungen für Benutzer und Gruppen:
lxc.id_map = u 0 165536 65536
lxc.id_map = g 0 165536 65536
Das bedeutet, dass der Benutzer “root” innerhalb des Containers dem Benutzer “165536” außerhalb des Containers zugeordnet ist. Gleiches gilt für die Gruppe. Dieser Benutzer kann außerhalb des Containers quasi keinerlei Aktionen durchführen!
Anpassung des Basiscontainers
- Bereiche wählen
- User: 100000 – 165535 (Länge: 65536)
- Group: 100000 – 165535 (Länge: 65536)
- /etc/subuid und /etc/subgid erweitern auf dem LXC-Host (auch für “root”, mehrere Zeilen pro UID sind OK)
- LXC-Container stoppen:
lxc-stop -n ubuntu1804-64
- Skript lxc-fuidshift.sh auf den LXC-Host kopieren
- Skript ausführen:
lxc-fuidshift.sh -u 0:100000 -g 0:100000 /var/lib/lxc/ubuntu1804-64
- Konfiguration vom LXC-Container anpassen, Datei /var/lib/lxc/ubuntu1804-64/config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
- LXC-Container starten:
lxc-start -d -n ubuntu1804-64
Anpassung der anderen Container
Ermittlung aller Container ohne Zuordnung:
1 2 |
|
Für die betroffenen Container muß analog zum Basiscontainer vorgegangen werden!
Änderungshistorie
- 2019-04-30: Erste Version