Rendez-vous sur Arrakis

Mise à jour d'OpenBSD 5.9 vers 6.0

À l'occasion de la publication d'OpenBSD hier, j'en profite pour mettre ici quelques notes concernant la mise à jour de mon serveur pour ce changement de version. Ça permet de profiter de php-7 déjà empaqueté et vérifié, des sécurités W^X, du client certbot (letsencrypt)…

Pas de surprises, il suffit de suivre les instructions données ici.

On commence par récupérer le noyau d'installation bsd.rd :

 # cd /
 # curl -O http://ftp2.fr.openbsd.org/pub/OpenBSD/6.0/amd64/bsd.rd

On vérifie que le fichier n'a pas été corrompu lors du téléchargement :

 # curl -O http://ftp2.fr.openbsd.org/pub/OpenBSD/6.0/amd64/SHA256.sig
 # sha256 -c SHA256.sig |grep bsd.rd
 (SHA256) bsd.rd: OK

Selon les instructions, on doit avant de démarrer sur le kernel de mise à jour faire un peu de nettoyage :

# rm -rf /usr/share/man

Selon le matériel, (iwm), il faut aussi lancer

# fw_update

On redémarre le serveur (avec un écran ici pour se simplifier la vie) et au prompt on indique de démarrer sur bsd.rd :

boot> boot bsd.rd

Si vous ne pouvez pas faire ça, alors référez vous à la méthode de mise à jour manuelle :
https://www.openbsd.org/faq/upgrade60.html#NoInstKern .

Une fois redémarré, on vous propose de mettre à jour. Y a plus qu'à suivre les indications et taper quasiment tout le temps sur la touche la plus maltraitée du monde, entrée :





Une fois le processus de mise à jour terminé, on redémarre normalement avec “reboot”

On lance sysmerge si c'est demandé :

# sysmerge
 

Vous pouvez alors mettre à jour les packages :

# pkg_add -u

Pour php, j'ai du ajouter “wxallowed” dans le fichier /etc/fstab. La sécurité W^X ne semble pas encore prête pour php, mais ça ne saurait tarder.

e0ca6b318b796701.f /usr/local ffs rw,nodev,wxallowed 1 

Enfin, on applique les correctifs de sécurité en mode gros fainéant :

# curl -s https://stable.mtier.org/openup | sh

Ou en mode cémoileboss :

On récupère les sources :

# cd /usr
 # cvs -qd anoncvs@anoncvs.fr.openbsd.org:/cvs get -rOPENBSD_6_0 -P src

Si vous aviez déjà les sources, il suffit de lancer :

 # cd /usr/src
 # cvs -q up -rOPENBSD_6_0 -Pd

Ensuite :

 # cd /usr/src/sys/arch/$(uname -m)/conf
 # config GENERIC.MP
 # cd /usr/src/sys/arch/$(uname -m)/compile/GENERIC.MP
 # make clean && make
 # make install
 
 # reboot
 
 # rm -rf /usr/obj/*
 # cd /usr/src
 # make obj
 # cd /usr/src/etc && env DESTDIR=/ make distrib-dirs
 # cd /usr/src
 # make build

En somme, tout s'est bien passé. Seul le point particulier pour php et wxallowed m'a surpris, ainsi que le changement de quelques filtres pour smtpd (les mails).
Mais puisque je compte bien de toutes façons mettre à jour le guide sur l'auto-hébergement, je détaillerai tout ça plus tard ☺.

le 02/09/2016 à 16:16:55, lugus35 a dit :

Et la sauvegarde avant toutes ces opérations ? je taquine…

le 02/09/2016 à 16:54:56, thuban a dit :

@lugus35 : Tu as raison :)
Je n'ai même pas pensé à le préciser, puisque mon système est sauvegardé tous les soirs automatiquement (vive openbsd et son /altroot) :)

le 02/09/2016 à 17:04:48, PengouinPdt a dit :

Je sens que je vais corriger le wiki, avec quelques informations de ton cru … moi ! :p

Merci

le 02/09/2016 à 17:44:01, spartiate a dit :

le lien qui renvoie sur “les instructions données ici.” est mal formé :

https://www.openbsd.org/faq/upgrade60.html),

le 02/09/2016 à 17:44:03, PengouinPdt a dit :

@thuban: corrige tes liens ‘instructions’, ils sont faux ;)

N'empêche que le processus d'upgrade version me fait terriblement penser au même processus pour basculer en current, avec snaps … plaît-il ?!

le 02/09/2016 à 19:01:17, thuban a dit :

Lien corrigé, merci les copains :D

@PengouinPdt : Eh oui, c'est le même principe :)
J'essaiera la prochaine fois le “tout à la main”, juste pour rigoler :P

le 02/09/2016 à 20:37:54, PengouinPdt a dit :

@thuban: tu as loupé le deuxième lien “instructions” ;-)

Perso, je n'ai pas envie de tester “todolamano” :D

le 02/09/2016 à 20:56:06, thuban a dit :

@PengouinPdt : I’m bouletmaaaaan! :)

Moi si, j'ai envie de tester. Ça me gêne de me dire qu'il faut sortir un écran pour gérer mon serveur.

