Paul Jusot

Portfolio développeur

Services informatiques à soi-même et à ses amis

À la recherche d'un sujet pour cette veille technologique, j'ai finalement décidé de revenir à mes premières amours et à une des raisons qui m'ont amené à aimer l'informatique: vivre avec mon temps et être prêt pour le jour où nous serons en guerre ou en dictature (ou les deux).

Ce jour là, il nous faudra peut-être nous nourrir par nous-même, faire du vélo, réparer sa maison, ses vêtements. Il faudra modifier notre consommation d'internet, s'éloigner des GAFAM et de l'État, privilégier des moyens de communications décentralisés et crypter ses échanges de bout en bout.

Auto-hébergement

Choix d'un fournisseur d'accès à internet.

Je pratique l'auto-hébergement depuis huit ans, en fait dès que j'ai eu mon propre appartement durable (non-étudiant). J'y ai trouvé ici des conseils sur le choix du FAI. Les quatre FAI grand public sont à éviter parce qu'il vont rendre la tâche plus difficile.

La première chose est d'obtenir une adresse IP4 fixe! Il existe des solutions de contournement (DNS dynamique) qui ne seront jamais aussi simples et stables que d'avoir une IP à soi. En outre, je me demande si l'obtention d'une IP dynamique pourrait expliquer que ma box met 1min à redémarrer contre 5min pour celles d'Orange.

Ensuite il faut qu'il soit possible de passer la box en mode pont (bridge), c'est à dire retirer à sa box le fait d'être un "routeur" pour pouvoir installer son propre routeur derrière.

Comme autres critiques des FAI grand public, on trouve des choses surprenantes: des serveurs DNS menteurs, une réduction de la bande passante, le filtrage de certains ports (SMTP surtout, une histoire de spam) et bien sûr le non-respect de pas la vie privée des clients.
Le moins mauvais des quatre est Free, une "boite de geeks".

Le meilleur choix proposé était de passer par un FAI associatif comme la FDN. Malheureusement leurs prix sont très élevés.
https://www.fdn.fr/services/acces-internet/

En deuxième et troisième choix, il y avait les FAI pour entreprises Nerim et OVH. J'ai choisi OVH qui m'a expédié un modem-routeur Thomson Technicolor reconditionné.

Choix d'un routeur

Dans le cas où l'on souhaite (et où l'on peut) passer sa box en mode pont et utiliser son propre routeur, deux possibilités s'offrent à nous:

  • utiliser un routeur wifi du commerce
  • utiliser un ordinateur configuré pour servir de routeur: un mini PC ou une vieille tour de l'an 2000 conviennent à la condition de disposer de deux ports RJ45.

Je n'ai personnellement pas été jusque là dans ma propre installation, n'en ayant pas besoin. Je me suis abstenu à des TP sur Vitualbox, j'envisage pourtant la possibilité de le faire, dans la mesure ou ma box est ancienne et peut-être insuffisement sécurisée (au niveau du wifi par exemple).

pfSense

Dans le deuxième cas, il nous faudra installer et configurer un système d'exploitation. Le plus simple est d'utiliser pfSense, un OS basé sur freeBSD qui sert exactement à faire ça et qui est très facile à configurer.

L'interface wan est la porte vers le monde extérieur (une IP dynamique apparaît sur l'image parce qu'il s'agit d'un essai dans Virtualbox, en vrai elle sera statique).
L'interface lan est le réseau local, on y branchera un switch 4 ports à 10€.

Taper 1 (en qwerty) pour associer le bon port RJ45 à la bonne interface, wan ou lan.

Taper 2 pour choisir les IP et mettre en place le serveur DHCP sur l'interface lan.

Choix d'un serveur

S'agissant d'un usage personnel et, pour l'instant, pédagogique, je ne regarde pas les performances mais les coûts. J'utilise donc un netbook qui demande un alimentation de 30W (il consomme donc moins), en l'occurence un Acer Aspire One qui est la version Acer du célèbre EeePC d'Asus.

Zone DNS de mon domaine

Transfert de ports

