NextCloud sur un serveur mutualisé OVH

Je me suis lancé dans une entreprise assez intéressante : avec un serveur mutualisé « basique » de chez OVH, j’ai essayé d’installer un cloud de type NextCloud (c’est un fork plus actif de ownCloud).

Là où tout est documenté quand vous avez accès à un serveur dédié (sur lequel vous pouvez tout faire), il reste beaucoup de limitations sur un serveur mutualisé. Cela allait-il fonctionner ? La réponse est oui, mais voici comment je m’y suis pris (et certaines solutions adoptées ici « manquent d’élégance »).

Installation

L’installation est complètement transparente (téléchargement du package sur le site NextCloud.org, installation par copie FTP dans un répertoire de mon serveur web (cela cohabite bien dans un sous-répertoire), lancement de la procédure de configuration automatique (avec la création du premier utilisateur admin).

Après cela, j’ai dû résoudre quelques problèmes. Pas invraisemblables, certains sont même parfaitement documents, d’autres ont été plus ennuyeux.

Résolution des problèmes rencontrés

A noter : un certain nombre de sujets ont été corrigés avec l’aide du site Open-Freak qui est très clair sur le sujet.

Erreurs de headers HTML

Les premiers sujets sont clairement documentés en se rendant sur la page d’administration : en haut de la page apparaissent les messages d’erreur en orange/rouge. Ils sont assez explicites, mais il faut savoir où aller ensuite.

Rendez-vous dans le fichier .htaccess à la racine du répertoire contenant Nextcloud et repérez le pavé qui mentionne des headers décrits dans les messages d’erreur (ils sont tous bien groupés).

Modifiez chaque ligne commençant par Header set en Header always set, et ajoutez la ligne suivante au bloc en question :

Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

Warning sur la gestion du cache

Vient ensuite un message de warning sur la gestion du cache (uniquement une quesiton de performance sans grande importance pour un tout petit cloud comme le mien). Il faut se rendre dans le fichier config/config.php (fichier dans le répertoire config).

Comme indiqué par le message de warning, on peut rajouter la ligne.

'memcache.local' => '\\OC\\Memcache\\ArrayCache',

Je l’ai mise à la fin (mais avant la toute dernière ligne qui ferme l’array.

Difficultés d’accés par le web

Dans le même fichier config/config.php, il y a une modification supplémentaire à appliquer pour tenir compte des habitudes courantes d’accès à un site web. Selon les cas, les utilisateurs ajoutent ou pas les www. devant une adresse web (indépendamment de ce que vous direz).

Pour éviter toute confusion et quelle que soit l’adresse que vous avez indiquée pour l’accès web de votre cloud, assurez-vous que l’accès est possible avec ou sans le www.  en modifiant l’entrée trusted_domains du fichier config/config.php :

'trusted_domains' =>
array (
0 => 'mondomaine.fr',
1 => 'www.mondomaine.fr',
2 => 'next.mondomaine.fr',
),

Dans mon cas, vous pouvez constater que j’ai prévu l’accès avec ou sans le www.  mais aussi un raccourci pratique et assez habituel. (bien sûr, vous remplacerez mondomaine.fr par votre propre nom de domaine).

Login impossible pour les utilisateurs non-administrateurs

J’ai ensuite rencontré un problème beaucoup plus désagréable. Je pouvais me connecter avec le compte d’administrateur créé à l’installation, mais aucun autre utilisateur, créé ultérieurement depuis l’interface d’administration, ne semblait pouvoir le faire. D’après ce que j’ai lu ici ou là sur Internet (principalement les échanges sur le forum OwnCloud), il semble qu’un moyen de contournement (pas joli joli, il faut dire) consiste à créer manuellement les répertoires du nom de chaque utilisateur dans le répertoire data de l’installation NextCloud. Certainement un problème de droits d’accès, mais je n’ai pas su le résoudre encore (peut-être une correction ici-même quand j’aurai trouvé).

Mise à jour : il me faut être plus précis. La solution véritable ne consistait évidemment pas à créer manuellement des répertoires, mais à bien gérer les droits d’accès. En fait, le répertoire data de l’installation NextCloud n’avait pas les bons droits d’accès (comme tous les répertoires, il aurait dû avoir un code chmod de 705). Cela a été assez facile à corriger avec FileZilla. Il a seulement fallu re-créer tous les utilisateurs (sauf l’administrateur initial, bien sûr).

Ce point-là était le plus complexe pour moi parce qu’il bloquait tous les essais par un autre utilisateur quelque soit l’outil employé (accès par le web, par WebDav, par le client Windows).

Par sécurité, j’ai aussi complété le fichier config/config.php (fichier dans le répertoire config) avec quelques mentions utiles pour le futur :

'maintenance' => false,
'singleuser' => false,

Autres difficultés de login

Enfin, je l’avoue, à force de faire des essais de connexion, je me suis retrouvé incapable de me connecter (tout court). C’est un effet de la portection contre les attaques de force brute qui génèrent des erreurs à répétition (comme je l’ai fait dans mes essais).

La méthode pour s’en sortir à consister à venir me connecter sur un autre ordinateur et à passer dans le menu Administration > Sécurité > Brute-Force Whitelist et à y ajouter l’adresse IP de mon ordinateur (sous la forme 100.100.100.100/32). Cela protège contre cette détection (mais cela autorise les attaques par ce biais : attention à ne pas faire d’erreur de sécurité par ce biais).

Conclusion (temporaire ?)

L’installation de NextCloud est prévue dans certaines configurations de serveurs dédiés de OVH. Dans ce cas, pas de gros problème, je suppose. Mais pour une toute petite application (moins de 10 utilisateurs, pas très actifs), un serveur mutualisé est largement suffisant. Dans ce cas, l’installation semble un peu plus compliquée mais il n’y a pas de raison d’abandonner. Les problèmes de configuration sont minimaux et certains d’entre eux sont à la fois bien documentés par NextCloud et identiques aux sujets de configuration de tout serveur cloud de type NextCloud.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *