ownCloud, un pas de plus vers l'indépendance
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.
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
- utilisateur
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.