📋 Contexte et problématique

Dans le cadre du projet NYM-IT, l'infrastructure héberge plusieurs services métiers (Active Directory, Stormshield, supervision Zabbix, ticketing GLPI…). Cependant, aucun outil de partage de fichiers et de collaboration n'était disponible pour les utilisateurs. L'entreprise avait le choix entre une solution SaaS (Google Drive, OneDrive) ou un déploiement auto-hébergé afin de garder la maîtrise totale des données.

Le choix s'est porté sur Nextcloud, solution open-source de référence, déployée en bare-metal sur Debian 13 pour garantir les performances et l'indépendance vis-à-vis des fournisseurs cloud tiers. L'intégration avec Keycloak SSO (via SAML 2.0) permet une authentification centralisée à partir de l'Active Directory NYM-IT.

🎯 Objectif principal

Fournir aux 8 utilisateurs de NYM-IT une plateforme de stockage, de collaboration documentaire (édition Office en ligne avec Collabora CODE) et de messagerie instantanée (Nextcloud Talk), entièrement intégrée au SSO Keycloak existant.

🎓 Compétences BTS SIO mobilisées

Mettre à disposition un service informatique

Déploiement bare-metal Nextcloud sur Debian 13, configuration Apache, MySQL et PHP

Sécuriser les équipements et usages

fail2ban anti-brute-force, HTTPS, SSO SAML via Keycloak, fallback admin local

Gérer le patrimoine informatique

Structure de groupes et de dossiers partagés, gestion des droits par service

Assurer la continuité de service

Sauvegardes UrBackup + script rsync/mysqldump avec maintenance mode Nextcloud

Exploiter et superviser

Commandes occ, logs Nextcloud, diagnostics PHP/base de données

Travailler en mode projet

Documentation technique E6, déploiement par étapes, intégration dans NYM-IT

🛠️ Périmètre technique

☁️

Nextcloud

Plateforme de cloud collaboratif self-hosted, déploiement bare-metal (hors Docker)

🐧

Debian 13 — VM dédiée

IP fixe : 192.168.1.205 — serveur dédié dans l'infrastructure NYM-IT

🗄️

MySQL

Base de données relationnelle pour Nextcloud, performances optimisées

📝

Collabora CODE 25.04.9.4

Édition Office en ligne (OOXML), intégrée en mode natif dans Nextcloud

💬

Nextcloud Talk

Messagerie instantanée et visioconférence WebRTC intégrée, 9 participants

🔑

SAML 2.0 via Keycloak

SSO intégré — authentification fédérée depuis l'Active Directory NYM-IT.local

⚙️ Étapes de déploiement

1

Installation bare-metal sur Debian 13

Nextcloud est déployé directement sur une VM Debian 13 dédiée (IP : 192.168.1.205) sans Docker, pour des raisons de performances et de simplicité de gestion. La pile LAMP (Apache, MySQL, PHP) est installée et configurée manuellement. Le fichier config.php est personnalisé avec les trusted_domains de l'infrastructure et le paramètre richdocuments.verify_certificate = false pour l'intégration Collabora en réseau interne.

2

Gestion des utilisateurs et des groupes

8 utilisateurs sont créés et organisés en groupes reflétant la structure de NYM-IT :

  • nymit-all — tous les utilisateurs (accès aux Documents Publics)
  • grp-si — équipe Systèmes & Infrastructures
  • grp-compta — équipe Comptabilité
  • grp-RH — équipe Ressources Humaines
  • admin — administrateurs Nextcloud

La gestion des droits est affinée via l'application Group Folders : chaque groupe dispose d'un dossier partagé dédié (Documents Publics, SI, Comptabilité, RH) avec des permissions de lecture/écriture/partage ajustées par groupe.

3

Nextcloud Office — Collabora CODE

L'application Nextcloud Office est installée et connectée à une instance Collabora CODE 25.04.9.4 hébergée dans l'infrastructure NYM-IT. Le mode d'édition est configuré en mode intégré avec le format OOXML (.docx, .xlsx, .pptx) comme format par défaut, garantissant la compatibilité avec la suite Microsoft Office utilisée par les équipes. Le certificat auto-signé interne est accepté via richdocuments.verify_certificate = false.

4

Nextcloud Talk — Messagerie et visioconférence

L'application Nextcloud Talk est activée pour la communication interne. Un canal général NYM-IT-Général est créé avec 9 participants. La solution repose sur le protocole WebRTC pour les appels vidéo et la messagerie instantanée, sans dépendance à un service externe. Nextcloud Talk est accessible directement depuis l'interface Nextcloud ou via l'application mobile.

5

Intégration SSO SAML via Keycloak

