OwnCloud

OwnCloud est un logiciel libre offrant une plate-forme de services de stockage et partage de fichiers et d’applications diverses en ligne.

Préparation du server Apache

Préparer votre serveur web de telle sorte qu’il faille, selon les recommandations de la documentation d’Owncloud, accéder au cloud via cette adresse moncloud.mondoamine.ext

Créer un Vhost dans apache

Simplement en ouvrant vim, un nouveau fichier se créera :

# vim /etc/apache2/sites-available/cloud.mon-site.fr

Dans ce fichier :

<VirtualHost *:80>

ServerName mon-site.fr
ServerAlias cloud.mon-site.fr
ServerAdmin [email protected]
DocumentRoot /home/mon-site.fr/www/owncloud

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

<Directory /home/mon-site.fr/www/owncloud>

Options -Indexes FollowSymLinks MultiViews
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /home/mon-site.fr/www/owncloud
SetEnv HTTP_HOME /home/mon-site.fr/www/owncloud

</Directory>

[...]

Penser à créer le dossier correspondant au DocumentRoot (/home/mon-site.fr/www/owncloud), à activer le nouveau vhost et à relancer Apache :

# a2ensite cloud.mon-site.fr
# service apache2 reload

Owncloud a besoin de certains modules pour fonctionner correctement :

# a2enmod rewrite
# a2enmod headers
# a2enmod envi
# a2enmod env
# a2enmod dir
# a2enmod mime
# a2enmod ssl

Vérifier la configuration d’apache avant de le reload/restart :

# apache2 -t

ou

# apachectl configtest

Serveur DNS

Il faut également éditer vos DNS et y ajouter l’entrée :

cloud                     IN CNAME  mon-site.fr

Normalement vous pouvez dorénavant accéder à cloud.mon-site.fr.

BDD MySQL

Installer la BDD pour owncloud, ici avec MySQL.

# mysql -u root -p <votreMotDePasse>
mysql> CREATE DATABASE `owncloud_db`;
mysql> CREATE USER `owncloud`;
mysql> SET password FOR "owncloud" = password("UnAutreMotDePasse");
mysql> GRANT ALL PRIVILEGES ON `owncloud_db`.* TO "owncloud";

Téléchargement de Owncloud et Vérifications

Note : Quand on installe Owncloud via le gestionnaire de paquets apt-get, il se configure directement dans /var/www, par contre en utilisant la commande wget on a le choix de le mettre où on veut.

Source d’installation : https://owncloud.org/changelog/#latest10.0

Téléchargement des éléments

Téléchargement de Owncloud (10), de son MD5, de son SHA et de sa signature PGP (comme ça on a tout) :

# wget https://download.owncloud.org/community/owncloud-10.0.2.tar.bz2
# wget https://download.owncloud.org/community/owncloud-10.0.2.tar.bz2.md5
# wget https://download.owncloud.org/community/owncloud-10.0.2.tar.bz2.sha256
# wget https://download.owncloud.org/community/owncloud-10.0.2.tar.bz2.asc
# wget https://owncloud.org/owncloud.asc

Vérification des hash

Vérification du hashage MD5 :

# md5sum -c owncloud-10.0.2.tar.bz2.md5 < owncloud-10.0.2.tar.bz2
owncloud-10.0.2.tar.bz2: OK

Vérification du hashage SHA256 :

# sha256sum -c owncloud-10.0.2.tar.bz2.sha256 < owncloud-10.0.2.tar.bz2
owncloud-10.0.2.tar.bz2: OK

Vérification de la signature PGP

Vérification de la signature PGP, parce que l’on est jamais trop prudent.
Importation de la clé précédemment téléchargée :

# gpg --import owncloud.asc 
gpg: clef F6978A26 : clef publique « ownCloud <[email protected]> » importée
gpg: Quantité totale traitée : 1
gpg: importées : 1 (RSA: 1)

Puis vérification :

