--- categories: ['OpenBSD','Système','Base'] date: 2018-10-19T01:17:25+01:00 description: "Comment mettre à jour une machine durcie sous OpenBSD" draft: false lastmod: 2020-05-21T15:05:40+02:00 tags: ['OpenBSD','Durcissement','mini-tuto'] title: "[Mini-Tuto] Upgrade Hardened OpenBSD" translationKey: 'openbsd-harden-upgrade' --- ## 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 **{{< inside "sys:openbsd:harden-openbsd" >}}**, 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][1] et sa [traduction (in)officielle en Français][2]**… #### 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 votre {{< inside2 t="système de fichier en lecture seule" l="sys:openbsd:harden-openbsd" a="système-de-fichiers-en-lecture-seule" >}} ! * Et, redémarrez votre machine, puis profitez de l'utilisation pendant environ 6 mois, sans avoir à redémarrer ! :p --- [1]: https://www.openbsd.org/faq/upgrade64.html [2]: https://wiki.openbsd.fr.eu.org/doku.php/openbsd.org/faq/upgrade64