INSTALLATION ET CONFIGURATION DE NEXTCLOUD
Prérequis et préparation de l'environnement
Contexte architectural

Le serveur Nextcloud est positionné en DMZ (192.168.1.11). Cette position permet d'exposer le service vers Internet tout en maintenant une isolation vis-à-vis du VLAN Serveurs. Les communications entre Nextcloud et les autres serveurs (AD, Serveur de fichiers) passent par des règles firewall ciblées sur PFSense.

Composant IP / VLAN Rôle
Serveur Nextcloud 192.168.1.11 (DMZ) Serveur applicatif Nextcloud
Serveur AD/DNS 172.30.10.11 (VLAN Serveurs) Authentification LDAP
Serveur de Fichiers 172.30.10.13 (VLAN Serveurs) Stockage SMB/CIFS
PFSense (x2) Passerelle DMZ/LAN Firewall & routage inter-VLAN
Configuration réseau de la VM

Vérifier la configuration réseau de la VM Nextcloud avant de commencer :

# Vérifier la configuration réseau
ip a

# Vérifier la connectivité vers l'AD (important pour la suite)
ping 172.30.10.11

# Vérifier la connectivité vers le serveur de fichiers
ping 172.30.10.13

Éditer le fichier /etc/network/interfaces si nécessaire :

auto ens18
iface ens18 inet static
    address 192.168.1.11/24
    gateway 192.168.1.254.254
    dns-nameservers 172.30.10.11
    dns-search cbaudiment.fr

Note : Remplacer ens18 par le nom de l'interface réseau réel (vérifié avec 'ip a'). Adapter le gateway à celui de la DMZ.

systemctl restart networking
Mise à jour du système
apt update && apt upgrade -y
apt install -y curl wget gnupg2 lsb-release apt-transport-https ca-certificates
Installation des dépendances

Installation des composants nécessaires au fonctionnement de Nextcloud : serveur web Apache, PHP 8.4 et ses extensions, et le serveur de base de données MariaDB.

Installation d'Apache
apt install -y apache2
systemctl enable apache2
systemctl start apache2
Installation de PHP 8.4

Info : Nextcloud Hub 8 nécessite PHP 8.1 minimum. PHP 8.4 est recommandé sur Debian 12.

apt install -y php8.4 php8.4-cli php8.4-common php8.4-fpm \
  php8.4-mysql php8.4-zip php8.4-gd php8.4-mbstring \
  php8.4-curl php8.4-xml php8.4-bcmath php8.4-intl \
  php8.4-imagick php8.4-ldap php8.4-smbclient \
  php8.4-apcu php8.4-redis libapache2-mod-php8.4

Vérifier la version PHP installée :

php -v
Configuration de PHP

Éditer le fichier /etc/php/8.4/apache2/php.ini avec les valeurs suivantes :

memory_limit = 512M
upload_max_filesize = 10G
post_max_size = 10G
max_execution_time = 300
max_input_time = 300
date.timezone = Europe/Paris
opcache.enable = 1
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1
Installation et configuration de MariaDB
apt install -y mariadb-server
systemctl enable mariadb
systemctl start mariadb
# Sécurisation de MariaDB
mariadb-secure-installation

Note : Lors du mariadb-secure-installation : définir un mot de passe root fort, supprimer les utilisateurs anonymes, désactiver le login root distant, supprimer la base test.

Créer la base de données pour Nextcloud :

mysql -u root -p
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'MotDePasseForce2024!';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Note : Choisir un mot de passe fort et le noter soigneusement. Il sera nécessaire lors de l'installation de Nextcloud.

Installation de Nextcloud
Téléchargement et vérification
cd /tmp
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
wget https://download.nextcloud.com/server/releases/latest.tar.bz2.sha256
# Vérification de l'intégrité du fichier
sha256sum -c latest.tar.bz2.sha256

Info : Le résultat doit afficher 'OK'. Si ce n'est pas le cas, retélécharger l'archive.

Déploiement des fichiers
tar -xjf latest.tar.bz2 -C /var/www/
chown -R www-data:www-data /var/www/nextcloud
chmod -R 755 /var/www/nextcloud
# Créer le répertoire de données en dehors du webroot
mkdir -p /var/nextcloud-data
chown -R www-data:www-data /var/nextcloud-data
chmod 770 /var/nextcloud-data

