Publicité

Il y a un ou trois ans, lorsque je m’occupais de l’informatique d’une UL Croix-Rouge, j’avais vu fleurir des dropbox sur tous les postes. Cela m’avait quelques peu agacés car on ne sait pas où se retrouve les fichiers et la peur de la faille de sécurités. Dès lors on m’avait demandé de proposer une solution alternative. J’avais bien essayé quelques trucs mais rien de convaincant.

 

A l’heure où le cloud est largement développé il peut être intéressant de créer le sien à soi histoire de ne pas trop laisser traîner des informations sensibles sur des serveurs on ne sait où. Car oui la grande rengaine des fournisseurs de cloud est de dire, sur la masse d’infos mon fichier est en sécurité sur le cloud, aucun risque qu’un petit malin s’intéresse au contenu et  on vous propose de chiffrer etc ... . Comme on est jamais assez prudent il vaut mieux prendre les devant et créer son propre cloud.

 

Une solution est OwnCloud, elle a l’avantage de s’installer un peu partout (même sur certain NAS). Niveau sécurité, on ne sait pas trop, mais ça à l’air plutôt solide (enfin comme tout). Cette solution est modulaire et répond à beaucoup de besoin. Pour peu qu’on lui intègre un serveur mail elle sera quasi tout faire. On peut étendre les possibilités grâce à de très nombreux plugin On a même un éditeur de texte (basique oui mais il est existe). Il faudra aussi penser à crypter le contenu des disques cela est proposé à l’install du linux(attention en cas de casse …).

 

La documentation de owncloud est très très fournie et l’utilité d’un tuto pour installer Owncloud sous Nginx est juste un petit luxe pour éviter de lire la documentation d’origine. L’essentiel étant de trouver le fichier config de Nginx (je vous en fourni un que j’ai copié-bricolé).

 

Tout d’abord les pré-requis :

php5 (>= 5.3)

php5-gd

php-xml-parser

php5-intl

 

On peut ajouter ceci à la liste

php5-sqlite (>= 3)

php5-mysql

smbclient

curl

libcurl3

php5-curl

 

Enfin aller chercher les sources ici http://owncloud.org/install/

 

Personnellement j’ai opté pour la version Mysql, essentiellement parce que j’ai déjà un serveur Mysql. Cela dit la version sqlite a l’air d’avoir de performances supérieures.

 

Je ne reviens pas sur l’install Nginx, j’ai déjà fait un tuto ici, cela dit celui de Nicolargo est encore mieux et propose les dépôts d’origine pour Ubuntu.

 

Maintenant que vous avez tout réuni il suffit de pomper en intégral le fichier de configuration Nginx proposé ci-dessous et le coller dans un fichier de config Nginx avec la commande suivante.

 

sudo gedit /etc/nginx/sites-available/owncloud

 

 

# redirect http to https.
server {
  listen 8081;
  server_name_in_redirect on;
  server_name owncloud.local;
  rewrite ^ https://$server_name$request_uri? permanent;  # enforce https
  }

# owncloud (ssl/tls)
server {
  listen 8443 ssl;
  server_name_in_redirect on;
  ssl_certificate /etc/nginx/certs/server.crt;
  ssl_certificate_key /etc/nginx/certs/server.key;
  server_name owncloud.local;
  root /home/jbaptiste/www/nginx/owncloud;


  client_max_body_size 1000M; # set maximum upload size
  fastcgi_buffers 64 4K;

  rewrite ^/caldav((/|$).*)$ /remote.php/caldav$1 last;
  rewrite ^/carddav((/|$).*)$ /remote.php/carddav$1 last;
  rewrite ^/webdav((/|$).*)$ /remote.php/webdav$1 last;
	
  index index.php;
  error_page 403 = /core/templates/403.php;
  error_page 404 = /core/templates/404.php;	
	
  # deny direct access
  location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
    deny all;
  }

  location / {
    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
    try_files $uri $uri/ @webdav;
   }
	 # owncloud WebDAV
  location @webdav {
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    fastcgi_pass 127.0.0.1:9000; # or use php-fpm with: "unix:/var/run/php-fpm/php-fpm.sock;"
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS on;
    include fastcgi_params;
  }
  location ~ ^(?<script_name>.+?\.php)(?<path_info>/.*)?$ { # regexp required pcre installed, otherwise try 'location ~ ^(.+?\.php)(/.*)?$ {'
    try_files $script_name = 404; # Or 'try_files $1 = 404;' if you don't have pcre installed

    include fastcgi_params;
    fastcgi_param PATH_INFO $path_info; # Or 'fastcgi_param PATH_INFO $2;' if you don't have pcre installed
    fastcgi_param HTTPS on;
    fastcgi_pass 127.0.0.1:9000; # Or use unix-socket with 'fastcgi_pass unix:/var/run/php5-fpm.sock;'
  }

  # Optional: set long EXPIRES header on static assets
  location ~* ^.+.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
    expires 30d;
    # Optional: Don't log access to assets
    access_log off;
  }

}

 

