Docker : configurer l’accès distant sur le port 2376

Dans ce tutoriel, nous allons voir comment configurer l’accès distant au daemon Docker en utilisant le port 2376, qui va vous permettre de gérer vos conteneurs à distance ou encore des les superviser.

Il existe deux ports pour permettre l’accès distant :

  • 2375 qui n’est pas sécurisé que cela soit au niveau des flux ou encore de l’accès
  • 2376 qui est sécurisé en utilisant TLS et qui utilise un jeu de certificat pour sécurisé l’accès

Dans les deux cas, il n’y a pas d’authentification par utilisation d’un compte et d’un mot de passe, seule l’utilisation du port 2376 permet de sécurisé l’accès en utilisant un jeu de certificat.

Ayant pas mal de manipulation à faire, j’ai écris deux scripts qui va permettre de réaliser les actions facilement.

La première étape va être de générer les certificats pour la connexion TLS entre le serveur Docker et le client que vous souhaitez connecter.

Dans un dossier créé un fichier openssl.cnf dont voici le contenu :

Modifier les lignes 15 et 16 pour les faire correspondre à votre serveur Docker.

Maintenant dans le même dossier que où vous avez créé le fichier openssl.cnf créer le fichier generate-certificate.sh.

Exécuter le script : sudo bash generate-certificate.sh

Les certificats sont maintenant générés, on va passer à la configuration de daemon Docker.

Pour cela, il va falloir éditer ou créer le fichier daemon.json que doit se trouver dans le dossier /etc/docker/.

sudo nano /etc/docker/daemon.json

Dans le fichier ajouter le contenu suivant :

Ici on configure Docker pour écouter sur le port 2376 et on lui indique l’emplacement des certificats.

Pour finir, nous devons modifier les paramètres de démarrage du service Docker, pour cela nous allons utiliser un override.conf afin de modifier la configuration. Là aussi pour simplifier la configuration voici le script :

Exécuter le script qui va créer le fichier override.conf pour le service Docker et recharger les daemon et redémarrer Docker.

sudo bash docker-tls-override.sh

La configuration Docker est terminé.

En fonction des clients que vous allez utiliser, vous allez devoir récupérer les certificats clients dans /etc/docker/certs/client.

Vous pouvez retrouver les fichiers ici : https://git.rdr-it.com/root/docker-tls-config/

Romain Drouche
Architecte Système | MCSE: Core Infrastructure
Expert en infrastructures IT avec plus de 15 ans d’expérience sur le terrain. Actuellement Chef de projet Systèmes et Réseaux et Référent SSI (Sécurité des Systèmes d’Information), je mets mon expertise au service de la fiabilité et de la sécurité des environnements technologiques.

Laisser un commentaire