🛡️ Sécurité

Activer la 2FA partout : Plesk, SSH, WordPress, Nextcloud

Un mot de passe ne suffit plus. Voici comment activer l'authentification à deux facteurs sur tous les accès sensibles (Plesk, SSH, WordPress, Nextcloud, Mailcow, espace client Datacampus) avec des apps TOTP open source, et comment gérer les recovery codes pour ne pas vous verrouiller dehors.

débutant ⏱ 10 min Mise à jour : 2026-04-24

Un mot de passe seul ne protège plus rien. Phishing, fuites de bases de données, réutilisation de passwords, brute force sur les formulaires d'admin : il suffit d'un fuite pour perdre un site. La 2FA (authentification à deux facteurs) ajoute un code temporaire généré par une app sur votre téléphone. Sans ce code, le password volé ne sert à rien. Cette doc montre comment l'activer sur tous les accès qui touchent à vos sites : Plesk, SSH, WordPress, Nextcloud, Mailcow, espace client Datacampus.

Pourquoi la 2FA, maintenant

  • Phishing : un faux mail « votre quota Plesk est plein » avec un formulaire cloné, et le password part. Sans 2FA, l'attaquant entre directement.
  • Fuites de bases de données : un autre service que vous utilisez se fait pirater, le password est dans un dump public. Si vous le réutilisez quelque part, c'est fini.
  • Brute force : les bots testent en continu admin, administrator, root, wp-admin. Fail2ban aide, mais la 2FA coupe court.
  • Malware navigateur : un keylogger ou une extension compromise capture le password. La 2FA rend ce vol inutile passé 30 secondes.
Le maillon faible fait tomber la chaîne
Si votre Plesk est en 2FA mais que votre FTP, votre WordPress admin ou votre compte GitLab ne l'est pas, un attaquant passera simplement par l'accès le plus faible. La 2FA doit être activée sur tous les comptes qui peuvent toucher aux fichiers du site, à la base, aux DNS ou au registrar.

TOTP, SMS, clé hardware : lequel choisir

  • TOTP (app authenticator) : code à 6 chiffres régénéré toutes les 30 secondes. Gratuit, hors-ligne, universel. C'est la recommandation par défaut.
  • SMS : à éviter. SIM swapping, interception via SS7, dépendance à l'opérateur. À n'utiliser qu'en dernier recours quand rien d'autre n'est disponible.
  • Clé hardware (YubiKey, SoloKey, Nitrokey) : le plus résistant au phishing (WebAuthn/FIDO2), mais demande un périphérique physique et le support côté appli. Idéal pour les comptes les plus critiques (admin Plesk serveur, GitLab, registrar DNS).

Apps TOTP recommandées (open source)

  • Aegis Authenticator — Android, open source, export chiffré des secrets. Référence.
  • Raivo OTP — iOS, open source, sync iCloud chiffrée en option.
  • Bitwarden ou 1Password — si vous avez déjà un gestionnaire de mots de passe, il peut stocker les secrets TOTP à côté du password. Attention : tout dans le même coffre signifie qu'une compromission du coffre donne tout. Acceptable si le coffre a lui-même une 2FA séparée.

