[Mini-Tuto] Upgrade Hardened Openbsd

Article publié, le
3 minute(s) de lecture

Cet article contient 533 mots.
Source brute de l'article : MD

Securelevel

Officiellement, il faut éditer le fichier /etc/rc.securelevel et lui écrire : sysctl -w kern.securelevel=1 puis redémarrer la machine !

Système de fichiers en lecture seule

Si vous avez eu la bonne idée de durcir votre FS par l’usage - principalement - de l’option de montage ro sur les principales partitions de votre système, il va falloir user de l’astuce suivante :

  • Si vous avez une copie de votre fichier /etc/fstab, telle que montrée dans mon article OpenBSD : durcir le système de fichier, alors faites tout simplement en premier :
    # mv /etc/fstab /root/fstab ; mv /root/fstab.origin /etc/fstab ; chmod 0644 /etc/fstab
  • Sinon, si vous n’avez pas fait de copie, ce n’est pas bien grave, éditez votre fichier /etc/fstab pour transformer toutes les écritures de l’option ro en rw et mettre en commentaire la ligne déclarant le fichier de swap mfs pour /dev. Soit vous le faites à la main, soit vous utilisez ce one-liner :
    # sed -i -e 's/ro/rw/g;s/swap \/dev mfs \(.*\)/#swap \/dev mfs \1/g' /etc/fstab

Ceci étant fait, vérifiez l'écriture de votre système de fichier dans le fichier /etc/fstab, afin d'être bien sûr de l'écriture de celui-ci !


Pensez à mettre de côté les scripts /etc/rc.local, /etc/rc.shutdown, voire /etc/daily.local, - si vous en avez créez - afin d'être tranquille lors de la mise à niveau !

Puis faites votre procédure de mise à niveau selon le Guide de Migration fourni par l'équipe OpenBSD - par exemple, celui de la 6.4 et sa traduction (in)officielle en Français

Pourquoi remettre le système de fichier en écriture ?

En fait, l’installateur d’OpenBSD passe en rw lors de la mise à niveau ; le problème se pose après le redémarrage du système mise à niveau. En effet, logiquement le système va faire exécuter ses routines liées au script /etc/sysmerge et /etc/rc.firsttime qu’il renomme pour l’occasion en *.run respectivement - ce qui a normalement pour propos d’exécuter les utilitaires sysmerge, fw_update principalement…

Si le système est initialement en mode lecture seule avant la mise à niveau, lesdits processus échoueront et vous avertiront par des messages d’erreurs vous informant que le système ne peut pas renommer les deux scripts en *.run, ni exécuter de fait leur contenu, et donc ne peut finaliser correctement la mise à niveau !


Il ne vous restera plus qu'à appeler vous-même l’exécution des binaires sysmerge, fw_updates en espérant que tout se passe correctement… :(

Puis vous pourrez terminer le processus de migration en mettant à jour les packages ; ceci une fois fait, il ne vous restera plus qu'à faire une analyse de l’ensemble du système grâce aux deux outils, l’un natif pkg_check, l’autre à installer sysclean.

OU, alors, à relancer à nouveau la mise à niveau de votre système, en appelant le binaire bsd.rd au redémarrage de la machine, SEULEMENT après avoir pris les précautions nécessaires pour remettre le système de fichiers en écriture avant le redémarrage !


  • Remettez en place vos fichiers /etc/rc.local, /etc/rc.shutdown, voire /etc/daily.local, en veillant à ce que les droits utilisateurs soient bien liés à root:wheel et en 0644.
  • Remettez votresystème de fichier en lecture seule !
  • Et, redémarrez votre machine, puis profitez de l’utilisation pendant environ 6 mois, sans avoir à redémarrer ! :p