Configurer correctement Docker
Création :
Dans la section précédente, nous avions vu quelques mécanismes existent pour sécuriser docker. Aujourd’hui, je vous propose un billet sur quelques règles d’installation de Docker pour renforcer son fonctionnement.
Créer une partition dédiée pour Docker
Docker utilise par défaut le répertoire /var/lib/docker
pour stocker tous ces
fichiers dont les images. Souvent /var est une partition de petite taille et
vous pourriez rapidement atteindre sa limite de stockage, ce qui rendrait votre
serveur indisponible. Vous devez créer une partition distincte pour Docker.
Contrôle
Remède
Lors de la création du serveur, veillez bien à créer une partition distincte de
taille suffisante pour le point de montage /var/lib/docker
. Si c’est déjà
installé, stoppez Docker, renommer le dossier existant, créer la partition et la
monter. Ensuite déplacer les données de l’ancien répertoire dans le nouveau.
Un exemple avec un second disque vide que je viens de créer sur ma VM :
Désactiver les communications entre conteneur
Il est possible de couper les communications entre les conteneurs qui va isoler
tous les conteneurs par défaut. Si des conteneurs doivent communiquer entre eux,
il faudra l’indiquer explicitement avec l’option --link
de docker ou le paramètre
link
d’un docker compose.
Contrôle
Il suffit de lancer cette commande :
Si ça retourne une ligne, c’est que les communications entre conteneurs sont activées.
Remède
Il suffit d’éditer le fichier /etc/docker/daemon.json
et d’y ajouter "icc": false
.
Activer le support des user namespace
Vu dans mon précédent billet. Les user namespaces permettent de mapper un user du conteneur vers un utilisateur différent sur la machine hôte. Concrètement, à l’intérieur le conteneur pense être root, mais en fait sur la machine hôte l’utilisateur n’est en fait qu’un utilisateur lambda aux droits limités.
Contrôle
Il suffit de contrôler que le user dockremap existe sur le système :
Si aucune ligne n’est retournée, c’est que ce n’est pas activé.
Remède
Il suffit d’éditer le fichier /etc/docker/daemon.json
et d’y ajouter "userns-remap": default
.
Vous pouvez aussi mettre votre username au lieu de default, cela évitera les pb de montage de volumes.
Activation du live restore
Cette option permet à vos conteneurs de continuer à fonctionner même si vous arrêtez le daemon Docker. Cool ça
Activation
Comme précédemment :
Désactiver l’élévation de privilège
Docker possède un mécanisme permettant d’empêcher aux processus fonctionnant à l’intérieur du conteneur d’obtenir de nouveaux privilèges. Cette option n’est pas activée par défaut!
Activation
Comme précédemment :
Activation de l’audit sur les fichiers et répertoires Docker
Je vous conseille d’activer l’audit au niveau du système sur les principaux répertoires Docker. L’audit enregistre toutes les opérations qui affectent les fichiers et répertoires surveillés.
Activation
Il suffit d’ajouter ces lignes au fichier /etc/audit/rules.d/audit.rules
.
Désactivation du userland proxy
Alors là attention, j’ai déjà eu des soucis en désactivant cette fonctionnalité. Donc, je ne la documente pas volontairement.
Source Projet Atomic