Auto-Hébergement de données

De Movilab.org
Aller à : navigation, rechercher

Projet collectif, documenté en open source, réalisé les lundis soirs depuis octobre 2017 au FabLab Open Factory.

Présentation du projet

Résumé

Ce projet est destiné à un public qui souhaite :

  • acquérir des compétences en informatique : installation de système d'exploitation, paramétrage, ligne de commandes, installation de logiciels...
  • héberger ses données soi-même
  • à terme, faire partie des C.H.A.T.O.N.S ( Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires ), c'est à dire proposer des services héberger pour des particuliers, associations et entreprises qui veulent se libérer des services propriétaires (Google, Amazon, Facebook, Apple, Microsoft) mais ne souhaitant pas héberger tout cela chez eux : mutualiser pour baisser les couts et rendre la démarche plus accéssible au plus grand nombre.

Pourquoi se lancer dans ce projet ?

Si c'est gratuit, c'est vous le produit.

Si vous en avez assez de donner vos données à Google, Instagram, Facebook, Apple, Microsoft, et tous les autres.
Si vous voulez toujours accéder à vos documents de manière ergonomique, et que vous voulez décider vous-mêmes des fonctionnalités de votre serveur.

A savoir avant de se lancer

Ce projet est destiné à des personnes qui souhaitent acquérir des compétences et des connaissances informatiques. Cela prend du temps, de l'énergie, et va vous faire fumer le cerveau à certains moments. Si vous voulez un truc tout prêt à l'emploi, achetez un NAS, louez un serveur chez un fournisseur... ici, c'est pour rentrer dans le dur.


Projet Trucs et astuces [[|XXX]]


Objectifs du projet

Faire un serveur de données :

  • sécurisé
  • pour accéder à des données personnelles
  • depuis n'importe quel ordi/smartphone
  • savoir le mettre à jour
  • pas mélanger le système et les données

Méthodologie de travail pour installer un serveur auto-hébergé et le sécuriser

Documentation orientée raspberry pi V3.
CC BY-SA 4.0 Auteur : Jose.gil sur Wikimedia Commons

Pourquoi une Raspberry ?

  • Parce que ça suffit pour ce projet en termes de puissance de traitement de données
  • Parce que ça suffit en termes de nombre d'accès simultanés
  • Parce que ça consomme très peu d'énergie

Pourquoi la version 3 ?

Installation du serveur

Nous utilisons le système d'exploitation Raspbian, une distribution Debian pour Raspberry Pi.

Raspbianscreenshot

Documentation complète sur Raspbian France : Installer Raspbian, premier démarrage et configuration.

Configuration

Guide de configuration très complet sur raspbian-france.fr, mais ne comporte pas tous les détails.

Voilà certaines pages sur lesquelles vous trouverez les détails manquants :

Assigner une adresse IP fixe

Installer le service SSH

Installer un service d'hébergement de données

Autre-s

Créer un user de type admin

droits sudo, supprimer user 'pi'

Installer le service NTP

https://fr.wikipedia.org/wiki/Network_Time_Protocol : synchronisation de l'horloge du serveur , indispensable pour un serveur, avoir un horodatage juste (logs)

Filtrer le traffic

ufw (surcouche à iptables) => très bon tuto: https://www.leshirondellesdunet.com/pare-feu-ufw

Installer et configurer fail2ban: anti bruteforce

Installer Rkhunter, Lynis et Logwatch

anti rootkit, outil d'audit et outil de log:

  • configurer en sortie l'envoie de mail => postfix (serveur mail)

Configurer le fichier du profil utilisateur

.bashrc (configurer les alias ainsi que le code d'avertissement lors d'une connexion par ssh)

Suppression des services inutiles, pour le cas d'un serveur

Changer les permissions sur certains outils (make, apt, dpkg,...)

A la fin de cette configuration, il peut être intéressant de faire une vérification d'intégrité du système de fichier, pour facilité la recherche de fichiers qui auraient été modifier par un intrus par exemple:

  • Outil: Integrit, le principe est de créer une base de données de hash des fichiers du serveur