Info : Stocker les données en dehors du répertoire web (/var/www) est une bonne pratique de sécurité.

Activation des modules Apache
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
a2enmod ssl
systemctl restart apache2
Configuration d'Apache et HTTPS
Obtenir un certificat via l'AD CS (Active Directory Certificate Services)

Puisque l'infrastructure dispose d'un AD CS sur le serveur Windows (172.30.99.11), il est préférable d'utiliser une PKI interne plutôt qu'un certificat auto-signé. Le certificat émis par l'AD CS sera automatiquement approuvé par tous les postes membres du domaine via la GPO, sans avertissement navigateur.

Info : Avant de commencer, s'assurer que la règle firewall PFSense autorise le flux HTTP (port 80) entre le serveur Nextcloud (172.30.99.32) et le serveur AD (172.30.99.11) pour accéder à l'interface certsrv.

Étape 1 — Générer la clé privée et la CSR

La clé privée et la CSR sont générées en une seule commande OpenSSL avec l'option -newkey. Cela garantit leur compatibilité — c'est la méthode recommandée.

Bonne pratique : Toujours générer la clé privée et la CSR ensemble avec -newkey. Les générer séparément peut produire des paires incompatibles difficiles à diagnostiquer.

  • Préparer le répertoire de travail :
    mkdir -p /etc/ssl/nextcloud
    cd /etc/ssl/nextcloud
  • Créer le fichier de configuration openssl.cnf avec les extensions SAN requises :
    printf '[req]\ndistinguished_name = req_distinguished_name\nreq_extensions = v3_req\nprompt = no\n\n[req_distinguished_name]\nC = FR\nST = Auvergne-Rhone-Alpes\nL = Paris\nO = BTS SIO\nCN = nextcloud.cbaudiment.fr\n\n[v3_req]\nkeyUsage = keyEncipherment, digitalSignature\nextendedKeyUsage = serverAuth\nsubjectAltName = @alt_names\n\n[alt_names]\nDNS.1 = nextcloud.cbaudiment.fr\nIP.1 = 172.30.99.32\n' > /etc/ssl/nextcloud/openssl.cnf
  • Vérifier le fichier créé :
    cat /etc/ssl/nextcloud/openssl.cnf
  • Le fichier doit contenir exactement :
    [req]
    distinguished_name = req_distinguished_name
    req_extensions = v3_req
    prompt = no
    
    [req_distinguished_name]
    C = FR
    ST = Auvergne-Rhone-Alpes
    L = Paris
    O = BTS SIO
    CN = nextcloud.cbaudiment.fr
    
    [v3_req]
    keyUsage = keyEncipherment, digitalSignature
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1 = nextcloud.cbaudiment.fr
    IP.1 = 192.168.1.11

    Note : Si le fichier ne s'affiche pas correctement ou contient des caracteres etranges, le supprimer (rm openssl.cnf) et recommencer avec la commande printf ci-dessus. Ne pas utiliser nano pour creer ce fichier — les problemes de copier-coller peuvent corrompre la syntaxe.

  • Générer la clé privée et la CSR en une seule commande :
    openssl req -new -newkey rsa:2048 -nodes \
        -keyout /etc/ssl/nextcloud/nextcloud.key \
        -out /etc/ssl/nextcloud/nextcloud.csr \
        -config /etc/ssl/nextcloud/openssl.cnf
  • Vérifier que les deux fichiers ont bien été créés :
    ls -la /etc/ssl/nextcloud/
    # Doit afficher nextcloud.key et nextcloud.csr avec une taille > 0

Erreur connue — fichier .cnf corrompu : Si openssl retourne 'Error on line 2... missing equal sign', le fichier openssl.cnf contient des caractères invisibles. Supprimer le fichier et le recréer avec la commande printf. Ne jamais utiliser nano ou un copier-coller direct pour créer ce fichier.

Étape 2 — Vérifier le contenu de la CSR

Avant de soumettre la CSR à l'AD CS, vérifier qu'elle contient les bonnes informations :