À éviter : Google Authenticator (pas d'export des secrets historiquement, lock-in), Authy (fermé, dépendance cloud, a arrêté la version desktop sans prévenir).

1. Plesk

Côté administrateur serveur (si vous avez un VPS/dédié géré)

Sur l'infra Datacampus, l'admin Plesk serveur est géré par l'équipe. Pour les clients VPS qui ont leur propre Plesk, activer la 2FA globale :

  1. Outils & paramètres > Paramètres de sécurité.
  2. Cocher Authentification multifacteur.
  3. À la prochaine connexion, Plesk affiche un QR code à scanner avec Aegis, Raivo ou Bitwarden.
  4. Enregistrer les recovery codes proposés.

Côté client (abonnement Plesk hébergé chez Datacampus)

  1. Connectez-vous à votre espace Plesk.
  2. En haut à droite, cliquez sur votre nom d'utilisateur > Modifier le profil.
  3. Onglet Authentification multifacteur, cochez Activer.
  4. Scannez le QR code avec votre app TOTP.
  5. Saisissez le code à 6 chiffres pour confirmer, puis sauvegardez les recovery codes.
💡
Si vous gérez plusieurs clients
Activez la 2FA sur votre propre compte Plesk d'abord. Puis demandez à chaque client final de l'activer sur le sien. Un compte client compromis peut aussi modifier les fichiers du site.

2. SSH avec Google Authenticator PAM (VPS)

Sur un VPS Debian géré par vos soins, la 2FA SSH se fait via le module PAM libpam-google-authenticator. Ça reste du TOTP standard, compatible Aegis, Raivo, Bitwarden. Le nom « Google » est historique.

⚠️
Gardez une session SSH ouverte pendant la config
Si vous vous déconnectez avant d'avoir validé la config, vous risquez d'être verrouillé dehors. Gardez une session root active dans un autre terminal jusqu'à avoir testé la nouvelle connexion.

Installation

apt update
apt install libpam-google-authenticator

Génération du secret par utilisateur

À lancer en tant que l'utilisateur concerné, pas en root :

google-authenticator

Répondre y à la question « time-based token ». Scanner le QR code avec votre app, noter les emergency scratch codes (les recovery codes), puis répondre y à la plupart des questions suivantes (update du .google_authenticator, rate limiting, interdiction de réutiliser un code).

Config PAM

Éditer /etc/pam.d/sshd, ajouter en tête :

auth required pam_google_authenticator.so nullok

L'option nullok autorise les utilisateurs qui n'ont pas encore configuré la 2FA à se connecter normalement (le temps de migrer tout le monde). À retirer une fois la bascule terminée.

Config sshd

Éditer /etc/ssh/sshd_config :

KbdInteractiveAuthentication yes
ChallengeResponseAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive

La ligne AuthenticationMethods est la plus importante : elle impose clé SSH + code TOTP. Recharger :

systemctl restart ssh

Tester depuis un autre terminal avant de fermer la session ouverte.

3. WordPress

Deux plugins open source solides :

  • Two Factor — maintenu par des membres du core WordPress, simple, TOTP + clés hardware FIDO2. wordpress.org/plugins/two-factor
  • WP 2FA — plus de features (forcer la 2FA par rôle, délai de grâce pour l'activation, recovery codes intégrés). Utile pour les sites multi-utilisateurs.

Procédure

  1. Installer et activer le plugin depuis Extensions > Ajouter.
  2. Aller dans le profil utilisateur (Utilisateurs > votre compte).
  3. Section Two-Factor Options : cocher Time Based One-Time Password (TOTP), scanner le QR, valider.
  4. Générer et stocker les Recovery Codes.
  5. Dans les réglages du plugin (WP 2FA surtout), forcer la 2FA pour tous les rôles administrateur et éditeur.
🔥
Ne forcez pas la 2FA avant d'avoir prévenu les utilisateurs
Si vous cochez « obligatoire immédiatement » sans grâce, les utilisateurs existants sont bloqués à la prochaine connexion. Utilisez toujours un délai de grâce de quelques jours avec notification email.

4. Nextcloud

  1. En tant qu'admin, aller dans Applications > catégorie Sécurité.
  2. Activer Two-Factor TOTP provider et Two-Factor backup codes.
  3. Chaque utilisateur active ensuite la 2FA dans Paramètres personnels > Sécurité > TOTP.
  4. Générer les backup codes dans la même page, les imprimer.
  5. Dans Paramètres administration > Sécurité, vous pouvez forcer la 2FA par groupe (admins, compta, etc.).

5. Mailcow

  1. Connectez-vous à l'interface webmail ou admin Mailcow.
  2. Cliquez sur votre profil utilisateur en haut à droite.
  3. Onglet Security > Two-Factor Authentication.
  4. Choisir TOTP ou WebAuthn (clé hardware), scanner le QR, valider.

Côté admin Mailcow, la 2FA s'active dans le panneau admin > Edit administrator details.

6. Espace client Datacampus et ServiceDesk

L'espace client datacampus.ninja et le ServiceDesk supportent tous les deux la 2FA TOTP. À activer dans votre profil utilisateur. C'est par là que passent vos factures et vos tickets, ne laissez pas cet accès sans 2FA.

7. Les autres comptes à ne pas oublier

La checklist complète des comptes qui peuvent faire tomber votre site :

  • Plesk (admin et client).
  • SSH / SFTP sur le VPS.
  • WordPress admin (tous les comptes, pas juste le vôtre).
  • GitLab / GitHub où est stocké le code du site.
  • Registrar DNS (OVH, Gandi, Cloudflare, etc.) : si un attaquant prend la main sur le DNS, il redirige tout.
  • Cloudflare ou autre CDN/WAF devant le site.
  • Boîte mail associée au compte registrar et aux comptes admin : c'est celle qui reçoit les liens de reset, donc elle doit être la plus protégée.
  • Gestionnaire de mots de passe lui-même (Bitwarden, 1Password).

Recovery codes : la règle d'or

Téléphone perdu, cassé, volé, reset sans backup : sans recovery codes, vous êtes dehors. Les comptes seront à débloquer via procédure support, ce qui prend des jours.

⚠️
Stockez vos recovery codes en double
Imprimez-les sur papier, rangez-les dans un coffre physique (ou un classeur fermé au bureau). En parallèle, stockez-les dans votre gestionnaire de mots de passe, dans une entrée séparée du login concerné. Deux emplacements, deux supports différents.

Si vous les perdez aussi, régénérez-les dès que possible depuis une session authentifiée, et réimprimez. Ce sont des codes à usage unique : une fois utilisés, ils ne valent plus rien.

Récapitulatif

  1. Installer une app TOTP open source (Aegis sur Android, Raivo sur iOS, ou Bitwarden).
  2. Activer la 2FA sur Plesk (admin et client), WordPress, Nextcloud, Mailcow, espace client Datacampus.
  3. Sur VPS, activer la 2FA SSH avec libpam-google-authenticator et AuthenticationMethods publickey,keyboard-interactive.
  4. Ne pas oublier : registrar DNS, GitLab/GitHub, Cloudflare, boîte mail de récupération, gestionnaire de mots de passe.
  5. Imprimer les recovery codes, les stocker en deux endroits distincts.
  6. Forcer la 2FA pour les rôles sensibles (admins WordPress, groupes Nextcloud) avec un délai de grâce.

Un mot de passe volé sans 2FA, c'est un site perdu. Un mot de passe volé avec 2FA, c'est juste un mot de passe à changer. La différence vaut largement les 10 minutes de config.

Pour aller plus loin

Besoin d'aide ?

Cette documentation ne couvre pas votre cas ? Notre support humain est là.