Exemple d'installation d'OpenBSD
Cette section est là pour vous rassurer.
Par la suite, vous changerez "XX" par le numéro de version d'OpenBSD souhaité/utilisé. Par exemple "69" pour OpenBSD 6.9.
Préparation
On télécharge tout d'abord l'image d'installation de la dernière version d'OpenBSD.
Utilisez un des miroirs de téléchargement.
Choisissez une image ".iso" pour une installation à partir d'un CD.
Je décrirai ci-dessous l'installation à partir d'une clé USB : je télécharge donc "installXX.img".
N'oubliez pas de vérifier la somme de contrôle. Téléchargez le fichier SHA256 listé dans le lien ci-dessus, puis à partir d'un système OpenBSD, utlisez cette commande :
signify -Cp /etc/signify/openbsd-XX-base.pub -x SHA256.sig install*.img
Sinon, sur un autre système, calculez la somme de contrôle "sha256sum" puis comparez avec le contenu du fichier SHA256.
Pour préparer une clé USB, utilisez l'outil "dd" (remplacez /dev/sdb par le chemin vers votre clé USB). Par exemple sur un système GNU/Linux (remarquez le "M" majuscule):
# dd if=/location/install*.img of=/dev/sdb bs=1M
À partir d'OpenBSD :
# dd if=/location/install*.img of=/dev/rsd1c bs=1m
La commande dd va reproduire le contenu de l'image sur la clé USB. Pour éviter d'avoir à écrire le nom exact de l'image d'installation, on utilise le symbole "*" qui veut dire "n'importe quelle suite de caractères". Les autres options servent au bon fonctionnement du transfert.
Bien sûr, vous remplacerez "sdb" ou "sd1" par ce qui correspond à votre clé USB. Vérifiez avec la commande "dmesg" juste après avoir inséré votre clé USB.
Les utilisateurs de Windows pourront faire la même chose avec le logiciel "rufus".
Et hop, on insère tout ça dans le lecteur ou port USB du PC, puis on redémarre sur le bon disque ("boot" en anglais). Repérez les messages qui s'affichent du type "F12 : Boot Menu" ou "F7 : Setup" indiquant les touches qui permettent de faire apparaître les fenêtres (bleues) des tableaux de réglage du BIOS. On y indique souvent le lecteur de CDROM ou la clef USB comme média de démarrage numéro 1.
Si au cours de la configuration de l'installation vous vous trompez, pas de panique. Appuyez sur ctrl-C puis entrez la commande "install" afin de recommencer la configuration au début en retrouvant vos choix précédents.
Le premier écran nous propose d'ajouter des options pour démarrer OpenBSD. Normalement, on n'en a pas besoin, on appuie donc juste sur "Entrée" :
>> OpenBSD/amd64 BOOT 3.47 boot>
Si votre machine a un port série, vous avez besoin d'un retour console. Vous devrez alors préciser ces options :
>> OpenBSD/i386 PXEBOOT 1.00 boot> stty com0 19200 boot> set tty com0 boot> <Appuyez sur entree>
Plein de texte sur fond bleu apparaît, indiquant la détection du matériel et autres choses qui ne doivent pas vous inquiéter.
Ensuite, l'écran suivant apparaît :
erase ^?, werase ^W, kill ^U, intr ^C, status ^T Welcome to the OpenBSD/amd64 6.7 installation program. (I)nstall, (U)pgrade, (A)utoinstall or (S)hell?
Installation 100% chiffrée
Si un jour votre serveur est volé par un méchant cambrioleur, vos données peuvent rester illisibles si vous chiffrez l'ensemble de votre système. Tout est bien pensé par OpenBSD qui a décrit la procédure dans sa FAQ. Notez que vous devrez être en mesure d'entrer la phrase de déchiffrement du disque à chaque démarrage et redémarrage du serveur, ce qui peut être une contrainte pour certains. Dans ce cas, passez à l'étape suivante.
⚠ À ce propos, le mappage du clavier à l'invite de commande demandant le mot de passe est en QWERTY. (sauf si vous gérer votre serveur via un port série).
Documentation officielle pour chiffrer un disque
Notez que la procédure serait la même si vous souhaitez chiffrer un autre disque de stockage.
À l'invite suivante, choisissez "S".
Welcome to the OpenBSD/amd64 X.X installation program. (I)nstall, (U)pgrade, (A)utoinstall or (S)hell? s
Si vous souhaitez passer l'agencement du clavier pour azerty, entrez
kbd fr
On fait en sorte que l'accès aux disques soit possible :
# cd /dev && sh MAKEDEV sd0
On remplit le disque de zéros pour écraser toutes les données pré-existantes (sd0 correspond à votre disque dur ici):
# dd if=/dev/urandom of=/dev/rsd0c bs=1m
Ça peut être long selon le matériel (taille et vitesse d'écriture).
Ensuite, on crée une partition softraid qui sera chiffrée :
- Si vous démarrez via MBR (défaut) ou si c'est juste un disque externe pour stocker des données : "# fdisk -iy sd0"
- Si vous démarrez avec GPT ou UEFI : "# fdisk -iy -g -b 960 sd0"
Créez la table de partition sur sd0. On utilise une partition entière "a" de type RAID:
# disklabel -E sd0 Label editor (enter '?' for help at any prompt) > a a offset: [64] size: [39825135] * FS type: [4.2BSD] RAID > w > q No label changes.
Ensuite, on peut créer le périphérique chiffré avec une bonne phrase de passe :
# bioctl -c C -l sd0a softraid0 New passphrase: Re-type passphrase: sd1 at scsibus2 targ 1 lun 0: <OPENBSD, SR CRYPTO, 005> SCSI2 0/direct fixed sd1: 19445MB, 512 bytes/sector, 39824607 sectors softraid0: CRYPTO volume attached as sd1
Cela crée un pseudo-périphérique sd1. Pour être sûr que l'installateur le prenne en compte, lancez :
# cd /dev && sh MAKEDEV sd1
On écrase les premières données du pseudo-périphérique :
# dd if=/dev/zero of=/dev/rsd1c bs=1m count=1
Enfin, entrez "exit" pour retrouver l'installateur et procéder à l'installation sur ce pseudo-périphérique sd1.
Début du script d'installation
On lance l'installation en entrant "I" :
Les valeurs proposées pour l'installation sont largement suffisantes dans la plupart des cas. Les choix par défaut sont indiqués entre crochets : [choix]. À chaque fois, des exemples sont disponibles avec "?".
On choisit une disposition de clavier : fr
At any prompt except password prompts you can escape to a shell by typing '!'. Default answers are shown in []'s and are selected by pressing RETURN. You can exit this program by pressing Control-C, but this can leave your system in an inconsistent state. Choose your keyboard layout ('?' or 'L' for list) [default] fr
On choisit ensuite un nom de machine, par exemple "maitre.chezmoi.tld" ou "maitre".
System hostname? (short form, e.g. 'foo')
Ensuite, on configure la connexion à Internet. Notez qu'il n'est pas obligatoire d'avoir un accès en ligne si vous avez choisi une image install*.* qui contient tous les éléments pour faire l'installation.
Vous avez la possibilité de définir une IP statique pour votre serveur ou bien utiliser la configuration DHCP par facilité.
Available network interfaces are: re0 vlan0. Which network interface do you wish to configure? (or 'done') [re0] IPv4 address for re0? (or 'dhcp' or 'none') [dhcp] DHCPDISCOVER on re0 - interval 1 DHCPOFFER from 10.0.2.2 (52:55:01:00:02:02) DHCPREQUEST on re0 to 255.255.255.255 DHCPACK from 10.0.2.2 (52:55:01:00:02:02) bound to 10.0.2.15 -- renewal in 43200 seconds.
Pour avoir une IPv6, choisissez autoconf le moment venu pour en avoir une automatiquement. Vous souhaiterez certainement configurer cette partie par la suite.
IPv6 address for re0? (or 'autoconf' or 'none') [none] autoconf Available network interfaces are: re0 vlan0. Which network interface do you wish to configure? (or 'done') [done]
La configuration réseau se termine par la route IPv4 et le DNS. Laissez les choix par défaut à moins d'avoir un besoin très particulier :
Default IPv4 route? (IPv4 address or none) [10.0.2.2] add net default: gateway 10.0.2.2 DNS domain name? (e.g. 'bar.com') [my.domain] Using DNS nameservers at 10.0.2.3
Gardez en tête votre passerelle (gateway) si vous configurez plus tard une connexion statique.
Ensuite, l'installateur vous demande le mot de passe de l'administrateur système dont le petit nom est "root". Choisissez un mot de passe robuste.
Password for root account? (will not echo) Password for root account? (again)
Vous pouvez ensuite faire en sorte que SSH soit lancé par défaut au démarrage. C'est conseillé pour un serveur afin de pouvoir l'administrer sans écran à partir d'un autre ordinateur.
On nous demande si un serveur X sera utilisé (session graphique) : ce n'est absolument pas nécessaire pour un serveur.
Vous ne voudrez sans doute pas changer la console par défaut, laissez "no".
Password for root account? (will not echo) Password for root account? (again) Start sshd(8) by default? [yes] Do you expect to run the X Window System? [yes] no Change the default console to com0? [no]
Vous pouvez ajouter un utilisateur si vous le souhaitez en entrant son login. Vous n'êtes pas obligés, mais je vous le conseille pour vous connecter à votre serveur via SSH. Ainsi, vous éviterez d'utiliser le compte root.
Setup a user? (enter a lower-case loginname, or 'no') [no] luffy Full name for user luffy? [luffy] Mugiwara No Luffy Password for user luffy? (will not echo) Password for user luffy? (again)
On vous demande ensuite si vous voulez autoriser l'utilisateur "root" à se connecter via SSH. C'est une très mauvaise idée, puisque cet utilisateur a tous les droits et est la cible privilégiée des pirates. Choisissez "no".
WARNING: root is targeted by password guessing attacks, pubkeys are safer. Allow root ssh login? (yes, no, prohibit-password) [no]
Le fuseau horaire peut être modifié :
What timezone are you in? ('?' for list) [Canada/Mountain] Europe/Paris
C'est parti pour le choix du disque sur lequel installer OpenBSD :
Which disk is the root disk? ('?' for details) [wd0] Use (W)hole disk MBR, whole disk (G)PT, (O)penBSD area or (E)dit? [whole]
Après avoir appuyé sur Entrée, vous voyez :
Disk: wd0 geometry: 2610/255/63 [41943040 Sectors] Offset: 0 Signature: 0xAA55 Starting Ending LBA Info: #: id C H S - C H S [ start: size ] ----------------------------------------------------------------- 0: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused *3: A6 0 1 2 - 2609 254 63 [ 64: 41929586 ] OpenBSD Use (W)hole disk MBR, whole disk (G)PT, (O)penBSD area or (E)dit? [W]
Nous voilà à la partie sans doute la plus complexe : le partitionnement. Notez que celui par défaut proposé par l'installateur conviendra dans la majorité des cas. À moins de savoir ce que vous faîtes, faîtes confiance à l'installateur, il est assez intelligent.
Je tape donc "W" (ou "G") dans la suite pour utiliser le disque entier, puis "A" pour le partitionnement automatique.
Vous pouvez modifier le partitionnement par défaut en entrant "E".
Setting [OpenBSD https://www.openbsd.org/] MBR partition to whole wd0...done. The auto-allocated layout for wd0 is : # size offset fstype [fsize bsize cpg] a: 738.1M 64 4.2BSD 2048 16384 1 # / b: 223.8M 1511648 swap c: 20480.0M 0 unused d: 172.9.1M 1969888 4.2BSD 2048 16384 1 # /tmp e: 1791.0M 4372032 4.2BSD 2048 16384 1 # /var f: 1558.1M 8040032 4.2BSD 2048 16384 1 # /usr g: 906.8M 11230976 4.2BSD 2048 16384 1 # /usr/X11R6 h: 3364.2M 13088192 4.2BSD 2048 16384 1 # /usr/local i: 1287.2M 19977984 4.2BSD 2048 16384 1 # /usr/src j: 1826.5M 22614208 4.2BSD 2048 16384 1 # /usr/obj k: 7604.8M 26354784 4.2BSD 2048 16384 1 # /home Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] e
Ensuite, vous pouvez lire le manuel de disklabel si vous êtes perdus.
Il faut en général indiquer une action (avec une lettre) à réaliser sur la partition où il faudra l'effectuer.
Par exemple : la suite "d f (entrée)" permet de supprimer la partition f (delete f), qui était /usr, et "d k" pour supprimer le /home.
Ensuite, saisir "a f" permet de re-créer cette partition, et d'en définir la taille. Notez que vous pouvez définir une taille en pourcentage du disque (par exemple 50%) ou en pourcentage de l'espace libre restant (50&). Ici, je vais réduire le /home au profit de /usr qui prendra 75% de l'espace restant. De la même façon avec "a k", on re-crée /home à la taille souhaitée.
Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] e Label editor (enter '?' for help at any prompt) > d f > d k > a f offset: [26354784] size: [15574867] 75& FS type: [4.2BSD] mount point: [none] /usr > a k offset: [38035904] size: [3893746] FS type: [4.2BSD] mount point: [none] /home
Quand vous voulez, vous pouvez entrer p pour afficher les partitions actuelles, histoire de voir où vous en êtes.
> p OpenBSD area: 64-41929650; size: 41929586; free: 3190962 The auto-allocated layout for wd0 is : # size offset fstype [fsize bsize cpg] a: 1511584 64 4.2BSD 2048 16384 1 # / b: 458240 1511648 swap c: 41943040 0 unused d: 2402144 1969888 4.2BSD 2048 16384 1 # /tmp e: 3678000 4372032 4.2BSD 2048 16384 1 # /var f: 11681120 26354784 4.2BSD 2048 16384 1 # /usr g: 1857216 11230976 4.2BSD 2048 16384 1 # /usr/X11R6 h: 6889792 13088192 4.2BSD 2048 16384 1 # /usr/local i: 2636224 19977984 4.2BSD 2048 16384 1 # /usr/src j: 3740576 22614208 4.2BSD 2048 16384 1 # /usr/obj k: 3893728 38035904 4.2BSD 2048 16384 1 # /home
Quelques points à garder en tête :
- La partition "b" est réservée au swap.
- La lettre "c" est réservée, elle représente tout le disque.
- Vos sites web seront enregistrés dans /var. Songez à lui attribuer une place suffisante.
- Vous pouvez définir des tailles en ajoutant une unité ("50G"), un pourcentage du disque ("5%") ou un pourcentage de l'espace libre restant ("100&").
Entrer "q" permet de valider les changements.
> q Write new label?: [y] newfs: reduced number of fragments per cylinder group from 94472 to 94096 to enlarge last cylinder group /dev/rwd0a: 738.1MB in 1511584 sectors of 512 bytes 5 cylinder groups of 114.559MB, 7334 blocks, 14720 inodes each ... ... /dev/wd0a (8c0364801ae0817e.a) on /mnt type ffs \ (rw, asynchronous,local, nodev, nosuid) /dev/wd0k (8c0364801ae0817e.k) on /mnt/home type ffs \ (rw, asynchronous,local, nodev, nosuid) ... ...
Enfin l'installation des composants du système peut commencer. L'installateur doit savoir où aller les chercher : sur le cdrom d'installation (cd0), la clé USB d'installation (disk) ou directement sur un miroir de téléchargement (http). Choisissez cd0 ou disk si vous installez avec une image install*.* ou bien http en cas de doute.
Petite astuce pour choisir un miroir si ça vous intéresse. Entrez "?" pour avoir la liste numérotée des serveurs disponibles. Quittez cette liste avec "q", puis entrez seulement le numéro du miroir que vous souhaitez utiliser.
Pour ajouter un set, saisissez simplement son nom, par exemple game67.tgz. Pour retirer un set, saisissez son nom précédé du signe moins : -game67.tgz. Ils ne prennent vraiment pas beaucoup de place, je vous conseille de tout laisser coché.
Let's install the sets! Location of sets (cd0 disk http or 'done') [http] HTTP proxy URL? (e.g. ’http://proxy:8080’, or ’none’) [none] HTTP Server? (hostname, list#, ’done’ or ’?’) [ftp.fr.openbsd.org] Server directory? [pub/OpenBSD/6.7/amd64] Select sets by entering a set name, a file name pattern or ’all’. De-select sets by prepending a ’-’ to the set name, file name pattern or ’all’. Selected sets are labelled ’[X]’. [X] bsd [X] base67.tgz [X] game67.tgz [X] xfont67.tgz [X] bsd.rd [X] comp67.tgz [X] xbase67.tgz [X] xserv67.tgz [X] bsd.mp [X] man67.tgz [X] xshare67.tgz Set name(s)? (or ’abort’ or ’done’) [done]
bsd.mp est le noyau optimisé pour les systèmes multi-processeurs, et bsd le noyau classique. C'est l'un ou l'autre qui est automatiquement utilisé, et non pas l'un en plus de l'autre. OpenBSD est suffisamment intelligent pour choisir le noyau optimisé si le matériel le permet, vous n'avez rien à faire.
Si vous installez les sets à partir du CD, un avertissement sur la signature apparaît. Rien d'inquiétant, vous pouvez dans ce cas continuer.
Directory does not contain SHA256.sig. Continue without verification? [no] yes
L'installation avance
Get/Verify SHA256.sig 100% |**************************| 2152 00:00 Signature Verified Get/Verify bsd 100% |**************************| 10423 KB 00:14 Get/Verify bsd.rd 100% |**************************| 9215 KB 00:11 ... ... Installing base67.tgz 100% |**************************| 52181 KB ... ... Installing xserv67.tgz 100% |**************************| 22686 KB Location of sets? (cd0 disk http or 'done' [done]
Pour terminer, l'installateur s'occupe de la configuration et de générer un noyau unique :
Saving configuration files...done. Making all device nodes...done. Relinking to create a unique kernel... CONGRATULATIONS! Your OpenBSD install has been successfully completed! When you login to your new system the first time, please read your mail using the 'mail' command. Exit to (S)hell, (H)alt or (R)eboot? [reboot]
Et voilà, l'installation est terminée, on valide le reboot pour redémarrer.
Lors du premier démarrage, éditez (créez) le fichier "/etc/installurl" puis assurez-vous d'avoir une ligne contenant le miroir choisi. Pour faire simple, autant utiliser le CDN d'OpenBSD qui vous redirigera automatiquement vers un serveur rapide :
https://cdn.openbsd.org/pub/OpenBSD
Normalement, le fichier est déjà présent et rempli. Vous pouvez passer à la suite 😄