Il y a quelques jours je vous ai montré comment installer Owncloud sur un serveur Debian, mais l’intéret de ce dernier était limité puisque je ne pouvais pas l’utiliser de n’importe où. Je vais donc vous expliquer ce que j’ai fait, pour rendre disponible mon serveur OwnCloud sur internet, et ainsi pouvoir l’utiliser de n’importe où !

Les pré-requis ?

Dans mon cas, rendre disponible sur internet ce serveur est plus facile, puisque grâce à mon site (sur lequel vous lisez cet article), qui est hébergé chez OVH, j’ai la possibilité de créer des sous-domaines, ainsi que des enregistrements DNS (si vous souhaitez comprendre ce qu’est DNS, cliquez ici).

Autre point, étant chez Free, avec la Fibre Optique, j’ai également la possibilité d’avoir une adresse IP fixe, ce qui simplifie énormément la chose, puisque je vais ainsi pouvoir faire pointer le sous-domaine de mon choix, vers mon adresse IP Free.

Si vous n’avez pas d’adresse IP fixe, ni la possibilité de créer de sous-domaines, il vous faudra alors utiliser le DynDNS, c’est à dire un DNS Dynamique, qui se mettra à jour lorsque votre Adresse IP changera. Certains sont gratuits, d’autre payant, à voir donc en fonction de votre besoin.

Adresse IP, sous-domaine et enregistrement DNS

Pour commencer, j’ai donc récupéré dans l’interface Web de ma Freebox, l’adresse IP qui m’est attribué.

Ensuite, dans mon espace OVH, j’ai ajouté une entrée DNS, en indiquant le nom du sous domaine souhaité, ainsi que l’adresse IP de ma Freebox en tant que cible.

Reverse Proxy et Let’s Encrypt

Maintenant que j’ai mon sous-domaine d’enregistré et le lien vers mon adresse IP de fait, il faut configurer le lien vers mon serveur OwnCloud. Dans mon cas, j’ai déjà un serveur Reverse Proxy (pour en savoir plus cliquez ici) que je vais utiliser pour rediriger le flux vers mon serveur OwnCloud.

Pour faire simple, le Reverse Proxy est la seule machine qui sera accessible via internet et mon adresse IP fixe. C’est ensuite lui, qui en fonction des requêtes, redirigera ou non vers le serveur OwnCloud ! Il s’agit simplement d’un serveur web qui vient s’intercaler entre ma Freebox et OwnCloud. Personnellement j’ai installé NGINX, mais c’est également possible avec Apache.

On commence donc par configurer NGINX, et pour cela, une fois connecté sur mon serveur en SSH, je me rends à l’emplacement /etc/nginx/sites-availables

Puis j’édite le fichier default via la commande nano default

Dans ce fichier, je vais ajouter les infos suivantes afin de paramétrer la redirection vers mon serveur OwnCloud :

server {
        server_name cloud.cloriou.fr;
        location / {
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_pass      http://192.168.1.111/;
                proxy_buffering off;
                client_max_body_size 0;
                proxy_connect_timeout 3600s;
                proxy_read_timeout 3600s;
        }

Il faut ensuite redémarrer le service nginx pour que les modifications soient prises en compte via service nginx restart.

Afin de sécuriser les échanges je vais utiliser le protocole https, et donc pour cela, il me faut un certificat. Et grâce à Let’s Encrypt il est maintenant possible d’obtenir un certificat gratuitement, ce qui n’est pas négligeable ici.

Pour faire cela, j’utilise l’outil certbot qui va me permettre d’activer le protocole https et de générer un certificat en quelques secondes.

Je vous passe l’installation de Certbot, tout est indiqué sur le site, et ce n’est pas le but de cet article. On va donc générer le certificat, et pour cela, toujours sur mon serveur reverse proxy, je saisi la commande certbot --nginx qui va exécuter l’utilitaire.

Si plusieurs sites sont configurés dans nginx, certbot vous demande pour lequel vous souhaitez générer un certificat. Ensuite, il vous demande si vous souhaitez rediriger les requêtes http vers du https, ce que je vous invite fortement à faire pour des raisons de sécurité.

Et voilà, il est maintenant possible, d’accéder à mon serveur OwnCloud depuis internet et donc de n’importe où via le sous-domaine que j’ai créé sous OVH, mon IP fixe, et mon serveur NGINX !

J’espère que cet article vous a plu, et comme d’habitude, n’hésitez pas à le partager autour de vous.

À bientôt sur cloriou.fr