Configuration de ma box. Trois étapes:

  1. vérifier que mon serveur a une IP fixe connue de la box.
  2. créer des "applications", il est possible de changer le port si le serveur écoute sur un port inhabituel (exemple: HTTP sur 8080).
  3. attribuer les applications au serveur, si une requête de l'extérieur arrive sur un port attribué, le routeur la redirigera vers le serveur.

Choix d'un système d'exploitation

Debian sans hésitation!

Debian est réputé pour sa stabilité et possède une réputation particulière. C'est une distribution Linux entièrement libre qui est utilisée par des entreprises petites et grandes, le développement de Debian est un sujet très sérieux pris en charge par des gens l'utilisant sur leur lien de travail.

Debian fait partie des distributions linux "faciles" d'utilisation. Les logiciels ont une configuration par défaut oritentée sécurité, le serveur Postfix par exemple, n'écoute que localhost par défaut, ce qui est suffisant pour le formulaire de contact de mon site web.

Debian est également connu pour ses logiciels datés de deux ans. Un nouvelle version stable de l'OS paraît tous les deux ans après avoir traversé une phase de test qui débute à la parution de la version précédente. En fait, c'est ce qu'on attend d'un serveur. Un système qui ne bouge pas et qu'il n'est pas nécéssaire de redémarrer souvent. Il existerait d'ailleurs des serveurs qui n'ont pas été redémarré depuis plus d'un an.

Noter que Debian fait parti des systèmes qui supportent encore le 32 bits (comme mon netbook justement) et il n'en reste plus beaucoup.

Pourquoi Windows est un mauvais choix?
Windows Server est conçu pour les organisations, je n'ai pas besoin d'un contrôleur de domaine, ni de donner des autorisations précises à des groupes d'utilisateurs.
Les coûts de licence incluent celle du serveur, celles de postes sous windows pro et la connexion au domaine de chaque poste!
Une machine puissante est nécéssaire, même avec l'installation sans interface graphique.

Et si les allemands revenaient?

Il y a cette distribution de vieux barbus: Slackware.

Atypique et anachronique, elle a notamment la particularité de tenir entièrement sur un DVD (= 4,7Go). L'installateur installera par défaut tous les paquets de la distribution. On pourra ensuite activer ou désactiver des fonctionnalités.

Son mode de parution est similaire à celui de Debian. En revanche c'est une distribution bien plus difficile d'accès, qui demande beaucoup de temps et de connaissances.

En somme, c'est le système idéal pour vous accompagner au sommet de l'Himalaya ou pour monter un petit réseau dans un bunker antiatomique.

Serveur web

Les explications techniques sont sur la page Déploiement d'une appli PHP.

Apprendre à manipuler des hôtes vituels est très utile. Il est possible de ne payer qu'un domaine et de servir des sous-domaines. Il est également possible de servir des domaines qui n'ont rien à voir.

Notre machine n'a pas elle-même de nom de domaine. Nous avons juste une IP sur internet et un registrar qui répond aux requêtes DNS. Le serveur web se contente de lire le domaine indiqué dans l'en-tête HTTP et de choisir un hôte virtuel.

Serveurs de messagerie

Mon site personnel contient un formulaire de contact me permettant de ne pas montrer mon adresse e-mail aux robots. PHP doit donc envoyer les messages à un Mail Transfer Agent (MTA), c'est à dire à un serveur SMTP. J'en ai donc un qui se nomme Postfix.

Le Mail Transfer Agent transfert les messages. Il peut les envoyer à un autre MTA ou à un Mail Delivery Agent (MDA), c'est à dire un serveur POP/IMAP. Il se nomme Dovecot.

Risque d'héberger un MTA

Il faut pouvoir gérer soit-même deux problèmes: la réception de spam à l'aide d'un filtre anti-spam et surtout l'envoi de spam puisque le serveur peut être utiliser pour en retransmettre. Il est possible de n'héberger que le MDA et d'utiliser un SMPT extérieur mieux sécurisé.

J'ai choisi la sécurité et configuré Postfix pour n'écouter que sur localhost. Je récupère les e-mails avec Thunderbird et n'utilise l'adresse e-mail correspondante qu'en réception.

Mon serveur n'est pas assez fiable pour aller plus loin, j'ai trop fréquement des coupures de courant ou d'internet.

Nextcloud

Matomo et RGPD