openssl req -text -noout -in /etc/ssl/nextcloud/nextcloud.csr

Vérifier la présence des éléments suivants dans la sortie :

  • Subject : CN = nextcloud.cbaudiment.fr
  • Subject Alternative Name : DNS:nextcloud.cbaudiment.fr, IP Address:172.30.99.32
  • Key Usage : Digital Signature, Key Encipherment
  • Extended Key Usage : TLS Web Server Authentication

Afficher le contenu brut de la CSR pour le copier dans certsrv :

cat /etc/ssl/nextcloud/nextcloud.csr

Copier l'intégralité du bloc, de -----BEGIN CERTIFICATE REQUEST----- jusqu'à -----END CERTIFICATE REQUEST----- inclus.

Étape 3 — Soumettre la CSR à l'AD CS

La soumission se fait depuis un poste Windows membre du domaine ou directement depuis le serveur AD. Le serveur Nextcloud n'a pas besoin de contacter certsrv directement.

Erreur connue — 403.4 SSL requis : Si une erreur HTTP 403.4 apparaît en accédant à certsrv, IIS exige HTTPS mais aucun certificat n'est encore installé. Solution : ouvrir le Gestionnaire IIS sur le serveur AD > sélectionner CertSrv > double-cliquer sur Paramètres SSL > décocher 'Requérir SSL' > Appliquer > lancer iisreset en invite administrateur. Réactiver SSL après déploiement du certificat.

  • Ouvrir un navigateur Edge ou IE sur un poste du domaine
  • Accéder à http://172.30.10.11/certsrv
  • Se connecter avec un compte administrateur du domaine cbaudiment.fr
  • Cliquer sur 'Demander un certificat'
  • Cliquer sur 'Demande de certificat avancée'
  • Cliquer sur 'Soumettre une demande de certificat en utilisant...'
  • Coller le contenu de la CSR dans le champ 'Demande enregistrée'
  • Sélectionner le modèle Serveur Web (Web Server)
  • Cliquer sur 'Soumettre'
Champ Valeur
URL http://172.30.10.11/certsrv
Navigateur recommandé Microsoft Edge ou Internet Explorer
Modèle de certificat Serveur Web (Web Server)
Format de téléchargement Base 64

Note : Utiliser Edge ou IE — Brave, Chrome et Firefox ne gèrent pas bien l'authentification Windows intégrée (Kerberos/NTLM) et peuvent provoquer des erreurs 401 ou 403.

Étape 4 — Télécharger le certificat et la CA

  • Une fois la demande soumise, cliquer sur 'Télécharger le certificat' (format Base 64)
  • Enregistrer sous le nom certnew.cer
  • Retourner à l'accueil certsrv
  • Cliquer sur 'Télécharger un certificat d'AC, une chaîne de certificats ou une liste de certificats de confiance'
  • Sélectionner 'Certificat de l'AC' en Base 64
  • Enregistrer sous le nom ca.cer
Fichier Description Nom à utiliser
certnew.cer Certificat Nextcloud signé par l'AD CS nextcloud.crt
ca.cer Certificat racine de l'AC cbaudiment.fr ca.crt

Étape 5 — Transférer les certificats sur Nextcloud

Depuis le poste Windows ou le serveur AD, transférer les deux fichiers vers le serveur Nextcloud via SCP :

# Depuis un poste Windows avec OpenSSH installé
scp certnew.cer cedric@192.168.1.11:/home/cedric/nextcloud.crt
scp ca.cer cedric@192.168.1.11:/home/cedric/ca.crt

Puis depuis le serveur Nextcloud, déplacer les fichiers :

mv /home/cedric/nextcloud.crt /etc/ssl/nextcloud/nextcloud.crt
mv /home/cedric/ca.crt /etc/ssl/nextcloud/ca.crt

Méthode alternative — copier-coller : Si SCP n'est pas disponible, afficher le contenu du certificat sur Windows et le coller manuellement dans nano sur Debian :

nano /etc/ssl/nextcloud/nextcloud.crt  # coller le contenu de certnew.cer
nano /etc/ssl/nextcloud/ca.crt          # coller le contenu de ca.cer

