Isolation des conteneurs par namespaces
Cette page indique les étapes supplémentaires nécessaires pour isoler les conteneurs avec les user namespace Linux.
S’assurer que Docker et Cyberwatch sont installés
Créer l’utilisateur
cyberwatch
:sudo useradd --create-home --shell /bin/bash cyberwatch
Éditer le fichier
/etc/subuid
:cyberwatch:231072:65536 cyberwatch:1001:1
La première ligne permet de définir le mappage des user/groups ids dans un user namespace. Cette ligne est généralement ajoutée automatiquement par le système lors de la création de l’utilisateur, mais certains systèmes ne le font pas automatiquement (certaines versions de CentOS par exemple).
Par exemple,
cyberwatch:231072:65536
signifie que l’utilisateurcyberwatch
peut utiliser 65536 user ids à partir de l’id 231072.La ligne
cyberwatch:1001:1
permet de faire en sorte que les fichiers créés parroot
appartiennent à l’utilisateur avec l’id1001
(à remplacer par l’id de l’utilisateurcyberwatch
).Éditer le fichier
/etc/subgid
:cyberwatch:231072:65536 cyberwatch:1001:1
Redémarrer le serveur pour que les modifications soient prises en compte :
sudo reboot
Configurer docker pour activer l’option
userns-remap
:cat >> /etc/docker/daemon.json <<EOL { "userns-remap": "cyberwatch" } EOL
Redémarrer docker :
systemctl restart docker
Troubleshooting
Les problèmes pouvant découler de l’activation de userns-remap
sont généralement liés aux droits sur les volumes.
Il peut être intéressant de consulter les logs du conteneur de base de données afin d’écarter les problèmes de permissions :
sudo cyberwatch logs db