Je souhaite répondre à deux questions. Mes sites ont-t'ils des visiteurs? Et est-ce que ceux qui ne sont pas censées en avoir (Nextcloud) en ont?

Matomo se veut adapté à qui souhaite respecter la loi. Il est possible de n'enregistrer que le minimum d'informations (le nombre de visites) ou un peu plus de choses pendant un temps limité. Je souhaite bien sûr ne pas devenir obligé de faire une déclaration à la CNIL.

Matomo n'est pas indispensable pour compter les visites. Un évènement javascript, un bout de PHP et une base de données suffisent, toute la difficulté est de distinguer les être humains de robots.

Le script javascript utilisé par Matomo ne remplit pas non plus correctement cet objectif. J'ai donc changé de stratégie: demander à Matomo de garder les adresses IP et de mon montrer le pays correspondant, et aussi de compter ceux qui arrive sur la page de connexion de Nextcloud.

Le résultat est sans surprise: mes visiteurs sont pour la plupart américains et chinois, et Nextcloud a parfois des "visiteurs".

IPv6?

Protection sur le web

Choix d'un navigateur internet

Il n'existe de nos jours plus que deux navigateurs sérieux sur le marché: Chromium et Firefox (et Safari aussi, j'avais oublié), les autres ne sont que des surcouches de Chromium.

Le premier est financé par Google et le second... aussi. Google fait d'ailleurs l'actualité à ce sujet.

Tous deux sont "open-source" à ceci près que les développeurs de Chromium ne proposent pas de "build" du navigateur sur leur site. Vous devrez le compiler vous même (mauvais idée) ou trouver quelqu'un qui l'a fait pour vous. Des "build"sont disponibles dans la plupart des distribution Linux ou dans des catalogues comme Chocolatey.

Extensions de Firefox

Javascript non-libre

Le problème du respect de la vue privée des utilisateurs sur le web est abordée à sa manière par Richard Stallman. Il considère que le code client d'un site web est non-libre (comme une application à source fermée) lorsqu'il cache ce qu'il fait ou plus généralement lorsqu'il fait quelque chose qu'il ne montre pas au visiteur.

Le bout de code JS utilisé par le compteur de visites Matomo est donc non-libre, même si lorsque Matomo est configuré dans le respect du visiteur (il n'enregistre aucune donnée permettant de l'identifier, pas même son IP), puisqu'il fait quelque chose dans le dos visiteur et sans le prévenir.

Un code obfusqué (modifié pour être difficile à comprendre sans pour autant modifier son effet) est également considéré non-libre, mais cet argument est moins pertinent qu'il n'en a l'air. D'une part il ne concerne que les développeurs et d'autres part il est facile de trouver des outils pour désobfusquer le code (demandez à l'IA).

 

Dégoogueulisons-nous

Installation d'Android

Comme Chromium, Android est open-source mais ne propose pas de "build" officiel. Ce sont les fabriquants de téléphone qui s'en chargent.

LineageOS (ancien CyanogenMod) est un "build" d'Android pur, sans Google Play Store, sans "bloatware" du fabriquant et parfois sans tous les pilotes nécéssaires.

Utiliser ce système présente de grands avantages et de grands inconvénients:

Avantages:

  • Le système est bien plus respectueux de votre privée.
  • Il permet plus ou moins de prolonger la durée de vie d'un téléphone ne bénéficiant plus de mise à jours.
  • Utiliser un téléphone sans "services Googles" est excellent pour les performances et pour la batterie.
  • Les applications proposées dans F-droid requièrent généralement moins d'autorisations du système.

Inconvénient:

  • Certaines applications refusent de fonctionner lorsqu'elle ne sont pas installées depuis le Play Store, notamment les applications des banques. Le Play Store fournit un service de contrôle d'intégrité et de signature que ces applications utilisent.
  • Les sécurités offertent par l'utilisation d'un compte Google lié au téléphone ne sont donc pas disponibles.
  • LineageOS n'est pas plus-and-play. Il y a des difficultés à chaque étape, ne serait-ce que pour trouver le "build" correspondant à son modèle de téléphone.

Services réseaux populaires auto-hébergés ou sur des plateformes alternatives

Framasoft

Yunohost