Étape 6 — Installer la CA dans le magasin Debian

Pour que Debian fasse confiance à la PKI interne cbaudiment.fr — indispensable pour les connexions LDAPS vers l'AD et pour que les outils système valident le certificat Nextcloud.

# Installer le paquet ca-certificates si absent
apt install -y ca-certificates

# Copier la CA dans le magasin système
cp /etc/ssl/nextcloud/ca.crt /usr/local/share/ca-certificates/cbaudiment-ca.crt

# Mettre à jour le magasin
update-ca-certificates

Info : Cette étape est indispensable pour que Nextcloud puisse valider le certificat de l'AD lors des connexions LDAPS (port 636).

Étape 7 — Vérifier la cohérence clé / certificat

Avant de configurer Apache, vérifier que la clé privée et le certificat forment bien une paire valide. Si les md5sum sont différents, le serveur web refusera de démarrer.

# Vérifier les fichiers présents
ls -la /etc/ssl/nextcloud/
# Doit afficher : nextcloud.key  nextcloud.crt  ca.crt  openssl.cnf

# Vérifier la cohérence clé / certificat
openssl x509 -noout -modulus -in /etc/ssl/nextcloud/nextcloud.crt | md5sum
openssl req  -noout -modulus -in /etc/ssl/nextcloud/nextcloud.csr  | md5sum
# Les deux md5sum doivent être identiques

# Vérifier le contenu du certificat (SAN, dates, usage)
openssl x509 -in /etc/ssl/nextcloud/nextcloud.crt -text -noout

# Sécuriser la clé privée
chmod 600 /etc/ssl/nextcloud/nextcloud.key
chown root:root /etc/ssl/nextcloud/nextcloud.key
  • Subject Alternative Name contient DNS:nextcloud.cbaudiment.fr et IP:172.30.99.32
  • Extended Key Usage contient TLS Web Server Authentication
  • Key Usage contient Digital Signature, Key Encipherment
  • La date de validité est correcte

Erreur connue — md5sum différents : La clé privée et le certificat ne correspondent pas. Cela arrive si la CSR a été régénérée après la signature, ou si la clé a été écrasée. Recommencer depuis l'étape 1 en supprimant tous les fichiers existants :

rm /etc/ssl/nextcloud/nextcloud.key /etc/ssl/nextcloud/nextcloud.csr
Configuration du VirtualHost Apache

Créer le fichier /etc/apache2/sites-available/nextcloud.conf :

<VirtualHost *:80>
    ServerName nextcloud.cbaudiment.fr
    Redirect permanent / https://nextcloud.cbaudiment.fr/
</VirtualHost>

<VirtualHost *:443>
    ServerName nextcloud.cbaudiment.fr
    DocumentRoot /var/www/nextcloud

    SSLEngine on
    SSLCertificateFile /etc/ssl/nextcloud/nextcloud.crt
    SSLCertificateKeyFile /etc/ssl/nextcloud/nextcloud.key

    <Directory /var/www/nextcloud>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
        <IfModule mod_dav.c>
            Dav off
        </IfModule>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
    CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>
a2ensite nextcloud.conf
a2dissite 000-default.conf
apache2ctl configtest
systemctl reload apache2
Installation via l'interface web

Ouvrir un navigateur et accéder à https://172.30.99.32 (ou https://nextcloud.cbaudiment.fr). Renseigner les informations suivantes :

Champ Valeur
Compte administrateur admin (ou prénom.nom)
Mot de passe admin Choisir un mot de passe fort
Dossier de données /var/nextcloud-data
Type de base de données MySQL/MariaDB
Utilisateur BDD nextcloud
Mot de passe BDD (celui défini lors de la création MariaDB)
Nom de la BDD nextcloud
Hôte BDD localhost

Note : L'installation peut prendre 1 à 3 minutes. Ne pas rafraîchir la page.

Configuration config.php

Après l'installation, éditer /var/www/nextcloud/config/config.php pour vérifier ou compléter les paramètres suivants :

