logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Utilisation de LXC en mode utilisateur non-privilégié

Nota :

Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !

Introduction

Si vos conteneurs LXC doivent contenir des serveurs sensibles aux attaques, vous ne voudriez pas qu'un serveur compromis compromette tout le reste du système. Ne pas donner les privilèges super-utilisateur au conteneur permet d'éviter cela.

Installation

Les outils de gestion lxc :

apt-get install lxc cgroup-bin

D'autres outils normalement présents par défaut :

apt-get install libpam-systemd cgroup-bin bridge-utils

Et des outils de débuggage :

apt-get install less

Préparation

Nous allons créer un conteneur Test, qui appartiendra à l'utilisateur lxcuser-test, et accèdera au réseau via le pont lxcbr0. Cette opération sera à répéter pour chaque utilisateur devant pouvoir créer un ou plusieurs conteneurs. C'est la seule partie du tutoriel qui doit nécessairement être effectuée en root.

Création et configuration de l'utilisateur

Création de l'utilisateur

adduser --disabled-password lxcuser-test
L'option –disabled-password n'est pas obligatoire, elle permet simplement de s'assurer que la connexion par mot de passe est impossible via ssh.

Identification d'une plage d'uid/gid libre

cat /etc/subuid

Exemple :

nm-openvpn:100000:65536
pulse:165536:65536
mpd:231072:65536
geoclue:296608:65536
systemd-timesync:362144:65536
systemd-network:427680:65536
systemd-resolve:493216:65536
systemd-bus-proxy:558752:65536

Chaque ligne du fichier commence par un nom d'utilisateur, suivi par un numéro d'uid et d'un nombre d'uid. Par exemple, ici, il faut comprendre que les uid 100000 à 165535 sont des sous-uid dépendant de l'utilisateur nm-openvpn. Voir le man

man subuid

Dans notre exemple, le premier uid de libre est le 558752+65536=624288, donc notre utilisateur utilisera la plage d'uuid 624288 à 689823 (624288+65535). Nous faisons ensuite la même opération pour les gid, en consultant /etc/subgid. Dans notre exemple, on considèrera que le fichier /etc/subgid est identique au fichier /etc/subuid, ce qui est en général le cas.

Affectation des sous-{u,g}id à l'utilisateur

Nous allouons alors les sous-uid et sous-gid à l'utilisateur test via la commande (à modifier en fonction de vos propres /etc/sub{u,g}id !) :

usermod lxcuser-test --add-sub-uids 624288:624288 --add-sub-gids 624288:624288

Création et configuration de l'accès au pont réseau

Création du pont

brctl addbr lxcbr0

Accès

On autorise l'utilisateur lxcuser-test à connecter une interface ethernet virtuelle au port (vous pouvez augmenter ce nombre selon vos besoins, fichier à créer) :

/etc/lxc/lxc-usernet
lxcuser-test veth lxcbr0 1

Création du conteneur

Il existe plusieurs méthodes pour installer une Debian/Ubuntu/Whatever dans un dossier. L'ennui est que la plupart requiert les droits super-utilisateurs pour lancer debootstrap. Ceci-dit, cette opération n'est a priori à faire qu'une fois, et l'alternative n'est pas forcément réjouissante. Nous présentons les deux possibilités les plus intéressantes.

Méthode template download

Méthode root + chown

Dans [code=root]

Utilisation du conteneur

FAQ / Problèmes rencontrés

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/autres/vm/lxc/mode-utilisateur.1449669405.txt.gz · Dernière modification: 09/12/2015 14:56 par captnfab

Pied de page des forums

Propulsé par FluxBB