Important: lorsque votre serveur sera opérationnel, il peut être intéressant de faire des tests de sécurité pour voir si d'un point de vue externe la sécurité de celui ci est de bonne qualité. Deuxième point important, essayer de maitriser un outil tel que les scripts Bash ou python pour automatiser certaines tâches.

Maintenant que le serveur est un minimum sécuriser, il va falloir installer les outils pour créer des services, ex: serveur web, serveur base de donnée,... Bien sur il faudra mettre à jour la sécurité avec de nouveau filtre du firewall, mots de passe complexe pour l'accès au serveur de base de donné,...


Ultra important;: on verra aussi la mise en place d'un outil de sauvegarde, car il peut aussi arriver que votre serveur tombe, ça peut être un piratage, mais aussi un problème électronique, la carte du Raspberry Pi peut tomber en panne:

  • Mise en place d'un système de backup sur disque dur externe ou clé usb à l'aide de Rsync.

Quel logiciels avons-nous besoins dans cette atelier pour faire tourner nos services ?

  • Généralement nous allons mettre en place des outils web:
  • un serveur web: Apache2, le plus ancien des serveurs, grosse communauté
  • Sécurisé le serveur web avec LetsEncrypt (HTTPS) => certificats gratuit et utilisable sur tous les navigateurs
  • Conf sur SSL/TLS, indispensable pour comprendre https: http://www.iletaitunefoisinternet.fr/ssltls-benjamin-sonntag/

Documentation

Pour avoir le privilège d'auto-héberger ses données, il faut avant tout valider certains prérequis:

Avoir une connaissance des réseaux et d'Internet: DNS, TCP/IP,...

Se former au Raspberry Pi, une bonne solution pour commencer dans l'hébergement, pour une consommation électrique minimum

Note: il existe d'autres cartes, même plus puissantes que le Raspberry Pi, mais le Raspberry Pi reste le plus utilisé, grâce à une très grande communauté.

IP Fixe

Avoir accès à une plage d'adresses Fixes, indispensable si on veux avoir accès au serveur 24/24 7/7, généralement c'est le cas chez les F.A.I, mais même si ils vous garantissent une IP fixe, ceci n'est pas toujours vrai, j'en ai fais l’expérience, mon serveur tournait depuis des semaines chez moi, et du jour au lendemain mon F.A.I m'a changé mon IP fixe.

Nom de domaine

Avoir un nom de domaine, pas indispensable pour accédez au serveur, mais peut être plus pratique si vous voulez accéder plus facilement aux différents services proposer par votre serveur, il est indispensable d'avoir des notions sur les DNS

Cours:

Routeur

Avoir accès au routeur de votre réseau (généralement pour de l'hébergement à la maison, avoir accès à la console d'administration de votre *BOX, ceci va nous permettre de rediriger les ports de la *BOX/routeur vers votre serveur interne au réseau:

Accès à la console d'administration: ouvrir un navigateur et tester les ip suivantes:192.168.0.1 ou 192.168.0.254 ou 192.168.1.0,...Sinon regarder la doc de votre BOX.

GNU/Linux

Une connaissance de systèmes GNU/Linux et Unix est indispensable, ainsi que l’administration de serveurs dans sont ensemble :

Actions d'un administrateur:

Bonus game

Doc qui parle de Linux : https://www.youtube.com/watch?v=wa4Lz3c-BCY

Comme y'a pas que les p'tites cartes du type Raspberry Pi ainsi que les systèmes GNU/Linux dans la vie, y'a un système de la famille des Unix Libre qui est parfait pour monter du serveur: OpenBSD, système qui à souvent plusieurs années d’avance sur les autres quand ils s'agit de sécurité (c'est l'équipe en charge de Openbsd qui a mis au point SSH et Packet Filter). Voici un lien vers un livre en téléchargement gratuit et en français (on peut acheter la version imprimable), qui fait un tour complet du système pour de l'auto-hébergement, séreux, c'est le meilleur bouquin sur le sujet qui existe actuellement, malheureusement ce système n'est pas directement installable sur un Raspberry Pi, mais il existe des petits boitiers qui permet l'installation d'un tel système et qui consomme très peut d’électricité (boitiers Soekris).

Membres du projet

  • Renaud Denis
  • Stéphane Pernet
  • Thomas Barbe
  • Corentin Brulé