Auto-Hébergement de données
-
- Défi auquel répond le document :Vie privée, sécurité des données personnelles, Médiation Numérique
-
- Contributeurs: RenaudDenis, Ulyss, CorentinBrulé
-
- Organisme: OpenFactory
Module d'auto-formation pour installer un serveur dans votre Tiers Lieux.
Il 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.
Vous pouvez partager vos connaissances en l’améliorant (comment ?).
axée sur les buts, montre comment résoudre un problème spécifique, tout comme une série d’étapes.
- Elle est semblable à l’acte de cultiver des légumes ou à une recette dans un livre de cuisine.
- Répertoire : Toutes les pages de ce wiki de type Guide pratique
Projet collectif, documenté en open source, réalisé les lundis soirs depuis octobre 2017 au FabLab Open Factory.
Reprendre la main sur ses données numériques.
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.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 ?
- Parce qu'elle envoie du steak par rapport aux versions précédentes
- Parce que si on veut, on peut l'utiliser pour plein d'autres choses, par exemple en station d'émulation de retrogaming
Installation du serveur
Nous utilisons le système d'exploitation Raspbian, une distribution Debian pour Raspberry Pi.
Documentation complète sur Raspbian France : Installer Raspbian, premier démarrage et configuration.
- si vous êtes sous Debian actuellement : Installer une carte SD Raspberry avec Raspbian sous GNU/Linux
- si vous êtes sous Windows actuellement : Créez une carte SD Raspbian pour votre Raspberry Pi depuis Windows
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
- comment activer SSH au démarrage
- https://fr.wikipedia.org/wiki/Secure_Shell et le sécuriser au maximum, moment très important , car le seul moyen d'accéder à l'administration du serveur: création des clés de chiffrement
- Documentation
- doc très accessible, indispensable à maîtriser pour la gestion du serveurs: https://opipenclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/la-connexion-securisee-a-distance-avec-ssh
- très bon screencast => https://hackademy.io/tutoriel-videos/usage-avance-ssh
Installer un service d'hébergement de données
Autre-s
- Penser aux besoins (taille des partitions,...)
- voir la hiérarchie des systèmes de fichiers sous Linux
- https://yunohost.org/#/
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,...
- Petite doc concernant ce sujet sur MoviLab => http://movilab.org/index.php?title=R%C3%A9seaux
- Une doc super complète: http://www.linux-france.org/prj/edu/archinet/systeme/
- Une autre doc indispensable: http://irp.nain-t.net/doku.php
- Conférences de Benjamin Bayart:
- Qu'est-ce qu'Internet => https://www.youtube.com/watch?v=hQqq-3q4r7w
- Comprendre un monde qui change : Internet et ses enjeux => https://www.youtube.com/watch?v=yBmz29_5ffA
- Interview de Benjamin Bayart sur la surveillance généralisée: https://www.youtube.com/watch?v=CGzYQOruIZA
Se former au Raspberry Pi, une bonne solution pour commencer dans l'hébergement, pour une consommation électrique minimum
- Débuter avec le Raspberry https://www.youtube.com/watch?v=Gd1-YkvtVVs
- Listes de commandes de base sur un système GNU/Linux: https://www.tecmint.com/linux-commands-cheat-sheet/
- Commandes Linux pour commencer : https://www.tecmint.com/free-online-linux-learning-guide-for-beginners/
- Linux: commandes fondamentales: http://juliend.github.io/linux-cheatsheet/
- commandes linux sous forme de cas pratiques: http://www.epons.org/commandes-base-linux.php
- Site qui reference la plupart des distributions Linux: http://distrowatch.com/?language=FR
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:
- http://www.iletaitunefoisinternet.fr/dns-bortzmeyer/
- https://openclassrooms.com/courses/apprenez-le-fonctionnement-des-reseaux-tcp-ip/le-service-dns
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:
- Connexion SSH
- Sécuriser le serveur (firewall, https, anti rootkit, anti bruteforce,...)
- Faire du monitoring (connaitre l'état du serveur en temps réel)
- installer, configurer et gérer des services (serveur web, serveur base de donnée,...) : https://debian-facile.org/doc:system:systemd
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).
- Lecture online du livre: https://yeuxdelibad.net/ah/
- Site du projet OpenBSD: https://www.openbsd.org/
Initiateurs du projet
- Renaud Denis
- Stéphane Pernet
- Thomas Barbe
- Corentin Brulé