ownCloud, un pas de plus vers l'indépendance

avatar-Nicolas Nicolas
Publié le

Vous connaissez très certainement Google Drive, Dropbox, SkyDrive et autres de services de stockage dans le fameux cloud (précisément il s'agit ici de "STaaS" pour STorage as a Service).

Pour ma part, je n'ai jamais été un grand utilisateur de ces services car mes données, aussi insignifiantes soient elles, ne regardent que moi.

Richard Stallman s'est exprimé très tôt sur le sujet :

One reason you should not use web applications to do your computing is that you lose control, It's just as bad as using a proprietary program. Do your own computing on your own computer with your copy of a freedom-respecting program. If you use a proprietary program or somebody else's web server, you're defenceless. You're putty in the hands of whoever developed that software.

Quant à Steve Wozniak (co fondateur d'Apple) :

I really worry about everything going to the cloud, I think it's going to be horrendous. I think there are going to be a lot of horrible problems in the next five years. With the cloud, you don't own anything. You already signed it away. I want to feel that I own things. A lot of people feel, 'Oh, everything is really on my computer,' but I say the more we transfer everything onto the web, onto the cloud, the less we're going to have control over it.

ownCloud

Ok, le cloud c'est pas si cool que ça, mais alors pourquoi tu nous en parles ?

Parce qu'il existe une alternative avec laquelle vous gardez le contrôle : ownCloud.

L'outil permet de gérer des fichiers (WebDav), mais aussi des calendriers (CalDav), des contacts (CardDav) et intègre un player Ampache. Vous pouvez le tester ici.

En bonus, il existe des applications (open source également) Windows, Linux, Mac, Android et iPhone pour synchroniser votre contenu.

Voici un donc un petit tutoriel pour monter votre propre cloud sécurisé accessible depuis une url du type owncloud.domaine.com.

Ce qu'il vous faut (oui, l'indépendance a un prix) :

  • un serveur accessible sur internet (Linux, Mac OS X ou Windows),
  • un nom de domaine pour pouvoir créer le sous-domaine owncloud (il est toutefois possible d'utiliser des services comme no-ip.org en basant l'hôte virtuel sur le port, exemple : moi.no-ip.com:8080)
  • le paquet ownCloud (open source, disponible sur leur site).

Installation ownCloud sur un serveur Debian

Tout est très bien expliqué sur leur site mais voici un résumé :

Si vous n'avez pas Apache d'installé, lancez (en root) :

apt-get install apache2 php5 php5-gd php-xml-parser php5-intl
apt-get install php5-sqlite php5-mysql php5-pgsql smbclient curl libcurl3 php5-curl

Sinon vérifiez juste que vous avez le paquet libapache2-mod-php5 présent.

Vérifiez que les modules Apache suivants sont actifs (présent dans /etc/apache2/mods-enabled) :

  • rewrite
  • headers
  • ssl (si vous souhaitez sécuriser la connexion)

Si nécessaire, activez les :

a2enmod rewrite
service apache2 restart

Ajoutez le repository qui va bien, lancez la mise à jour du cache local et installez le paquet owncloud (toujours en root) :

cd /etc/apt/sources.list.d/
echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
apt-key add - < Release.key
rm /etc/apt/sources.list.d/Release.key
apt-get update
apt-get install owncloud

Par défaut, ownCloud installe les données des utilisateurs dans /var/www/owncloud. Il faut vérifier/attribuer que les droits sont corrects :

cd /var/www/owncloud
chown www-data:www-data * -R

ownCloud propose trois méthodes de stockage : MySQL, PostgreSQL ou SQLite. MySQL est fortement conseillé.  Pour créer  le user dédié, nous utiliserons la commande :

mysql -u root -p
GRANT ALL ON owncloud.* TO 'owncloudUser'@'localhost' IDENTIFIED BY 'owncloudPassword';

Bien évidement vous modifierez les valeurs de l'utilisateur et du mot de passe.

Configuration Apache

Maintenant, configurons Apache pour avoir un hôte virtuel basé sur l'adresse owncloud.mondomaine.com (en root) :

nano /etc/apache2/sites-available/owncloud

Vous pouvez vous baser sur le modèle suivant :

<VirtualHost *:80>
	ServerName		owncloud.mondomaine.com
	DocumentRoot	/var/www/owncloud
	Options			Indexes FollowSymLinks MultiViews
	AllowOverride All
	Order allow,deny
	allow from all
</VirtualHost>

On active notre nouveau hôte virtuel

a2ensite owncloud
service apache2 reload

Pour finaliser l'installation, il faut passer par l'interface web : http://owncloud.domaine.com

  • Saisissez le login / password du compte admin
  • Choisissez MySQL
  • Saisissez les informations de connexion MySQL (modifiées évidement) :
    • utilisateur owncloudUser
    • mot de passe owncloudPassword
    • schéma owncloud
    • serveur localhost

Pour ceux qui passent par un service DNS dynamique, il suffira de changer le *:80 par *:8080 et de supprimer la directive ServerName.

Sécuriser Apache via SSL

Maintenant que tout est ok, sécurisons via SSL l'accès. Pour cela nous allons installer openssl pour créer notre certificat auto-signé :

apt-get install openssl
mkdir /etc/apache2/ssl/
openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -out /etc/apache2/ssl/myowncloud.crt -keyout /etc/apache2/ssl/myowncloud.key

Renseigner les informations demandées (exemples ici).

Il faut indiquer à Apache que notre hôte virtuel utilise SSL :

nano /etc/apache2/sites-available/owncloud
<VirtualHost *:80>
	ServerName		owncloud.domaine.com
	RedirectMatch	permanent (.*) https://owncloud.domaine.com$1
</VirtualHost>
<VirtualHost *:443>
	ServerName				owncloud.domaine.com
	DocumentRoot			/var/www/owncloud
	SSLEngine				on
	SSLCertificateFile		/etc/apache2/ssl/myowncloud.crt
	SSLCertificateKeyFile	/etc/apache2/ssl/myowncloud.key
	Options Indexes FollowSymLinks MultiViews
	AllowOverride All
	Order allow,deny
	allow from all
</VirtualHost>

Vérifiez qu'Apache écoute le port 443 (SSL) dans le fichier /etc/apache2/ports.conf, que votre part-feu est ouvert sur ce port et que les règles NAT de votre modem sont actives également.

Enfin activez le module Apache :

a2enmod ssl
a2dissite owncloud
a2ensite owncloud
service apache2 restart

Normalement, vous devriez avoir votre cloud personnel qui fonctionne en ssl sur l'adresse https://owncloud.domaine.com.