MDM : Headwind sur Docker
Sommaire
Mise en pratique du bloc B3.3 : déployer un serveur MDM, enrôler un terminal Android et appliquer une politique.
1. Objectif du TP
Déployer Headwind MDM dans des conteneurs Docker sur une VM Linux, créer un terminal Android émulé, l'enrôler en mode géré, puis appliquer et vérifier des restrictions.
2. Déployer le serveur
# Docker et Docker Compose
sudo apt update
sudo apt install -y docker.io docker-compose git
sudo systemctl enable --now docker
# Dépôt officiel
git clone https://github.com/h-mdm/hmdm-docker.git
cd hmdm-docker
Configurer ensuite le fichier .env (nom de domaine ou adresse IP, mot de passe de la base,
protocole) puis ajuster le mappage de ports dans docker-compose.yaml :
ports:
- 80:8080
sudo docker-compose up -d
sudo docker-compose ps
sudo docker-compose logs -f
La console web devient accessible sur l'adresse de la VM.
Le TP fonctionne en HTTP pour éviter la gestion d'un certificat. En entreprise, cette configuration serait une faute : les identifiants d'enrôlement, les politiques et l'inventaire du parc circuleraient en clair. On déploie un certificat et l'on force HTTPS.
3. Terminal de test
- Installer Android Studio sur le poste physique.
- Créer un émulateur (AVD) — choisir une image sans services Google, qui autorise l'attribution du device owner.
- Installer l'APK Headwind Launcher sur l'émulateur, par glisser-déposer ou via
adb install.
4. Le mode device owner
adb devices
adb shell dpm set-device-owner com.hmdm.launcher/.AdminReceiver
Sans device owner, l'agent MDM n'est qu'une application ordinaire : l'utilisateur peut la désinstaller, lui retirer ses autorisations, ignorer ses politiques. Le mode géré lui confère des privilèges d'administration du terminal :
- installation et désinstallation silencieuses d'applications ;
- politiques de verrouillage et de chiffrement non contournables ;
- mode kiosque (restriction à une liste d'applications) ;
- protection contre la désinstallation de l'agent lui-même.
Contrainte : le device owner ne peut être attribué que sur un terminal neuf ou réinitialisé, avant l'ajout d'un compte utilisateur. C'est une garantie de sécurité (on ne prend pas le contrôle d'un terminal déjà en service), mais aussi la source d'erreur la plus fréquente du TP.
Enrôlement
Côté console web : créer l'appareil avec un identifiant, l'affecter à un groupe et à une configuration. Côté émulateur : lancer Headwind Launcher, saisir l'adresse du serveur puis l'identifiant. Le terminal remonte ensuite dans l'inventaire avec son état de conformité.
5. Sécuriser l'accès admin
- Remplacer immédiatement les identifiants par défaut de la console.
- Créer des comptes nominatifs pour chaque administrateur (imputabilité) plutôt qu'un compte partagé.
- Appliquer le RBAC : un profil « support » qui consulte l'inventaire n'a pas besoin de pouvoir déclencher un effacement à distance.
- Restreindre l'accès à la console au réseau d'administration.
- Journaliser les actions sensibles (wipe, changement de configuration) et sauvegarder la base du serveur MDM.