Title: [FR] Pourquoi j'utilise OpenBSD | |
Author: Solène | |
Date: 04 January 2021 | |
Tags: openbsd francais | |
Description: | |
Dans ce billet je vais vous livrer mon ressenti sur ce que j'aime dans | |
OpenBSD. | |
### Respect de la vie privée | |
Il n'y a aucune télémétrie dans OpenBSD, je n'ai pas à m'inquiéter | |
pour le respect de ma vie privée. Pour rappel, la télémétrie est un | |
mécanisme qui consiste à remonter des informations de l'utilisateur | |
afin d'analyser l'utilisation du produit. | |
De plus, le défaut du système a été de désactiver entièrement le | |
micro, à moins d'une intervention avec le compte root, le microphone | |
enregistre du silence (ce qui permet de ne pas le bloquer quant à des | |
droits d'utilisation). A venir dans 6.9, la caméra suit le même | |
chemin et sera désactivée par défaut. Il s'agit pour moi d'un signal | |
fort quant à la nécessité de protéger l'utilisateur. | |
### Navigateurs web sécurisés | |
Avec l'ajout des fonctionnalités de sécurité (pledge et surtout | |
unveil) dans les sources de Firefox et Chromium, je suis plus sereine | |
quant à leur utilisation au quotidien. À l'heure actuelle, | |
l'utilisation d'un navigateur web est quasiment incontournable, mais | |
ils sont à la fois devenus extrêmement complexes et mal maîtrisés. | |
L'exécution de code côté client via Javascript qui a de plus en plus | |
de possibilité, de performances et de nécessités, ajouter un peu de | |
sécurité dans l'équation était nécessaire. Bien que ces ajouts | |
soient parfois un peu dérangeants à l'utilisation, je suis vraiment | |
heureuse de pouvoir en bénéficier. | |
Avec ces sécurités ajoutés (par défaut), les navigateurs cités | |
précédemment ne peuvent pas parcourir les répertoires en dehors de | |
ce qui leur est nécessaire à leur bon fonctionnement plus les | |
dossiers ~/Téléchargements/ et /tmp/. Ainsi, des emplacements comme | |
~/Documents ou ~/.gnupg sont totalement inaccessibles ce qui limite | |
grandement les risques d'exfiltration de données par le navigateur. | |
On pourrait refaire grossièrement la même fonctionnalité sous Linux | |
en utilisant AppArmor mais l'intégration est extrêmement compliquée | |
(là où c'est par défaut sur OpenBSD) et un peu moins efficace, il | |
est plus facile d'agir au bon moment depuis le code plutôt qu'en | |
encapsulant le programme entier d'un groupe de règles. | |
### Pare-feu PF | |
Avec PF, il est très simple de vérifier le fichier de configuration | |
pour comprendre les règles en place sur le serveur ou un ordinateur de | |
bureau. La centralisation des règles dans un fichier et le système de | |
macros permet d'écrire des règles simples et lisibles. | |
J'utilise énormément la fonctionnalité de gestion de bande passante | |
pour limiter le débit de certaines applications qui n'offrent pas ce | |
réglage. C'est très important pour moi n'étant pas la seule | |
utilisatrice du réseau et ayant une connexion assez lente. | |
Sous Linux, il est possible d'utiliser les programmes trickle ou | |
wondershaper pour mettre en place des limitations de bande passante, | |
par contre, iptables est un cauchemar à utiliser en tant que firewall! | |
### C'est stable | |
A part à l'utilisation sur du matériel peu répandu, OpenBSD est | |
très stable et fiable. Je peux facilement atteindre deux semaines | |
d'uptime sur mon pc de bureau avec plusieurs mises en veille par jour. | |
Mes serveurs OpenBSD tournent 24/24 sans problème depuis des années. | |
Je dépasse rarement deux semaines puisque je dois mettre à jour le | |
système de temps en temps pour continuer les développements sur | |
OpenBSD :) | |
### Peu de maintenance | |
Garder à jour un système OpenBSD est très simple. Je lance les | |
commandes syspatch et pkg_add -u tous les jours pour garder mes | |
serveurs à jour. Une mise à jour tous les six mois est nécessaire | |
pour monter en version mais à part quelques instructions spécifiques | |
qui peuvent parfois arriver, une mise à jour ressemble à ça : | |
```liste de commandes shells qui commencent par un # pour préciser que l'utili… | |
# sysupgrade | |
[..attendre un peu..] | |
# pkg_add -u | |
# reboot | |
``` | |
### Documentation de qualité | |
Installer OpenBSD avec un chiffrement complet du disque est très | |
facile (il faudra que j'écrive un billet sur l'importance de chiffrer | |
ses disques et téléphones). | |
La documentation officielle expliquant l'installation d'un routeur avec | |
NAT est parfaitement expliquée pas à pas, c'est une référence dès | |
qu'il s'agit d'installer un routeur. | |
Tous les binaires du système de base (ça ne compte pas les packages) | |
ont une documentation, ainsi que leurs fichiers de configuration. | |
Le site internet, la FAQ officielle et les pages de man sont les seules | |
ressources nécessaires pour s'en sortir. Elles représentent un gros | |
morceau, il n'est pas toujours facile de s'y retrouve mais tout y est. | |
Si je devais me débrouiller pendant un moment sans internet, je | |
préférerais largement être sur un système OpenBSD. La documentation | |
des pages de man suffit en général à s'en sortir. | |
Imaginez mettre en place un routeur qui fait du trafic shaping sous | |
OpenBSD ou Linux sans l'aide de documents extérieurs au système. | |
Personnellement je choisis OpenBSD à 100% pour ça :) | |
### Facilité de contribution | |
J'adore vraiment la façon dont OpenBSD gère les contributions. Je | |
récupère les sources sur mon système et je procède aux | |
modifications, je génère un fichier de diff (différence entre | |
avant/après) et je l'envoie sur la liste de diffusion. Tout ça peut | |
être fait en console avec des outils que je connais déjà (git/cvs) | |
et des emails. | |
Parfois, les nouveaux contributeurs peuvent penser que les personnes | |
qui répondent ne sont vraiment pas sympa. **Ce n'est pas vrai**. Si | |
vous envoyez un diff et que vous recevez une critique, cela signifie | |
déjà qu'on vous accorde du temps pour vous expliquer ce qui peut | |
être amélioré. Je peux comprendre que cela puisse paraître rude | |
pour certaines personnes, mais ce n'est pas ça du tout. | |
Cette année, j'ai fait quelques modestes contributions aux projets | |
OpenIndiana et NixOS, c'était l'occasion de découvrir comment ces | |
projets gèrent les contributions. Les deux utilisent github et la | |
manière de faire est très intéressante, mais la comprendre demande | |
beaucoup de travail car c'est relativement compliqué. | |
Site officiel d'OpenIndiana | |
Site officiel de NixOS | |
La méthode de contribution nécessite un compte sur Github, de faire | |
un fork du projet, cloner le fork en local, créer une branche, faire | |
les modifications en local, envoyer le fork sur son compte github et | |
utiliser l'interface web de github pour faire un "pull request". Ça | |
c'est la version courte. Sur NixOS, ma première tentative de faire un | |
pull request s'est terminée par une demande contenant six mois de | |
commits en plus de mon petit changement. Avec une bonne documentation | |
et de l'entrainement c'est tout à fait surmontable. Cette méthode de | |
travail présente certains avantages comme le suivi des contributeurs, | |
l'intégration continue ou la facilité de critique de code, mais c'est | |
rebutoire au possible pour les nouveaux. | |
### Packages top qualité | |
Mon opinion est sûrement biaisée ici (bien plus que pour les | |
éléments précédents) mais je pense sincèrement que les packages | |
d'OpenBSD sont de très bonne qualité. La plupart d'entre eux | |
fonctionnent "out of the box" avec des paramètres par défaut | |
corrects. | |
Les packages qui nécessitent des instructions particulières sont | |
fournis avec un fichier "readme" expliquant ce qui est nécessaire, par | |
exemple créer certains répertoires avec des droits particuliers ou | |
comment mettre à jour depuis une version précédente. | |
Même si par manque de contributeurs et de temps (en plus de certains | |
programmes utilisant beaucoup de linuxismes pour être faciles à | |
porter), la plupart des programmes libres majeurs sont disponibles et | |
fonctionnent très bien. | |
Je profite de l'occasion de ce billet pour critiquer une tendance au | |
sein du monde Open Source. | |
* les programmes distribués avec flatpak / docker / snap fonctionnent | |
très bien sur Linux mais sont hostiles envers les autres systèmes. | |
Ils utilisent souvent des fonctionnalités spécifiques à Linux et les | |
méthodes de compilation sont tournées vers Linux. Cela complique | |
grandement le portage de ces applications vers d'autres systèmes. | |
* les programmes avec nodeJS: ils nécessitent parfois des centaines | |
voir des milliers des libs et certaines sont mêmes un peu bancales. | |
C'est vraiment compliqué de faire fonctionner ces programmes sur | |
OpenBSD. Certaines libs vont même jusqu'à embarquer du code rust ou | |
à télécharger un binaire statique sur un serveur distant sans | |
solution de compilation si nécessaire ou sans regardant si ce binaire | |
est disponible dans $PATH. On y trouve des aberrations incroyables. | |
* les programmes nécessitant git pour compiler: le système de | |
compilation dans les ports d'OpenBSD fait de son mieux pour faire au | |
plus propre. L'utilisateur dédié à la création des packages n'a pas | |
du tout accès à internet (bloqué par le pare-feu avec une règle par | |
défaut) et ne pourra pas exécuter de commande git pour récupérer du | |
code. Il n'y a aucune raison pour que la compilation d'un programme | |
nécessite de télécharger du code au milieu de l'étape de | |
compilation! | |
Évidemment je comprends que ces trois points ci-dessus existent car | |
cela facilite la vie des développeurs, mais si vous écrivez un | |
programme et que vous le publiez, ce serait très sympa de penser aux | |
systèmes non-linux. N'hésite pas à demander sur les réseaux sociaux | |
si quelqu'un veut tester votre code sur un autre système que Linux. On | |
adore les développeurs "BSD friendly" qui acceptent nos patches pour | |
améliorer le support OpenBSD. | |
### Ce que j'aimerais voir évoluer | |
Il y a certaines choses où j'aimerais voir OpenBSD s'améliorer. Cette | |
liste est personnelle et reflète pas l'opinion des membres du projet | |
OpenBSD. | |
* Meilleur support ARM | |
* Débit du Wifi | |
* Meilleures performances (mais ça s'améliore un peu à chaque | |
version) | |
* Améliorations de FFS (lors de crashs j'ai parfois des fichiers dans | |
lost+found) | |
* Un pkg_add -u plus rapide | |
* Support du décodage vidéo matériel | |
* Meilleur support de FUSE avec une possibilité de monter des | |
systèmes CIFS/samba | |
* Plus de contributeurs | |
Je suis consciente de tout le travail nécessaire ici, et ce n'est | |
certainement pas moi qui vais y faire quelque chose. J'aimerais que | |
cela s'améliore sans toutefois me plaindre de la situation actuelle :) | |
Malheureusement, tout le monde sait qu'OpenBSD évolue par un travail | |
acharné et pas en envoyant une liste de souhaits aux développeurs :) | |
Quand on pense à ce qu'arrive à faire une petite équipe (environ 150 | |
développeurs impliqués sur les dernières versions) en comparaison | |
d'autres systèmes majeurs, je pense qu'on est assez efficace! |