une fois sauvegardé faire un lien dans sites-enableb avec la commande

 

sudo ln -s /etc/nginx/sites-available/owncloud /etc/nginx/sites-enabled/owncloud

 

 

 

 

On va modifier le fichiers hosts pour ajouter une ligne avec la commande suivante

 

sudo gedit /etc/hosts   

 

 

 

 

Ajoutez la ligne

127.0.0.1 owncloud.local



Vous devez vous faire un certificat auto signé, le problème il est possible que celui ci soit refusé par l’application Android, IOS etc ….

 

Si on tente le restart avec la commande ci-dessous

 

sudo service nginx restart

 

 

  vous allez obtenir une erreur du style

Restarting nginx: nginx: [emerg] SSL_CTX_use_certificate_chain_file("/etc/nginx/certs/server.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory error:20074002:BIO routines:FILE_CTRL:system lib error:140DC002:SSL routines:SSL_CTX_use_certificate_chain_file:system lib)
nginx: configuration file /etc/nginx/nginx.conf test failed

 

 

Va falloir créer les certificats :

on va créer le répertoire pour les certificats

sudo mkdir /etc/nginx/certs
cd  /etc/nginx/certs

 

on va créer la clef

 

sudo openssl genrsa -des3 -out server.key 1024

 

------

jbaptiste@Ubuntu-v2:/etc/nginx/certs$ sudo openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus
..++++++
..........................++++++
e is 65537 (0x10001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:

 

------

on va créer le certificat

 

sudo openssl req -new -key server.key -out server.csr

 

 ----

 

jbaptiste@Ubuntu-v2:/etc/nginx/certs$ sudo openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:France
Locality Name (eg, city) []:Courbevoie
Organization Name (eg, company) [Internet Widgits Pty Ltd]:GeekMPS
Organizational Unit Name (eg, section) []:GeekMPS
Common Name (e.g. server FQDN or YOUR name) []:GeekMPS
Email Address []:Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:         
An optional company name []:
jbaptiste@Ubuntu-v2:/etc/nginx/certs$

 

 

 

sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key

 

-----

jbaptiste@Ubuntu-v2:/etc/nginx/certs$ sudo cp server.key server.key.org
jbaptiste@Ubuntu-v2:/etc/nginx/certs$ sudo openssl rsa -in server.key.org -out server.key
Enter pass phrase for server.key.org:
writing RSA key
jbaptiste@Ubuntu-v2:/etc/nginx/certs$ 

 

 

----

 

Enfin il faut signer le certificat

 

sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

 

sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=FR/ST=France/L=Courbevoie/O=GeekMPS/OU=GeekMPS/CN=GeekMPS/emailAddress=Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Getting Private key

 



 

sudo service nginx restart

 

 

 

L’install commence et elle est ultrasimple, elle consiste juste à choisir une base de donnée (Avancé pour mysql)

 

Voilà si vous avez tout bien fait dans un navigateur un petit https://owncloud.local:8443 pour accèder à votre owncloud

OwnCloud 5  img 001 OwnCloud 5  img 002 OwnCloud 5  img 003 OwnCloud 5  img 004 OwnCloud 5  img 005 OwnCloud 5  img 006 OwnCloud 5  img 007 OwnCloud 5  img 008 OwnCloud 5  img 009 OwnCloud 5  img 010 OwnCloud 5  img 011 OwnCloud 5  img 012 OwnCloud 5  img 013 OwnCloud 5  img 014 OwnCloud 5  img 015 




Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :


Commentaires

  • Aucun commentaire trouvé

Poster un commentaire en tant qu'invité

0

La pub ça ne rapporte pas grand chose, en plus ça vous laisse d'horribles cookies non comestibles, autrement appelé trackers. Ce cookie est utilisé par DoubleClick (Google Adsense). Vous avez le droit de ne pas en vouloir et donc quitter cet excellent blog. (par ailleurs j'utilise piwik).