<?php
$CONFIG = array (
  'instanceid' => 'oc0cw81rqwe9',
  'passwordsalt' => '9Uf4CD8/wbgTa98pF++CoDs1QJrEqS',
  'secret' => 'iIxZQDHNvbzH3jX7YlXj3nQUwTfsCTF9ewalWNViLCaE>
  'trusted_domains' =>   array (
    0 => 'localhost',
    1 => '192.168.1.11',
    2 => 'nextcloud.cbaudiment.fr',
  ),
  'datadirectory' => '/var/nextcloud-data',
  'dbtype' => 'mysql',
  'version' => '33.0.0.16',
  'overwrite.cli.url' => 'http://nextcloud.cbaudiment.fr',
  'overwriteprotocol' => 'http',
  'trusted_proxies' => ['192.168.0.1'],
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost',  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'nextcloud',
  'dbpassword' => 'squall969*',
  'installed' => true,
);

Note : Ne jamais laisser de mot de passe en clair dans un document de procédure. Le fichier config.php réel contiendra les valeurs définies lors de l'installation.

Configuration des règles firewall PFSense

Principe général : tout est bloqué par défaut, on n'ouvre que ce qui est strictement nécessaire. Les règles sont appliquées de haut en bas dans PFSense — la première règle qui correspond s'applique.

Règles à créer
Source Destination Port Protocole Action Justification
Internet 192.168.0.1 443 TCP Autoriser Accès HTTPS Nextcloud
Internet 192.168.0.1 80 TCP Autoriser Redirection vers HTTPS
192.168.0.1 (DMZ) 172.30.10.11 (AD) 389 / 636 TCP Autoriser LDAP / LDAPS vers l'AD
192.168.0.1 (DMZ) 172.30.10.13 (Fichiers) 445 TCP Autoriser SMB vers serveur de fichiers
192.168.0.1 (DMZ) VLAN Serveurs any any Bloquer Isolation DMZ par défaut
VLAN Clients 192.168.0.1 (DMZ) 443 TCP Autoriser Accès interne via VPN/LAN
Procédure PFSense
  • Se connecter à l'interface web de PFSense
  • Aller dans Firewall > Rules > DMZ
  • Cliquer sur 'Add' pour chaque règle du tableau ci-dessus
  • Appliquer les changements avec 'Apply Changes'

Note : Tester chaque règle après sa création avec les outils Diagnostics > Ping et Diagnostics > Packet Capture de PFSense.

Intégration LDAP / Active Directory

Cette étape permet aux utilisateurs de se connecter à Nextcloud avec leurs identifiants Windows Active Directory.

Activation de l'application LDAP
  • Dans Nextcloud, aller dans le menu Applications (icône en haut à droite)
  • Chercher 'LDAP user and group backend'
  • Cliquer sur 'Activer'
Configuration de la connexion LDAP

Aller dans Paramètres > Administration > LDAP/AD Integration :

Paramètre Valeur
Hôte 172.30.10.11
Port 389 (LDAP) ou 636 (LDAPS)
DN de l'utilisateur de liaison (bind DN) CN=svc-nextcloud,CN=Users,DC=cbaudiment,DC=fr
Mot de passe de liaison (mot de passe du compte de service)
DN de base DC=cbaudiment,DC=fr
Problème de connexion LDAP entre Nextcloud et l'AD

Résolution — Connexion LDAP/LDAPS Nextcloud vers Active Directory

Symptôme
La configuration LDAP dans Nextcloud affiche "Connection to LDAP server could not be established" ou "Bind failed: Strong(er) authentication required" malgré une connectivité réseau correcte.

Diagnostic préalable

Vérifier que le port LDAP est joignable depuis Nextcloud :

nc -zv 172.30.10.11 389
nc -zv 172.30.10.11 636

Tester la connexion LDAP simple (port 389) :

LDAPTLS_REQCERT=never ldapsearch -x -H ldap://172.30.10.11 \
  -D "CN=svc-nextcloud,CN=Users,DC=cbaudiment,DC=fr" \
  -w "TON_MOT_DE_PASSE" \
  -b "DC=cbaudiment,DC=fr" \
  "(sAMAccountName=svc-nextcloud)"

Si le résultat est Strong(er) authentication required → l'AD exige une connexion sécurisée, passer sur LDAPS (port 636).

