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 →
Ceci est une ancienne révision du document !
Nota :
Contributeurs, les sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
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.
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
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.
adduser --disabled-password lxcuser-test
–disabled-password
n'est pas obligatoire, elle permet simplement de s'assurer que la connexion par mot de passe est impossible via ssh.
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.
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
brctl addbr lxcbr0
On autorise l'utilisateur lxcuser-test à connecter une interface ethernet virtuelle au port (vous pouvez augmenter ce nombre selon vos besoins, fichier à créer) :
lxcuser-test veth lxcbr0 1
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.
Le code à faire en tant qu'utilisateur est à faire en tant que lxcuser-test
.
lxc.network.type = veth lxc.network.link = lxcbr0 lxc.network.flags = up # À compléter pour définir une adresse mac #lxc.network.hwaddr = 00:16:3e:xx:xx:xx lxc.id_map = u 0 624288 65536 lxc.id_map = g 0 624288 65536
Remplacer 624288 sur les deux dernières lignes par les valeurs du premier sous-uid/gid alloué à votre utilisateur.
Dans [code=root]