Au cours du mois de novembre, j'ai eu envie de redécouvrir des systèmes d'exploitation alternatifs à Windows et j'ai choisi d'explorer l'univers UNIX à travers un système faisant partie d'une des branches de cet univers : OpenBSD.
Étant donné que nous sommes sur un système de niche, dans le sens où il est moins connu que les distributions GNU/Linux, j'avais envie de vous le présenter de manière concise et de vous résumer mon exploration à travers un petit article qui rassemble toutes sortes d'informations qui pourront vous être utiles.
Présentation rapide du système et du projet
OpenBSD est un projet créé en 1994 par Theo de Raadt, à la suite d'un conflit entre ce développeur et l'équipe de développement de NetBSD, un autre système d'exploitation de la branche des BSD (acronyme pour Berkeley Software Distribution ou Collection de Logiciels de l'université de Berkeley). Jugeant que le développement de NetBSD souffrait de plusieurs problèmes au niveau de la sécurité et de la fiabilité du code, Theo décida de lancer un projet où la sécurité aurait un point d'honneur, tout en offrant un environnement modulaire et adaptable sur de nombreuses plateformes.
Au bout de plusieurs années, les efforts de Theo et de son équipe ont donné naissance à un système d'exploitation qui est considéré comme l'un des systèmes les plus sécurisés en mode installation par défaut et qui a grandement contribué au monde du Libre. Ainsi, son équipe a notamment développé OpenSSH, un programme permettant de se connecter sur un ordinateur à distance à l'instar de Telnet, tout en chiffrant les communications entre le client et le serveur. Ce programme est désormais connu de tous les sysadmins et a été importé dans presque tous les systèmes de type UNIX aujourd'hui, à tel point que c'est devenu un incontournable.
Principaux atouts d'OpenBSD
-
Sécurité : OpenBSD est un système sécurisé et très bien conçu contre les attaques. Ainsi, il désactive par défaut les connexions à distance au compte super-utilisateur et n'installe que le minimum nécessaire pour utiliser son système, ce qui évite d'installer potentiellement un programme pouvant faciliter les intrusions. L'équipe de développement porte d'ailleurs une grande attention au code et n'hésite pas à retirer tout code pouvant introduire des failles au sein du système avant publication. De plus, son pare-feu, nommé PF, est d'ailleurs utilisé par le projet FreeBSD comme pare-feu par défaut.
-
Portabilité : Étant dérivé du projet NetBSD (dont le mot d'ordre est la portabilité sur un très grand nombre de plateformes), OpenBSD peut s'installer sur un très grand nombre d'architectures. Pour vous donner un exemple, il est possible de l'installer sur de vieux MacBooks sous PowerPC ou bien sur des ordinateurs VAX, un type d'ordinateurs assez rare qui n'est plus développé aujourd'hui. Autant vous dire qu'il fonctionne plutôt bien, même s'il est parfois limité sur du matériel récent.
-
Simplicité d'installation : Si on suit les options activées automatiquement par l'installateur, le système s'installe en une dizaine de minutes et est configuré pour vous donner assez d'espace pour installer de nombreux programmes et pour stocker vos données utilisateurs. On appuie littéralement plus souvent sur la touche Entrée que sur les autres touches. Et pour ceux qui souhaitent plus d'options de configuration pour leur disque dur (chiffrement, RAID logiciel), le shell intégré vous donnera tous les outils nécessaires pour le faire sans problème.
-
Unicité : Vu que le système est développé par une seule équipe, l’ensemble des outils fournis fonctionne de manière cohérente et stable. C’est l’une des plus grandes forces de BSD par rapport aux distributions Linux.
-
Qualité de la documentation : OpenBSD est souvent mis en avant pour la grande qualité de sa documentation. En effet, elle est souvent très détaillée et offre même des exemples simples de configuration pour mieux comprendre son fonctionnement. C'est en partie pour cette raison que peu de tutos sont disponibles pour OpenBSD : tout est expliqué clairement dans la documentation et sur le site officiel. Cela explique aussi les RTFM (Read The Fucking Manual ou Lis-Le Putain de Manuel) que l'on peut avoir en guise de réponse sur certaines demandes d'aide dans les forums ou les listes de diffusion.
Principaux défauts d'OpenBSD
-
C'est une BSD : Ce qu'il faut comprendre par cette affirmation, c'est qu'OpenBSD fonctionne différemment des autres UNIX et de Linux en général. Même si beaucoup de commandes fonctionnent de manière identique, son architecture est différente et ne repose pas sur les mêmes standards qu'Ubuntu, Debian ou CentOS par exemple.
Je vais prendre comme exemple la commande shutdown : sous Linux, il suffit de faireshutdown -h now
pour éteindre son ordinateur via SSH. Sous OpenBSD, il faut rajouter l'option p pour que cela fonctionne comme attendu, ce qui donne ceci :shutdown -hp now
oushutdown -p now
.
La raison ? L'option h (qui envoie un signal d'arrêt (HALT)) sert à arrêter tous les programmes sans arrêter l'arrivée de courant de l'ordinateur sous les BSD (un peu comme avec les vieux PC sous Windows 95/98). -
Courbe d'apprentissage élevée : OpenBSD est un système qui nécessite beaucoup d'apprentissage pour pouvoir être utilisé convenablement, même si beaucoup de progrès ont été fait depuis. Il est parfois nécessaire de passer par de la configuration poussée ou de la compilation de logiciels, mais la documentation est assez bien fournie pour réussir à se débrouiller. Pour autant, il est recommandé d'être à l'aise avec la ligne de commandes pour profiter du plein potentiel d'OpenBSD.
-
Faible audience : Comparé aux autres systèmes d'exploitation, OpenBSD peut être considéré comme un système de niche, dans le sens où il est peu connu du grand public, même s'il est l'un des plus connus de la famille des BSD. Une conséquence directe à cela est que peu de tutoriels sont disponibles sur le Web et qu'il faudra parfois passer un peu de temps avant de trouver des infos pertinentes en cas de problème. Cependant, la communauté est assez réactive et il existe même des forums en français. Je citerai ainsi le projet OpenBSD pour tous que mon ami prx a mis en place avec ses amis pour rassembler une partie de la communauté francophone d'OpenBSD.
Comment se fait une installation d'OpenBSD ?
Globalement, OpenBSD peut être installé à l'aide d'une clé USB bootable ou bien un CD/DVD si vous préférez cette technologie. Pour cela, il suffit d'aller sur le site officiel et de cliquer sur la section Downloads. Une fois sur cette page, plusieurs fichiers sont proposés par le site. Les fichiers nommés install contiennent tous les fichiers nécessaires pour installer une OpenBSD complète sans accès Internet, ce qui est pratique pour installer le système sur de nombreux PCs. Les fichiers cd et miniroot, quant à eux, ne font que lancer l'installateur et doivent récupérer les fichiers ailleurs (sur le réseau par exemple). Si on parle des extensions, les .iso correspondent à des images pour CD/DVD et les .fs à des images pour clés USB (sauf floppy.fs qui sert à faire des disquettes de démarrage).
La documentation étant bien faite ici, je vous laisse la lire tranquillement pour créer votre média d'installation (choisissez amd64 si votre PC est en 64 bits (PCs récents) ou i386 si votre PC est plus ancien).
Ensuite, il suffit de lancer la clé et de se laisser guider par l'installateur. Vous noterez alors qu'il ne parle qu'en anglais, mais les étapes se suivent de manière logique et je vais vous les résumer dans cet article.
En premier, il commence par vous demander quel clavier utiliser (tapez fr), puis le nom du PC sur le réseau (mettez le nom qui vous plaît). L'étape suivante touche la carte réseau. Si elle est supportée par OpenBSD (en gros, si vous voyez un autre nom devant vlan0, ce dernier étant une carte virtuelle), il suffit alors d'appuyer sur Entrée à chaque étape et le système associera automatiquement une adresse pour se connecter.
On vous demande ensuite un mot de passe pour le compte root (c'est-à-dire le compte qui possède tous les droits sur le PC), si vous souhaitez activer SSH pour vous connecter à distance, si vous souhaitez lancer un serveur graphique pour afficher des fenêtres, si vous souhaitez activer le mode graphique au démarrage, si vous souhaiter créer un compte normal et dans quelle région vous vous trouvez pour configurer l'heure.
Une fois tout ça renseigné, l'installateur va aborder la phase difficile, celle du partitionnement du disque dur. Deux cas de figure se proposent à vous : vous installer OpenBSD tout seul ou bien vous souhaitez faire autre chose (l'installer à côté d'un autre système d'exploitation, l'installer sur un disque chiffré, etc). Dans le deuxième cas, une section dédiée au partitionnement est disponible sur le site officiel en anglais pour vous aider, histoire de vous donner les bonnes choses à faire. Ici, on se trouve dans le premier cas (on ne veut qu'OpenBSD sur notre machine), donc on peut se permettre de tout laisser en automatique et d'appuyer simplement sur Entrée pour valider. Il va alors tout formater et créer des partitions dédiées, des slices, pour isoler les différents composants du système.
Pour terminer, l'installateur va récupérer les fichiers à copier pour installer votre instance OpenBSD. Si vous avez choisi l'image complète, il suffit d'appuyer sur Entrée à chaque fois et répondre Yes pour continuer l'installation sans vérification SHA256 (les images du site officiel sont sûres, donc pas de risque). Si vous avez choisi une image légère, vous devez alors indiquer l'emplacement des fichiers à copier, soit via un CD ou bien par le biais d'un dépôt en ligne, et ensuite valider par Entrée. Cette opération sera la plus longue de l'installation, en fonction des performances de votre disque dur.
L'installation se termine alors par une invite de commandes où il suffit de taper Reboot pour redémarrer votre PC sur votre nouveau système. Et voilà, votre OpenBSD est prête à répondre et à être utilisée !
Mes expériences actuelles
Test sur un PC portable de 2010
Quitte à redécouvrir le monde d'OpenBSD, autant utiliser un ordinateur spécialement dédié pour les tests !
L'idée m'est donc venue d’utiliser un ancien PC portable pour l'installer. Pour ceux qui sont un peu curieux, il s'agit ni plus, ni moins que de mon premier PC portable, celui que j'ai acheté en 2010 lorsqu'Internet est venu à la maison. Malgré son âge, il fonctionne plutôt bien et il est encore capable de fournir de bons et loyaux services pour quelques années. Son état d'origine a été conservé, à l'exception de son disque dur qui a été remplacé pendant un temps par un SSD pour finir aujourd'hui avec un disque dur extrait d'une PlayStation 4 (je l'avais changé pour avoir 2 To de stockage sur ma console).
Ici, j'avais envie de le recycler avec un système plus léger, vu qu'il a un peu de mal à faire tourner Fedora GNU/Linux et son bureau GNOME de manière fluide. Du coup, il tourne maintenant sous OpenBSD de manière fluide et stable !
Une fois le pilote Radeon téléchargé et installé et quelques optimisations configurées, il tourne comme un charme et fait ce qu'on lui demande. L'ensemble de son matériel est supporté par le système, ce qui est assez incroyable pour ce type de matériel (surtout au niveau du Wifi qui est parfois la bête noire d'OpenBSD).
Le seul point négatif ? Il n'arrive pas à lire les vidéos de manière fluide. Si je décide de regarder une vidéo en HD, l'image saccade et le son est complètement décalé avec l'image. Du coup, impossible d'utiliser Youtube convenablement. Pour l'instant, je ne pense pas que ce PC soit aussi optimal pour utiliser ce système d'exploitation, donc je préfère ne pas poursuivre l'expérience plus loin avec lui.
Test sur un Mac Mini de dernière génération (2019)
Si utiliser du matériel ancien peut être parfois une chose compliquée, utiliser du matériel récent peut se révéler être quelque chose de pire !
Alors que je voulais essayer de bricoler sur mon Mac Mini pour voir si GNU/Linux démarrait, j'ai eu une idée absolument dingue vis-à-vis de cet environnement : tester le démarrage d'OpenBSD. Pour l'anecdote, j'avais essayé de l'installer sur un PC portable récent via un disque dur externe, mais j'ai abandonné ce projet par manque de temps. Ainsi, j'avais donc un HDD sous OpenBSD parfaitement fonctionnel et qui n'attendait qu'une seule chose : un ordinateur pour le lancer.
Après avoir réussi à désactiver la protection de la puce T2 (qui permet de bloquer le démarrage sur des clés USB externes) et brancher le tout, j'ai essayé de démarrer le disque dur juste pour voir le résultat. Le résultat m'a littéralement choqué : non seulement, le système a démarré en toute transparence (alors qu'installé pour un PC portable sous Intel), mais en plus, tout semble fonctionner de manière fluide et stable ! Les 6 cœurs du processeur, la RAM et la carte réseau en câble fonctionne sans aucun souci.
Bien évidemment, le Bluetooth et le Wi-Fi ne fonctionnent pas, mais cela me semble normal, vu que c'est l'un des points noirs d'OpenBSD (sans compter que le support du Bluetooth a été retiré depuis quelques versions à cause d'instabilités). Concernant le SSD d'Apple, OpenBSD n'arrive pas à l'initialiser et il n'apparaît dans aucun programme. Ce comportement, aussi visible sur GNU/Linux, est le résultat de la politique de fermeture d'Apple pour empêcher d'utiliser autre chose que MacOS sur son matériel. Bien évidemment, cela n'empêche aucunement d'utiliser un autre système et cela évite aussi de devoir effacer son SSD en cas de problème (avantage selon moi quand on veut faire des tests).
Personnellement, face à ce constat, je n'ai eu qu'une seule envie : continuer à utiliser OpenBSD sur mon Mac Mini tout en ayant le reste de mon système à côté. De quoi laisser de belles perspectives pour la suite de mes essais et bricolages sur ce type d'environnement.
Quelques dotfiles
Pour conclure cet article sur OpenBSD, j'avais envie de partager quelques fichiers de personnalisation si jamais vous avez vous aussi l'envie de vous mettre à tester ce système (ou bien simplement reproduire ma configuration). Pour ceux qui ne sont pas initiés avec cette notion, ce type de fichiers est appelé dotfile, parce qu'il commence par un point devant et qu'il est par définition caché au premier abord.
Dans l'ordre, vous pourrez donc trouver :
- un fichier .profile (pour afficher un beau terminal)
- un fichier .xsession (pour le choix de l'environnement de travail et des programmes à démarrer en arrière-plan, après les avoir installés sur sa machine)
- et un fichier pour embellir le système de connexion utilisateur (alias xenodm)
Pour précision, je me suis basé en partie sur la configuration de prx et de Roman Zolotarev pour personnaliser mon environnement, vu qu'ils ont à cœur de rendre OpenBSD plus accessible aux utilisateurs débutants.
Sur ce dernier point, je vous invite chaudement à essayer OpenBSD, ne serait-ce que dans une machine virtuelle, pour découvrir un peu le monde des BSD et leur philosophie radicalement différente, tant au niveau des contributions qu'au niveau du fonctionnement. Pour ceux qui sont intéressés par l'aventure, n'hésitez pas à faire un tour sur le forum francophone d'OpenBSD pour tous où nous serons ravis de vous accueillir et de vous aider en cas de besoin !
À la prochaine !
Crédits photographiques
- Photo incluse dans l'article : Travaux personnels publiés sous la même licence que l'article (CC BY 4.0)
Commentaire(s) publié(s)
-
« Merci pour ce billet ! Depuis des mois, j'avais le projet de m'informer sérieusement sur OpenBSD, du coup, avec toutes ces informations et ce retour expérience, je vais tenter ma chance avec mon premier portable professionnel. » - Emmanuel
-
« Content que ce billet ait pu te motiver à essayer ce système :) Espérons que la chance soit avec toi, mais je pense qu'il devrait pouvoir démarrer dessus sans trop de problème. Hésite pas à visiter le forum francophone au besoin, il est fait pour ça :) » - linuxmario en réponse à Emmanuel