Tester la connexion LDAPS (port 636) avec vérification du certificat désactivée :

echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf
LDAPTLS_REQCERT=never ldapsearch -x -H ldaps://172.30.10.11 \
  -D "CN=svc-nextcloud,CN=Users,DC=cbaudiment,DC=fr" \
  -w "TON_MOT_DE_PASSE" \
  -b "DC=cbaudiment,DC=fr" \
  "(sAMAccountName=svc-nextcloud)"

Si result: 0 Success → LDAPS fonctionne, le problème vient de la configuration Nextcloud.

Erreur connue — "Strong(er) authentication required" sur port 389 : Cause : Windows Server 2022 exige par défaut la signature LDAP ou SSL/TLS. Le port 389 sans chiffrement est refusé. Solution : utiliser LDAPS sur le port 636 à la place de LDAP sur 389.

Erreur connue — LDAPS échoue depuis PHP/Nextcloud malgré turnOffCertCheck=1 : Cause : Nextcloud préfixe automatiquement le host avec ldap:// au lieu de ldaps:// même sur le port 636, ce qui empêche l'établissement du tunnel TLS. Solution : spécifier explicitement le préfixe ldaps:// dans le champ hôte :

cd /var/www/nextcloud
php occ ldap:set-config s01 ldapHost "ldaps://172.30.10.11"
php occ ldap:set-config s01 ldapPort 636
php occ ldap:set-config s01 ldapTLS 0
php occ ldap:set-config s01 turnOffCertCheck 1
php occ ldap:set-config s01 ldapLoginFilter "(&(objectClass=user)(sAMAccountName=%uid))"
php occ ldap:set-config s01 ldapUserFilter "(&(objectClass=person)(objectClass=user))"
php occ ldap:test-config s01

Le résultat doit être : The configuration is valid and the connection could be established!

Erreur connue — Serveur backup inaccessible : Cause : Si un serveur backup est configuré (ex: 172.30.20.10) mais inaccessible, Nextcloud tente de s'y connecter après l'échec du principal. Solution temporaire : vider le backup le temps de configurer LDAP :

php occ ldap:set-config s01 ldapBackupHost ""
php occ ldap:set-config s01 ldapBackupPort ""

Le remettre une fois LDAPS fonctionnel :

php occ ldap:set-config s01 ldapBackupHost "ldaps://172.30.20.10"
php occ ldap:set-config s01 ldapBackupPort 636

Vérification finale

php occ ldap:test-config s01
# Doit retourner : The configuration is valid and the connection could be established!
Créer un compte de service dans l'AD

Sur le serveur Windows AD (172.30.10.11), ouvrir Utilisateurs et ordinateurs Active Directory :

  • Créer un utilisateur : svc-nextcloud
  • Cocher 'Le mot de passe n'expire jamais'
  • Ne pas lui donner de droits particuliers (principe du moindre privilège)
  • Utiliser ses credentials dans la configuration LDAP ci-dessus
Filtre des utilisateurs

Dans l'onglet 'Utilisateurs' de la configuration LDAP, utiliser ce filtre pour ne récupérer que les utilisateurs du bon groupe :

(&(objectClass=person)(memberOf=CN=Nextcloud-Users,OU=Groupes,DC=cbaudiment,DC=fr))

Info : Créer le groupe 'Nextcloud-Users' dans l'AD et y ajouter les utilisateurs autorisés à accéder à Nextcloud.

Filtre des groupes
(objectClass=group)
Onglet 'Avancé'
Paramètre Valeur
Attribut de connexion sAMAccountName
Attribut de nom d'affichage displayName
Attribut email mail
Chiffrement STARTTLS (recommandé) ou None en lab

Cliquer sur 'Tester la connexion' — le résultat doit être positif avant de continuer.

Montage du stockage externe SMB

Cette configuration permet aux utilisateurs de voir les partages du serveur de fichiers directement dans Nextcloud.

Activation de l'application Stockage Externe
  • Dans Nextcloud, aller dans Applications
  • Chercher 'External Storage Support'
  • Cliquer sur 'Activer'
Configuration du montage SMB

