| 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! |