Avant toute chose, je ne dis pas qu'OpenBSD est meilleur qu'un autre OS, je dis juste pourquoi je l'apprécie plus que les autres.
La documentation
La FAQ
La documentation de cet OS est géniale. Avant de l'avoir installé, j'avais lu la FAQ, même si je n'avais pas tout compris (il y a des choses que j'ai compris seulement bien longtemps après), ça a déjà été une bonne base. Cette FAQ explique énormément de choses et comporte un certain nombre de how-to bien utiles. Plusieurs fois j'ai cherché des tutos sur Internet sur comment faire certaines choses, les tutos que j'ai trouvé comportaient des choses bizarres, et en recherchant, je suis tombé sur la FAQ qui expliquaient exactement ce que je voulais faire (notamment du pxeboot) ; le tuto trouvé précedemment était (en gros), ce qu'expliquait la FAQ, plus les choses bizarres.
Les manpages
Les pages man sont aussi très complètes et bien faites. Avant d'utiliser OpenBSD, j'utilisais beaucoup Debian. Jamais (ou très rarement) il ne me venait à l'esprit de lire une page man. Si j'avais un problème, je googlais pour trouver la solution. OpenBSD, du fait que personne ne l'utilise (mouarf) et que les pages man sont complètes, personne n'écrit de tuto pour faire ceci ou cela. Plusieurs fois, je me suis dit, tiens je devrais faire un article sur $chose, puis j'ai vu qu'il y avait une page man qui expliquait comment faire. Un exemple ? Pour ma connexion ADSL, je devais gérer la session PPP avec mon routeur. Si on choisit ppp(4) (à l'inverse de celui qui est en userland, ppp(8)) il suffit de lire la page man, il n'y a guère plus à faire que recopier et juste changer le login et le mot de passe.
La communauté
Enfin, vu que je fais face souvent à des problèmes de couche 8 (PEBKAC toussa), genre une page man que j'ai mal lue, ou une partie de la FAQ que je n'ai pas compris, il m'arrive souvent de demander de l'aide. Vu qu'à part les 3 utilisateurs normaux d'OpenBSD (:p) les autres sont les committers, ça permet d'avoir des gens à qui demander qui savent de quoi ils parlent vu que ce sont eux qui ont écrit le code. Bien sûr, si on demande sans avoir cherché un minimum avant, on risque de se prendre quelques remarques dans les dents, mais sinon, les personnes sont très serviables (si vous avez une meilleur traduction de helpful ..).
Les petites attentions
Afterboot
Suite à une installation, le système envoie (de mémoire) deux mails, avec l'un des deux qui conseille de lire afterboot(8). Cette page man décrit toutes les petites actions à faire quand on vient d'installer OpenBSD.
Daily output (et /etc/weekly et /etc/monthly)
Le système comporte de base des scripts de maintenance. Il y a trois scripts, un qui doit s'exécuter quotidiennement (daily), un autre de manière hebdomadaire (weekly) et le dernier mensuellement (monthly).
Ils font chacun des actions qui ont besoin d'avoir lieu à ces différentes fréquences. Par exemple daily va vérifier les permissions des fichiers du système, il envoie un mail qui comporte l'uptime, l'état du partitionnement (ça permet de s'apercevoir que par exemple il n'y a plus de place sur une partition :p) et donner des infos sur le réseau (nb de paquets entrants, sortant, les erreurs etc) et enfin, il fait une série diff
. Si ces diff ne sont pas vide cela déclenche un autre mail "daily insecurity outpput" qui comporte ces diffs. C'est utile dans le cas d'admin à plusieurs, afin de pouvoir ce que l'autre admin a modifié.
Weekly fait des choses qui n'ont pas besoin d'être fait souvent, comme mettre à jour la base données de locate(1).
Pour rajouter des choses, c'est très simple, il suffit juste de créer un fichier {daily,weekly,monthly}.local qui comporte les actions à effectuer, le système les fera avant de faire le script à la base.
Bref, du bonheur.
/var/backups/
Une fois j'ai cassé le système (\o/), je ne sais plus comment j'ai fait, je me rappelle juste des grandes lignes. Mon système ne marche plus, seule possibilité c'est de booter en single user mode. Je connais le fichier que j'ai modifié, je sais ce que j'ai modifié, mais je ne sais plus ce qui était mis à la base ... c'est là qu'en demandant de l'aide, on me dit "bah récupère la version précédente dans /var/backups/" ... wut ? Quand tu as ton système qui ne veut plus booter parce que tu as fait une connerie, tu es sacrément heureux de voir que le système, de base, sauvegarde les fichiers importants (et garde les checksums pour d'autres).
Les noms des interfaces réseaux
Contrairement aux autres systèmes où les interfaces filaires s'appellent eth et les wifi wlan, sous OpenBSD, les interfaces sont issues du nom des drivers. Du coup il est aisé de savoir quel est le driver utilisé pour l'interface. À quoi ça sert ? Parfois on rencontre des problèmes et dans ce cas il suffit de faire man $driver et de lire la section bug pour savoir si le problème est connu ou si ça vaut la peine de faire un rapport de bug.
La politique
Rien d'activé par défaut
Avec OpenBSD vient avec quelques logiciels, tel que Apache 1, Nginx etc. La plupart sont par défaut désactivé. Les seuls activés sont ceux de confiance comme sshd (et encore à l'installation, on nous demande si on veut l'activer). Cela évite d'avoir des logiciels qui tournent sans raison.
La sécurité
OpenBSD est un système simple (note: comme on l'a fait remarqué sur un chan irc, simple != facile). La sécurité d'un système vient aussi de la bonne compréhension du système afin de permettre d'auditer les choses. Ce n'est certainement pas en rajoutant de la compléxité qu'un système sera plus sûr.
Typiquement avoir des syntaxes simples pour des logiciels aident grandement. Regardez les syntaxes des fichiers de configuration d'OpenSSH, OpenSMTPD, Open^W PF et montrez moi d'autres logiciels ayant une syntaxe aussi claire.
Petit détail qui fait tout, durant l'installation de l'OS, on nous demande si on veut activer sshd, si on crée un user, il nous propose directement de mettre un PermitRootLogin no
.
Tout ça fait au final que même sans forcément rechercher un système sûr, les choses font qu'on finit par en avoir un.
Les licences
Étant un peu intégriste^W^W^W libriste, j'aime bien leur principe de ne pas intégrer à la base des logiciels dont la licence n'est pas correcte. Oui on a des vieux trucs comme UFS/FFS, alors que FreeBSD a ZFS, on a Apache 1 et pas 2 à cause de ce problème de licence (cependant la version 2 est disponible via les packages).
Je vous invite aussi à lire dans la FAQ la partie à propos de Flash, ça vaut son pesant de cacahuètes.
Cool tout ça, mais ça tourne sur quoi ?
Firewall, routeur
OpenBSD est plus qu'adapté pour tout ce qui est firewall (carp + pfsync = <3) et plus généralement à tout ce qui a trait au réseau. Vous en connaissez beaucoup des systèmes qui intégrent une implémentation libre de MPLS, de base ? Idem pour IPSEC (le premier qui me parle de la backdoor, je lui fais manger la page FUD de wikipédia).
Workstation
OpenBSD est très bien utilisable comme workstation, je vous laisse regarder les vidéos que ajacoutot@ fait pour Gnome, c'est beau (troll mis à part à propos de Gnome).
Laptop
Les commiters d'OpenBSD utilisent sur leur laptop ... OpenBSD (contrairement à certains développeurs d'autres OS qui se sont tournés vers Apple). Ce qui fait qu'OpenBSD est bien utilisable sur des pc portables.
Et même de l'arm !
OpenBSD tourne même sur de l'arm. Non pas sur le Raspberry Pi (dont je ne vais pas prendre la peine de dire du mal car j'ai l'impression que les fanboys de RPi sont encore pire que ceux d'Apple), mais sur d'autres plateformes c'est en cours de portage (même si ça marche déjà plutôt bien) et vu la dynamique des commits, j'ai bon espoir qu'il y ait quelque chose de complet rapidement.
Pour finir
Une citation de Theo de Raadt que j'aime bien : "Linux people do what they do because they hate Microsoft. We do what we do because we love Unix."
</propaganda>