le 02/09/2016 à 21:10:20, kuniyoshi a dit :

Merci Thuban.

En fait c'est toujours le même principe avec le projet OpenBSD. Une mise à jour (d'une release vers une autre release ou d'un snapshot vers un autre snapshot) passe toujours par un redémarrage sur un noyau de type bsd.rd puis un upgrade avec l'installateur. Globalement, c'est cela. Ensuite il y a des différences entre une -release (compilation à partir des sources ou M:Tier) et une -current (mise à jour binaire fourni officiellement pas le projet) pour la gestion des logiciels tierce partie.

le 02/09/2016 à 21:16:32, thuban a dit :

D'un autre côté il faut bien redémarrer sur le noyau mis à jour :)

le 03/09/2016 à 07:43:29, 22Decembre a dit :

C'est clair que c'est relou de devoir rebooter à la MAJ. Uptime max = ~ 6 mois. Mais bon.

Par contre, le “vous devez vous connecter à l'écran.” c'est quand même serieusement chiant.

@Thuban, t'as pas vu, y a letskencrypt qui est en base sous le nom de acme-client, dans current.

le 03/09/2016 à 09:18:22, thuban a dit :

@22Decembre : Non je suis passé à côté de acme-client. J'ai l'habitude d'utilise letsencrypt en mode standalone pour pouvoir avoir un certificat pour tous mes sous-domaines. Et comme tout, tant que ça marche…
Mais si acme-client permet de faire certaines choses sans être root, alors il faut que je m'y penche :)

le 03/09/2016 à 09:21:05, PengouinPdt a dit :

Ohhh, ohhh, ohhhh … @22Decembre: Stéphane, tu trouves que c'est lourd de devoir redémarrer une fois tous les 6 mois, à cause d'histoire d'uptime … Alors ne gère pas OBSD en mode current :p

MErci pour l'info, concernant letsencrypt :p

le 03/09/2016 à 09:46:15, 22Decembre a dit :

@thuban : Disons que c'est surtout sécurisé à mort (OpenBSD à donf') à coup de chroot et de privsep'.

Non parce que faire tourner un script bancal en tant que root, ca craint un peu.

le 03/09/2016 à 11:24:54, 22Decembre a dit :

@PengouinPdt : Je ne gère pas mon serveur en current. Quand une fonctionnalité interessante apparait (par ex acme-client), alors j'upgrade à current. Puis je touche plus rien, en dehors des bugs de sécurité. Donc par exemple, mon serveur et mon routeur ont été en 5.9 stable sur toute la période de cette version (soit quatre mois pour le serveur, parce que j'avais MÀJ plus tard).

C'est peut être pas idéal, mais ca marche bien.

Et j'ai simplement pesé le pour et le contre. C'est sûr que je peux plus me taper des uptime d'un an et plus comme quand j'étais sous Debian, mais on peut pas tout avoir.

le 03/09/2016 à 12:35:16, gilgam a dit :

Merci de l'info pour une mise à jour sans clef usb/cd :-)

Le thème est plus jôôôli

le 03/09/2016 à 12:55:33, PengouinPdt a dit :

@thuban: màj de notre page wiki : Mettre OpenBSD à jour et tout particulièrement le chapitre “Passer à une version supérieure” !

Avec informations sur les vérifications à faire après le téléchargement, dont l'usage de l'outil signify(1) recommandé par la faq officielle.

Comme ça, on est “dans les clous” … jusqu'à ce qu'on n'est notre faq in-officielle traduite ! :p

le 03/09/2016 à 13:14:08, thuban a dit :

@PengouinPdt : T'es un pro du wiki! Merci!

le 03/09/2016 à 22:24:45, gilgam a dit :

Je n'ai pas réussi avec les mirroirs; j'ai donc fait avec la clef usb et l'option disk au démarrage de (U)pdate.
http://gruson.name/weblog/2016/09/03/openbsd-mise-a-jour-via-un-disque-ou-une-clef-usb/
Ma modeste contribution.

le 04/09/2016 à 18:17:58, 22Decembre a dit :

Bien evidemment, j'ai reussi à me planter comme une patate pourrie lors de la MAJ. Pas une seule MAJ qui se soit passé correctement.

Bon, sinon, t'as pas des seg' fault à chaque fois que t'essaye un truc ? Non, parce que là, c'est ca hein. Php mis à jour sur la 7, wxallowed sur la partition /usr. Non, quedalle. Ca me met un peu en rage.

Sinon, tu va décrire ce que tu fais avec acme-client ?

le 04/09/2016 à 18:30:29, thuban a dit :

@22Decembre : Sérieux? Pas un pet de travers de mon côté.
Et oui, t'as tout compris pour php7, sauf le wxallowed qui doit être sur /usr/local . Là, plus de segfault.

acme-client, il faut que je comprenne comment il fonctionne déjà et que je teste. À ce moment-là j'en parlerai peut-être :)

le 04/09/2016 à 18:58:28, 22Decembre a dit :

@thuban : J'ai pas de partition /usr/local séparée. Je devrais donc être bon.

le 04/09/2016 à 20:33:08, thuban a dit :

@22Decembre : En effet.
T'as fait un “mount -a” ?