La sécurité avec Docker – Chapitre final : Le test

Chapitre final : Le test ultime   Docker Bench Security   Vous saurez très vite si vous avez suivi les recommandations de sécurité Docker en utilisant ce petit script qui n’a l’air de rien mais qui en dit long.   git clone https://github.com/docker/docker-bench-security.git cd docker-bench-security ./docker-bench-security.sh   Verdict ? Plus il y a de rouge et plus c’est méchant !   La checklist du SANS :   »

La sécurité avec Docker – Chapitre 4 : Les images et les dépôts

Droits Unix sur les fichiers du conteneur :   Tout comme dans un système Linux/Unix classique, il faut faire attention aux droits sur les fichiers à l’intérieur du conteneur. Quand vous construisez une image à partir d’un Dockerfile, les fichiers copiés de votre répertoire vers votre image sont copiés avec les mêmes droits. Du coup, un fichier trop permissif peut être problématique.   Images maisons :   Ne pas stocker de secrets dans les Dockerfiles ou dans les variables d’environnement. »

La sécurité avec Docker – Chapitre 3 : Les utilisateurs

Chapitre III : Utilisateurs   Docker ne doit pas être contrôlé par root :   Vous devez utiliser un compte standard pour manipuler vos containers et vos images Docker. C’est très simple, il suffit que votre utilisateur appartienne au groupe docker : sudo adduser moi docker docker run ...   Les conteneurs ne doivent pas être lancés par root :   Un conteneur ne doit pas être lancé en tant qu’utilisateur root sauf s’il y a une utilité particulière. »

La sécurité avec Docker – Chapitre 2 : Le réseau

Chapitre II : Réseau   Isoler les réseaux :   Les piles de logiciels ou les différents types de réseaux doivent être isolés dans des réseaux logiques séparés. Créer un réseau par stack logicielle : docker network create <nomdureseau> # Attacher les containers au réseau qui va bien docker network disconnect bridge <leconteneur> docker network connect <nomdureseau> <leconteneur>   Désactiver la communication inter conteneurs (ICC) :   »

La sécurité avec Docker – Chapitre 1 : Le système

Après plusieurs années d’expérience, je pourrais résumer Docker en un outil très utile, facile à prendre en main mais vraiment difficile à maîtriser. Le côté « facilité de déploiement » de départ masque les problèmes de sécurité inhérents à la technologie des containers. Or si Docker était encore pointé du doigt pour ses lacunes sécuritaires il y a quelques années, force est de constater que des efforts ont été faits dans ce domaine si on veut bien se donner la peine de mettre les mains dans le cambouis. »

Réseaux sous Docker : isoler les containers

Quand on veut déployer un container docker, rien de plus simple, un docker run suffit à rendre le container disponible. Mais si vous n’avez pas réfléchi avant à l’architecture réseau, vous faites communiquer vos containers dans le réseau par défaut, ce qui n’est pas forcément une bonne idée d’un point de vue sécurité.   Les trois type de réseau par défaut   Bridge   Par défaut, Docker attache les containers au réseau « bridge » qui a été créé à l’installation de Docker. »

Fingers in the nose : Les containers LXC avec Proxmox

Il y a quelque temps maintenant, j’ai pas mal travaillé sur les containers avec Docker. Finalement j’en ai très peu mis en production faute d’outil d’orchestration justement du type Proxmox. Proxmox ne propose pas des containers Docker mais des containers Linux (LXC). Sur le principe c’est la même chose mais les images ne viennent pas du même fournisseur. Chez Docker ça vient du Docker Hub alors que les containers LXC de Proxmox sont puisés chez Turnkey Linux. »

Un serveur VPN en 5 minutes grâce à Docker

Si vous n’avez encore jamais joué avec OpenVPN et que vous manquez de moustache, il se peut que vous vous y cassiez les dents. La bête est difficile à maîtriser.   Alors, ce que je vous propose dans cet article, c’est d’utiliser l’outil clé en main fourni en container Docker par Kyle Manna.   En pré-requis, vous devez avoir un Docker installé sur votre machine.   Installation et auto-configuration :   »

Une architecture Docker en production

Comme promis, je vous détaille l’architecture que j’ai utilisé pour fournir des containers dans un contexte de TP PHP/MySQL pour des étudiants :   Chaque groupe de travail/étudiant a son container LAMP. En frontend, un reverse proxy Nginx centralise les connexions HTTP(s). En backend, un serveur de base de données MariaDB offre une base par groupe/étudiant.     Les Dockerfiles DB : Je lance juste un container MariaDB et je crée ensuite les BDD à la main via docker exec : »