L'application SSO & SAML authentication est configurée dans Nextcloud pour utiliser Keycloak comme Identity Provider. Les utilisateurs se connectent via l'Active Directory NYM-IT.local (fédéré dans Keycloak via LDAP). L'authentification multi-mode est activée : les comptes locaux (notamment le compte admin) conservent la possibilité de se connecter hors SSO, garantissant un accès de secours en cas de panne Keycloak.

6

Sécurisation — fail2ban

fail2ban est configuré pour protéger Nextcloud contre les tentatives de brute-force. Le filtre surveille les logs Apache et bloque automatiquement les adresses IP après plusieurs tentatives d'authentification échouées. Les paramètres (nombre de tentatives, durée de ban) sont adaptés à l'usage interne de NYM-IT.

📊 Supervision et diagnostics

La supervision de Nextcloud repose sur les commandes occ (outil CLI officiel) et l'analyse des logs situés dans /var/www/nextcloud/data/nextcloud.log.

Commande occ Usage
occ status État général de l'instance Nextcloud
occ check Vérification base de données, cache, PHP
occ user:list Liste des utilisateurs actifs
occ group:list Liste des groupes et membres
occ files:scan --all Resynchronisation de l'index des fichiers
occ maintenance:mode --on/off Activation/désactivation du mode maintenance (sauvegardes)
occ upgrade Application des mises à jour Nextcloud
📋

Logs applicatifs

/var/www/nextcloud/data/nextcloud.log — erreurs PHP, authentifications, accès fichiers

🛡️

Logs fail2ban

Blocages d'IP, tentatives de brute-force, bans actifs

🔔

Tableau de bord admin

Vue d'ensemble via l'interface d'administration Nextcloud : stockage, utilisateurs, apps

💾 Stratégie de sauvegarde

La stratégie de sauvegarde combine deux approches complémentaires pour garantir la récupérabilité de l'instance Nextcloud.

🔄

UrBackup Client

Agent UrBackup installé sur la VM Nextcloud — sauvegardes fichiers et image disque via le serveur UrBackup centralisé NYM-IT

📜

Script rsync + mysqldump

Script automatisé : activation du mode maintenance Nextcloud → export MySQL → rsync des données → désactivation maintenance

# Séquence de sauvegarde cohérente
php /var/www/nextcloud/occ maintenance:mode --on
mysqldump -u nextcloud -p nextcloud > /backup/nextcloud_db_$(date +%F).sql
rsync -av /var/www/nextcloud/data/ /backup/nextcloud_data/
php /var/www/nextcloud/occ maintenance:mode --off

Le mode maintenance garantit la cohérence des données en suspendant les accès utilisateurs pendant la durée de la sauvegarde.

🔧 Incidents rencontrés

NC-01 Moyen

Collabora — erreur de certificat

La connexion entre Nextcloud et Collabora CODE échouait à cause du certificat auto-signé interne. Résolu en ajoutant richdocuments.verify_certificate = false dans config.php.

NC-02 Élevé

SSO SAML — redirection en boucle

Après l'activation du SSO SAML, certains utilisateurs rencontraient une boucle de redirection. Cause : l'URL de callback Nextcloud n'était pas correctement enregistrée dans le client SAML Keycloak. Résolu en vérifiant et corrigeant l'ACS URL dans la configuration du client Keycloak.

NC-03 Faible

Group Folders — droits manquants

Certains utilisateurs nouvellement créés ne voyaient pas les dossiers de groupe auxquels ils appartenaient. Résolu via occ files:scan --all pour forcer la resynchronisation des droits et de l'index.

NC-04 Moyen

Nextcloud Talk — WebRTC bloqué

Les appels vidéo échouaient depuis certains segments réseau en raison du pare-feu Stormshield bloquant les flux UDP/WebRTC. Résolu en ouvrant les ports STUN/TURN nécessaires dans les règles Stormshield.

📊 Résultats obtenus

☁️

Cloud collaboratif

8 utilisateurs avec stockage, partage et édition de fichiers Office en ligne

🔑

SSO intégré

Authentification centralisée via Keycloak + Active Directory NYM-IT.local

💬

Communication interne

Canal Nextcloud Talk NYM-IT-Général, messagerie et visio WebRTC pour 9 participants

🔒

Sécurité renforcée

fail2ban actif, HTTPS, fallback admin local en cas de panne SSO

💾

Sauvegarde cohérente

UrBackup + script rsync/mysqldump avec maintenance mode automatique

📝

Édition Office native

Collabora CODE 25.04.9.4 — format OOXML compatible Microsoft Office

📄 Documents E6 — Réalisation n°2

📁 Fichiers officiels — Nextcloud
📋 Annexe E6 n°2 — Nextcloud PDF
📄 Documentation technique — Nextcloud PDF

Déploiement Nextcloud — NYM-IT

📥 Télécharger le document
← Projet Keycloak Projet Proxmox →