# gpg --verify owncloud-10.0.2.tar.bz2.asc owncloud-10.0.2.tar.bz2
gpg: Signature faite le mar. 30 mai 2017 19:25:37 CEST avec la clef RSA d'identifiant F6978A26
gpg: Bonne signature de « ownCloud <[email protected]> »

Il est possible que ce message fasse suite au précédent :

gpg: Attention : cette clef n'est pas certifiée avec une signature de confiance.
gpg: Rien n'indique que la signature appartient à son propriétaire.
Empreinte de clef principale : E303 6906 AD9F 3080 7351 FAC3 2D5D 5E97 F697 8A26

Cela ne signifie PAS que la signature est incorrecte (puisque plus haut gpg renvoie bien “Bonne signature de ownCloud info@owncloud.com
Elles indiquent seulement que l’authenticité n’a pas été vérifiée (on ne sait pas QUI a signé et QUI nous a fournis la clé).

Si la signature n’était pas bonne on aurait eu ce message :

gpg:  Signature faite le mar. 30 mai 2017 19:25:37 CEST avec la clef RSA d'identifiant F6978A26
gpg: MAUVAISE signature de « ownCloud <[email protected]> »

Si tout correspond, mettez-vous dans le répertoire d’installation de ownCloud et déziper.
Si vous voulez accorder votre confiance à cette clé :

# gpg --edit-key owncloud
gpg (GnuPG) 1.4.12; Copyright (C) 2012 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

pub 4096R/F6978A26 créé : 2013-10-14 expire : 2018-09-30 utilisation : SC
confiance : ultime validité : ultime
sub 4096R/6A38B5EC créé : 2013-10-14 expire : 2018-09-30 utilisation : E
[ ultime ] (1). ownCloud <[email protected]>

gpg> trust
pub 4096R/F6978A26 créé : 2013-10-14 expire : 2018-09-30 utilisation : SC
confiance : ultime validité : ultime
sub 4096R/6A38B5EC créé : 2013-10-14 expire : 2018-09-30 utilisation : E
[ ultime ] (1). ownCloud <[email protected]>

Décidez maintenant de la confiance que vous portez en cet utilisateur pour vérifier les clefs des autres utilisateurs (en regardant les passeports, en vérifiant les empreintes depuis diverses sources, etc.)

1 = je ne sais pas ou n'ai pas d'avis
2 = je ne fais PAS confiance
3 = je fais très légèrement confiance
4 = je fais entièrement confiance
5 = j'attribue une confiance ultime
m = retour au menu principal

Quelle est votre décision ? 3 <mettez 5 si vous ne voulez plus avoir de warning>

pub 4096R/F6978A26 créé : 2013-10-14 expire : 2018-09-30 utilisation : SC
confiance : marginale validité : ultime
sub 4096R/6A38B5EC créé : 2013-10-14 expire : 2018-09-30 utilisation : E
[ ultime ] (1). ownCloud <[email protected]>

Veuillez remarquer que la validité affichée pour la clef n’est pas forcément correcte avant d’avoir relancé le programme.

gpg> quit

Installer et configurer OwnCloud

Installation

Maintenant vous pouvez extraire votre archive. Mettez vous dans le répertoire d’installation de ownCloud et désarchivez.

# tar -xjf owncloud-10.0.2.tar.bz2

Vous avez maintenant un dossier owncloud/ qui contient tous les fichiers nécessaires à son fonctionnement.
On change le chmod :

# chown -R www-data:www-data /home/mon-site.fr/www/owncloud

Positionnez-vous dans le répertoire de Owncloud et lancer la commande d’installation :

# su -l www-data -c 'php /home/mon-site.fr/www/owncloud/occ maintenance:install --database "mysql" --database-name "owncloud_db" --database-user "owncloud" --database-pass "databasePass" --admin-user "admin" --admin-pass "NouveauMotDePassPourLeCloud"’

Si la commande ne fonctionne pas c’est certainement que le paquet sudo n’est pas installé : apt-get install sudo

Configuration

Dans vim config/config.php, il faut rajouter le trusted domain vers la ligne 7 :

'trusted_domains' =>
array (
0 => 'cloud.mon-site.fr',
),

Connexion à OwnCloud

Vous devriez être en mesure de vous connecter au cloud via l’adresse cloud.mon-site.fr avec le compte admin.

Administration

Dans la partie administration il est possible d’avoir ces messages :

Avertissements de sécurité & configuration
(1) Le verrouillage transactionnel de fichiers devrait être configuré pour utiliser le verrouillage basé sur la mémoire, et non le verrouillage lent, par défaut, basée sur la base de données. Consultez la documentation ↗ pour plus d'informations.
(2) Nous recommandons d'activer la tâche planifiée système qui, comme toute autre tâche planifiée, a des implications possibles sur les performances et la fiabilité.
(3) Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans notre Guide pour le renforcement et la sécurité.
(4) Aucun cache de la mémoire n'est configuré. Si possible, configurez un "memcache" pour augmenter les performances. Pour plus d'information consultez la documentation.
Solutions

(1) verrouillage transactionnel

Si le serveur de cache Redis n’est pas installé aller directement en (4) avant de revenir.
Après le redémarrage de votre serveur Web, ajoutez la ligne suivante dans le fichier config.php du dossier config/

'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
'memcache.locking' => '\OC\Memcache\Redis',

Si votre server Redis est situé sur la meme machine que owncloud il est conseillé de lui faire écouter un socket Unix

'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
//'host' => 'localhost',
'host' => '/var/run/redis/redis.sock',
//'port' => 6379,
'port' => 0,
),
'memcache.locking' => '\OC\Memcache\Redis',