Aller dans Paramètres > Administration > Stockage externe. Cliquer sur 'Add external storage' :

Paramètre Valeur
Nom du dossier Fichiers
Stockage externe SMB / CIFS
Hôte 172.30.10.13
Partage Fichiers
Domaine cbaudiment.fr
Utilisateur $user (variable dynamique)
Mot de passe Laisser vide si auth AD gérée par LDAP

Note : Si le serveur de fichiers impose une authentification par utilisateur, sélectionner 'Identifiants de connexion, enregistrés dans la session'. L'utilisateur saisira ses credentials AD la première fois.

Vérification du montage SMB

Sur le serveur Nextcloud, tester la connectivité SMB manuellement :

apt install -y smbclient
smbclient -L //172.30.10.13 -U 'cbaudiment.fr\admin.cbaudiment'
# Tester l'accès à un partage spécifique
smbclient //172.30.10.13/Fichiers -U 'cbaudiment.fr\admin.cbaudiment'
Permissions et sécurité

S'assurer que les permissions SMB sur le serveur de fichiers sont correctement configurées :

  • Les groupes AD doivent avoir les droits appropriés sur les partages SMB
  • Nextcloud respectera les ACL définies sur le serveur de fichiers
  • Un utilisateur ne verra que les fichiers auxquels il a accès côté AD

Info : Les permissions Nextcloud et les permissions SMB sont cumulatives. Un fichier inaccessible côté SMB sera également inaccessible dans Nextcloud.

Tests et validation
Tests de connectivité réseau
Test Commande Résultat attendu
Ping vers l'AD ping 172.30.10.11 Réponse OK
Ping vers serveur fichiers ping 172.30.10.13 Réponse OK
LDAPS vers AD ldapsearch -H ldap://172.30.10.11 -x -b 'DC=...' Connection succeeded
SMB vers fichiers smbclient -L //172.30.10.13 Liste des partages
HTTPS Nextcloud curl -k https://192.168.0.1 HTML de Nextcloud
Tests fonctionnels
  • Se connecter avec un compte AD depuis l'interface Nextcloud
  • Vérifier que le compte apparaît correctement avec nom/prénom/email
  • Vérifier que le dossier 'Fichiers' (stockage SMB) est visible
  • Tester l'accès aux fichiers : lecture, écriture, suppression selon les droits
  • Tester depuis un poste client via VPN
  • Tester le partage d'un fichier entre deux utilisateurs AD
Vérification des logs
# Logs Nextcloud
tail -f /var/nextcloud-data/nextcloud.log
# Logs Apache
tail -f /var/log/apache2/nextcloud_error.log
# Logs système
journalctl -u apache2 -f
Maintenance et bonnes pratiques
Mises à jour Nextcloud
# Via CLI (recommandé)
cd /var/www/nextcloud
sudo -u www-data php occ upgrade
sudo -u www-data php occ maintenance:mode --off

Info : La mise à jour est également disponible via l'interface web : Paramètres > Administration > Vue d'ensemble.

Tâches planifiées (cron)

Configurer le cron système pour les tâches de fond Nextcloud :

crontab -u www-data -e
# Ajouter cette ligne :
*/5 * * * * php /var/www/nextcloud/cron.php

Dans Nextcloud, aller dans Paramètres > Administration > Paramètres de base et sélectionner 'Cron' comme méthode de tâches de fond.

Sauvegardes (VEEAM)

Inclure dans la stratégie de sauvegarde VEEAM (172.30.10.22) :

  • Base de données MariaDB :
    mysqldump -u root -p nextcloud > backup_nextcloud.sql
  • Répertoire de données : /var/nextcloud-data
  • Fichier de configuration : /var/www/nextcloud/config/config.php

Info : Le serveur de fichiers (172.30.10.13) est déjà sauvegardé par VEEAM — les fichiers montés via SMB sont donc couverts.

Monitoring avec Zabbix

Le serveur Zabbix (172.30.99.3) peut monitorer Nextcloud via :

  • Supervision du service Apache (port 443)
  • Vérification de l'espace disque /var/nextcloud-data
  • Template Zabbix 'Apache by HTTP' ou supervision web personnalisée