ownCloud¶
OwnCloud est un soft qui permet de mettre à disposition très rapidement un environnement cloud comprenant
- stockage et partage de fichiers (getion de quotas possible)
- carnet d’adresses
- calendrier
- gestionnaire de tâches
- synchronisation avec les smartphones
- synchronisation des préférences de Mozilla Firefox
- édition de fichiers ODT (OpenDocument Text) en ligne
- Galerie d’images, qui permet de visualiser ses photos et de les classer en albums.
Il nécessite
- un serveur web (apache ou ngix)
- php
- une base de donnée (sqlite, postgresql, mysql, ...)
Note
si il y a moins de 10 utilisateurs une base sqlite est largement suffisante
Installation¶
Nous allons procéder à une installation sous debian
apt-get update
apt-get upgrade
apt-get install apache2 php5 php5-gd php5-sqlite php5-curl php5-json php5-common php5-intl php-pear php-apc php-xml-parser libapache2-mod-php5 curl libcurl3 libcurl3-dev sqlite
Modification du fichier de configuration du site par défaut d’apache (/etc/apache2/sites-available/default)
AllowOverride All
Note
il est possible de créer une configuration spécifique pour cet application (cf doc Apache)
Afin de pouvoir transférer de gros fichier nous modifions le fichier /etc/php5/apache2/php.ini
upload_max_filesize = 2G
post_max_size = 2G
On active la réécriture d’Apache
a2enmod rewrite
a2enmod headers
et on redémarre le serveur apache
/etc/init.d/apache2 restart
Nous allons maintenant télécharger ownclouf et l’installer sur le serveur apache par défaut
cd
wget http://download.owncloud.org/community/owncloud-7.0.2.tar.bz2
tar xvf owncloud-7.0.2.tar.bz2
mv owncloud /var/www
cd /var/www
chown -R www-data:www-data owncloud
On peut finir l’installation en ce connectant sur http://127.0.0.1/owncloud
Afin d’optimiser owncloud qui fait par défaut à chaque chargement de page des tâches de fond, on peut configurer via crontab que ces tâches soient réalisées toutes les 5 minutes, par exemple, par le système lui même
crontab -e
*/5 * * * * php -f /var/www/owncloud/cron.php
Sécurisation de la connexion à owncloud¶
Nous créons un nnouvel virtualhost
vi /etc/apache2/sites-available/owncloud.https
NameVirtualHost *:443
# Hôte virtuel qui écoute sur le port HTTPS 443
<VirtualHost *:443>
DocumentRoot /var/www/
# Activation du mode SSL
SSLEngine On
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
# On indique ou est le certificat
SSLCertificateFile /etc/ssl/certs/owncloud.crt
SSLCertificateKeyFile /etc/ssl/private/owncloud.key
</VirtualHost>
Nous allons maintenant activer le module SSL dans Apache2 pour que celui-ci puisse être utilisé dans nos échanges ownCloud
a2enmod ssl
On doit ensuite ajouter notre nouveau site aux sites actifs d’Apache2
a2ensite owncloud.https
Création du certificat auto-signé: maintenant nous pouvons accéder à Owncloud via le HTTPS, seulement on peut encore passer aussi via le HTTP, nous allons donc le forcer à utiliser le HTTPS. Il faut aller modifier un fichier PHP dans Owncloud pour forcer l’accès en HTTPS.
vi /var/www/config/config.php
'force ssl' => true
Nous allons ensuite passer à la génération de nos clés, on crée un répertoire pour les clés :
cd /etc/apache2/
mkdir CertOwncloud
cd CertOwncloud
On génère notre clé sur 1024 bits :
openssl genrsa -out owncloud.key 1024
Création des ”.key” et ”.csr” :
openssl req -new -key owncloud.key -out owncloud.csr
On rempliera ensuite les données du certificat correctement, il est important de noter que l’absence du CommonName pourra générer des erreurs plus tards. On crée ensuite le fichier de certificat :
openssl x509 -req -days 365 -in owncloud.csr -signkey owncloud.key -out owncloud.crt
On copiera ensuite nos certificats là on tous les certificats sont stockés :
cp owncloud.crt /etc/ssl/certs
cp owncloud.key /etc/ssl/private
Procédez au redémarrage d’Apache2 après avoir vérifié sa configuration
apachectl configtest
service apache2 restart
On pourra ensuite vérifier dans notre navigateur que le HTTPS est bien utilisé en nous rendant sur l’interface web de notre ownCloud https://127.0.0.1/owncloud