Note : ne fonctionne pas.
EDIT : dans /etc/redis/redis.conf

32 # Specify the path for the unix socket that will be used to listen for
33 # incoming connections. There is no default, so Redis will not listen
34 # on a unix socket when not specified.
35 #
36 unixsocket /var/run/redis/redis.sock
37 unixsocketperm 755

Puis restart le server :

# service redis-server restart

marche toujours pas :/

(2) tâche planifiée système

Il suffit d’activer cron dans l’administration :

(3) le HTTPS

Voir directement la page sur Let’s encrypt
Une fois que le HTTPS est mis, un autre warning apparaît :
L’en-tête HTTP “Strict-Transport-Security” n’est pas configurée à “15552000” secondes. Pour renforcer la sécurité nous recommandons d’activer HSTS.
Il suffit de rentrer cette directive dans Apache :

<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>

et de veiller à bien enabled le module header :

# service apache2 reload 

(4) Le cache :

Ici on choisi d’installer php5-apcu, pour les version de PHP5,5++

# apt-get install php5-apcu

Redémarrage d’Apache

Un simple restart du service.

# service apache2 restart

Après le redémarrage de votre serveur Web, ajoutez la ligne suivante dans le fichier /config/config.php :

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

Le message d’avertissement devrait maintenant avoir disparu.
Note : Le système de cache soulage la BDD

EDIT : Nous allons finalement utiliser Redis, un serveur cache.
Installation de Redis (https://redis.io/)

# apt-get install redis-server

Normalement l’installeur lancera automatiquement redis-server et le configurera pour être lancé au démarrage. Pour le vérifier faites :

# ps ax | grep redis
9299 ? Ssl 0:00 /usr/bin/redis-server /etc/redis/redis.conf

Puis installer php5-redis :

# apt-get install php5-redis 

Redémarrage d’Apache :

# service apache2 restart

Après le redémarrage de votre serveur Web, ajoutez la ligne suivante dans le fichier /config/config.php :

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

Documentation

https://owncloud.org/changelog/#latest10.0
http://docs.ccorazza.fr/9.0/doc_web_admin/html/configuration_files/files_locking_transactional.html
http://docs.ccorazza.fr/9.0/doc_web_admin/html/configuration_server/caching_configuration.html#id4
http://docs.ccorazza.fr/9.0/doc_web_admin/html/configuration_server/caching_configuration.html
https://doc.owncloud.org/server/latest/admin_manual/configuration/server/security_setup_warnings.html
https://redis.io/

> Partager <