2018/05/25 10:12 1/11 Clé USB bootable OpenBSD Clé USB bootable OpenBSD

Je vais indiquer ici comment créer une clé USB bootable avec OpenBSD.

Intérêt ?

Quel est l'intérêt de la chose ? Et bien il est multiple :

Avoir un sous la main, c'est le bien Avoir un système de secours sur clé USB, c'est le pied Booter sur un système super-sécurisé, ça le fé ! C'est fun C'est la frime

Les différents usages :

obtenir un dmesg super détaillé pour identifier du matériel récupérer un système endommagé Avoir un anti-virus non compromis installer OpenBSD sur une nouvelle machine (oui, en plus d'être bootable, l'installation est possible !) faire de la maintenance

Bref, ça le fait bien.

Installation

C'est l'enfance de l'art : booter sur un CD OpenBSD (i386 pour une plus grande compatibilité, mais ça marche pareil avec un amd64…), une clé USB déjà préparée, une disquette, en réseau… et lancez l'installation !

Repérez bien le device qui correspond à votre clé USB (sd0 ou sd1 probablement) et installez le système dessus.

Le plus simple ? Une seule partition 'a', pas de swap, créer un utilisateur autre que root, n'installez pas compXX.tgz, ni gameXX.tgz (pour gagner quelques Mo…).

Et surtout, utilisez les DUID pour identifier les disques au montage !

Exemple

J'ai reçu une clé USB Duracell de 4Go avec le programme de fidélité Orange Davantage Internet. Cool. Je m'en va installer le bousin là-dessus. Bon, le formatage prend des plombes, l'installation complète met deux heures pour aboutir, le

Chez moi... - http://wiki.free-unices.org/ Last update: 2015/09/08 13:48 config::bootableflashdrive http://wiki.free-unices.org/doku.php/config/openbsd/bootableflashdrive système est super lent. Clé de merde. Je recommence avec une cle USB de 1Go plus vieille. Cool, ça marche 92 fois mieux… Moralité : si vous trouvez ça lent, utilisez un autre périphérique !

Bref, je fais l'installation sur une clé de 1Go, avec une seule partition et un utilisateur live (mot de passe live : on ne cherche pas à faire compliqué), j'installe tous les sets sauf comp51.tgz et game51.tgz.

Détails

Une fois l'installation terminée, ne rebootez pas !!!

Vous avez fini l'installation et avez un shell à disposition. Votre partition est montée sur /mnt : profitez-en !

Systèmes de fichiers

Histoire d'avoir un système rapide malgré un périphérique lent, je vais monter des répertoires en RAM.

Les répertoires nécessitant un accès en écritures sont : /tmp, /var/run, /var/tmp, /dev. Les systèmes de fichiers en RAM sous OpenBSD peuvent être initialisés par une copie d'un périphérique ou d'un répertoire, ce qui est bien cool. Nous allons en tirer profit pour les répertoires pré-cités :

# cd /mnt # mkdir -P proxy/dev # cp dev/MAKEDEV proxy/dev # cd proxy/dev # sh ./MAKEDEV all # cd .. # cp -Rp /mnt/var . # cp -Rp /mnt/home . # cp -RP /mnt/tmp . # vi /mnt/etc/fstab

Et voici le fichier fstab incriminé : fstab

# Le / est identifié par DUID, ce sera /dev/sd1a probablement au final... # Les allègent les écritures sur le disque. # L'option 'noatime' peut aussi être envisagée. 03328efc2aa11b61.a / ffs rw,softdep 1 1

http://wiki.free-unices.org/ Printed on 2018/05/25 10:12 2018/05/25 10:12 3/11 Clé USB bootable OpenBSD

swap /dev mfs rw,-s=2M,-i=1,-P=/proxy/dev/ 0 0 swap /var/log mfs rw,-s=20M,-P=/proxy/var/log/ 0 0 swap /var/run mfs rw,-s=5M,-P=/proxy/var/run/ 0 0 swap /var/tmp mfs rw,-s=5M 0 0 swap /tmp mfs rw,-s=30M 0 0 swap /home mfs rw,-s=100M,-P=/proxy/home/ 0 0

Explications : Toutes les lignes commençant par swap sont “spéciales”.

Par exemple : /dev sera monté en mémoire (mfs = Memory File System), d'une taille de 2Mo, en copiant /proxy/dev/ à l'initialisation. Ici, je précise aussi qu'il faut beaucoup d'inodes (option '-i') : il y a 1198 devices et normalement, il n'y a “que” 128 inodes sur 2Mo. man mount_mfs est votre ami !

Un rapide calcul nous montrera qu'il faut au moins 162Mo de RAM sur le système pour pouvoir monter tous les RAM-fs. J'avoue n'avoir pas eu le vice de tester sur une machine virtuelle avec 64Mo de RAM par exemple…

Dernier point : la première ligne de votre fichier sera différente de la mienne, c'est normal, il s'agit d'un identifiant unique (man disklabel) !

Services

Soyons clairs, sur un système de secours/d'installation, il n'y a pas besoin d'avoir de services configurés. Voici donc le contenu du fichier rc.conf.local (qui sera créé pour l'occasion) :

/etc/rc.conf.local

# Local rc configuration inetd_flags=NO sendmail_flags=NO apmd_flags="-a -C"

Le daemon apmd peut être utile sur un portable…

Avant de redémarrer

Encore deux petites modifications avant de rebooter.

D'abord, il est préférable que l'ordinateur s'arrête directement plutôt que d'appuyer sur le bouton (partisans du moindre effort, vous êtes les bienvenus !) donc modifiez rc.shutdown :

/etc/rc.shutdown

Chez moi... - http://wiki.free-unices.org/ Last update: 2015/09/08 13:48 config:openbsd:bootableflashdrive http://wiki.free-unices.org/doku.php/config/openbsd/bootableflashdrive

powerdown=YES

Enfin, nous allons configurer le firewall maintenant, histoire de…

Seules les connexions SSH entrantes sont autorisées (on ne sait jamais…), et toutes celles sortantes bien sûr…

/etc/.conf

set skip on lo

# filter rules and anchor for ftp-proxy(8) #anchor "ftp-proxy/*" #pass in quick inet proto tcp to port ftp divert-to 127.0.0.1 port 8021

# anchor for relayd(8) #anchor "relayd/*"

pass out # to establish keep-state block in

# rules for spamd(8) #table persist #table persist file "/etc/mail/nospamd" #pass in on egress proto tcp from any to any port smtp \ # rdr-to 127.0.0.1 port spamd #pass in on egress proto tcp from to any port smtp #pass in log on egress proto tcp from to any port smtp #pass out log on egress proto tcp to any port smtp

#block in quick from urpf-failed to any # use with care

pass in log proto tcp from any to any port ssh modulate state

# By default, do not permit remote connections to X11 block in on ! lo0 proto tcp to port 6000:6010

Allez, hop ! On redémarre :

# cd # sync # umount /mnt # reboot

Premier boot

http://wiki.free-unices.org/ Printed on 2018/05/25 10:12 2018/05/25 10:12 5/11 Clé USB bootable OpenBSD

N'oubliez pas de sélectionner votre clé USB comme périphérique de démarrage et zou, Welcome to OpenBSD.

Logiquement, tout devrait bien se passer et le système devrait démarrer.

Logguez-vous en root et c'est parti.

Faciliter l'utilisation

Comme sur la plupart des système, il y a quelques modifications à effectuer, histoire de vous simplifier la vie.

Commencez par donner un peu plus de droits à l'utilisateur du système “live USB” (il s'agit de live dans mon exemple) :

# visudo

Modifiez le fichier comme suit (ajouter un alias de commandes et décommenter le groupe wheel) :

/etc/sudoers

# sudoers file. # # This file MUST be edited with the 'visudo' command as root. # Failure to use 'visudo' may result in syntax or file permission errors # that prevent from running. # # See the sudoers for the details on how to write a sudoers file. #

# Host alias specification

# User alias specification

# Cmnd alias specification Cmnd_Alias HALT = /sbin/halt, /sbin/reboot

# Defaults specification Defaults env_keep +="DESTDIR DISTDIR EDITOR FETCH_CMD FLAVOR FTPMODE GROUP MAKE" Defaults env_keep +="MAKECONF MULTI_PACKAGES NOMAN OKAY_FILES OWNER PKG_CACHE" Defaults env_keep +="PKG_DBDIR PKG_DESTDIR PKG_PATH PKG_TMPDIR PORTSDIR" Defaults env_keep +="RELEASEDIR SHARED_ONLY SSH_AUTH_SOCK SUBPACKAGE VISUAL" Defaults env_keep +="WRKOBJDIR"

Chez moi... - http://wiki.free-unices.org/ Last update: 2015/09/08 13:48 config:openbsd:bootableflashdrive http://wiki.free-unices.org/doku.php/config/openbsd/bootableflashdrive

# Uncomment to disable the lecture the first time you run sudo #Defaults !lecture

# Uncomment to preserve the environment for users in group wheel #Defaults:%wheel !env_reset

# Runas alias specification

# User privilege specification root ALL=(ALL) SETENV: ALL

# Uncomment to allow people in group wheel to run all commands # and set environment variables. %wheel ALL=(ALL) SETENV: ALL, NOPASSWD: HALT

# Same thing without a password # %wheel ALL=(ALL) NOPASSWD: SETENV: ALL

# Samples # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom # %users localhost=/sbin/shutdown -h now

Ensuite, modifiez le fichier .profile du root :

# cat >> ~/.profile <<_EOF_ kernversion=`sysctl -n kern.osrelease` machinetype=` -n hw.machine` PKG_PATH="./:http://ftp.fr.openbsd.org/pub/OpenBSD/$kernversion/packages/$ma chinetype/" PS1="\$PWD \\$> "

export PS1 PKG_PATH _EOF_ #

Vous pouvez ensuite vous déconnecter/reconnecter pour bénéficier d'un zouli prompt et surtout pour pouvoir installer les packages.

Décommenter la ligne suivante dans /etc/sysctl.conf,

machdep.lidsuspend=1 # laptop lid closes cause a suspend histoire d'avoir un comportement “sain” sur un portable…

Enfin, installation de packages utiles (ou pas, à vous de juger et de choisir – notez le nouveau prompt au passage…) :

/root #> pkg_add aumix clamav dillo hping iperf mupdf qiv rox-filer xbattbar xosd

http://wiki.free-unices.org/ Printed on 2018/05/25 10:12 2018/05/25 10:12 7/11 Clé USB bootable OpenBSD

Comme vous pouvez le voir, il y a des programmes “de luxe” : un mixer audio, un visualiseur d'images ou un moniteur de batterie ne sont pas obligatoires…

Le cas ClamAV

Dans mon cas, avec une clé de 1Go, j'ai environ 20Mo de libre et clamav (enfin freshclam) est dans l'incapacité de télécharger sa base de données par manque de place.

Du coup, j'ai sioux-é. Encore…

/root #> cp -Rp /var/db /proxy/var/ /root #> echo "swap /var/db/clamav mfs rw,-s=50M,-P=/proxy/var/db/clamav/ 0 0" >> /etc/fstab /root #> mount /var/db/clamav

Après ça, freshclam est content, tout va bien.

Deux inconvénients :

il faut re-télécharger les signatures de virus à chaque fois que l'on veut utiliser clamscan il faut une machine avec 50Mo de RAM en plus, soit 212Mo…

Bien entendu, il ne faut pas oublier d'éditer /etc/freshclam.conf (en activant la compression…) pour configurer le bazar.

Personnalisation

Histoire d'avoir un système prêt à l'emploi et accueillant, il reste encore 2-3 trucs à faire.

Editer /etc/gettytab et remplacez la première ligne par :

default:\ :np:im=\r\n%s/%m (%h) (%t)\r\n\r\nUse live/live to connect.\r\n\r\n:sp#1200:

Remplacez live/live par votre utilisateur/mot_de_passe, comme ça vous aurez un indice pour la connexion.

Ecrivez ensuite un chouette message à afficher lors de chaque connexion :

/etc/motd

OpenBSD 5.1 (GENERIC.MP) #188: Sun Feb 12 09:55:11 MST 2012

Welcome to OpenBSD Live.

You can either run OpenBSD from this flash drive or install it.

In order to install on i386, reboot and type 'boot bsd.rd' at the

Chez moi... - http://wiki.free-unices.org/ Last update: 2015/09/08 13:48 config:openbsd:bootableflashdrive http://wiki.free-unices.org/doku.php/config/openbsd/bootableflashdrive

'boot> ' prompt. The install sets and firmwares are located in /install.

To install on amd64, reboot and type 'boot bsd64.rd' at the 'boot> ' prompt. Please note that amd64 install sets are not available on this flash drive (-> install from network!).

Use startx to start graphical session.

All changes to the "live" account will be lost on reboot...

Bon, là, vous voyez déjà d'autres informations. Faisons donc en sorte qu'elles soient justes :

/root #> mkdir -P /install/firmware /root #> cd /install /install #>

Copiez ici tous les fichiers d'installation (depuis un CD, le réseau, etc) : *51.tgz, bsd* et INSTALL51.arch Copiez aussi le noyau d'installation amd64 et renommez-le en /bsd64.rd Copiez les firmware (depuis http://firmware.openbsd.org/firmware/ – ne prenez que les plus récents) dans /install/firmware. L'ensemble (sets et firmwares) occupe environ 260Mo.

Logguez-vous ensuite avec votre utilisateur “normal” et faites quelques modifications.

Voici ce que moi j'ai fait :

/home/live/.cwmrc

# configuration file sticky yes

color activeborder magenta4 color inactiveborder thistle4 color groupborder yellow color ungroupborder green color menubg gray

gap 0 0 3 0 snapdist 10

fontname "sans-serif:pixelsize=12:bold"

command "CWM doc" "xterm -rv +sb -T CWM -e man cwm" command "------" "" command Terminal "xterm -rv +sb" command "------" ""

http://wiki.free-unices.org/ Printed on 2018/05/25 10:12 2018/05/25 10:12 9/11 Clé USB bootable OpenBSD

command Dillo dillo command Lynx "xterm +sb -T Lynx -e lynx" command "------" "" command "File Manager" rox command "------" "" command "Music player" beep-media-player command "Volume" aumix command "------" "" command "Quit CWM" "quit" command Halt "sudo /sbin/halt -p"

bind 4-Return "xterm -rv +sb" bind 4-i dillo bind 4-e rox bind CM-Return "xterm -rv +sb"

autogroup 1 "xterm,XTerm" autogroup 4 "dillo,Dillo"

/home/live/.xinitrc

#!/bin/sh

# Test battery presence and launch battery monitor if present. sysctl hw.sensors.acpibat0 2>&1 >/dev/null && (xbattbar -a -I yellow left &)

# With the default X setup, there is no tap to click. Try to fix this. synclient "TapButton1=1" &

# Set background. Solid color and image if qiv is found. xsetroot -solid magenta4 & which qiv 2>&1 >/dev/null && (qiv -z ~/.bckgrnd.png &)

# Display help message after 15 seconds. (sleep 15 && osd_cat -A right -d 60 -l 20 -s 1 -f "-*-fixed-*-*-*-*-15- *-*-*-*-*-*-15" ~/.summary) &

# Launch window manager and log error messages. exec cwm 2>~/.xsession-error

# EoF

/home/live/.summary

Welcome to the OpenBSD Live X Session!

A few tools are available to you. They are available from the CWM Menu.

Chez moi... - http://wiki.free-unices.org/ Last update: 2015/09/08 13:48 config:openbsd:bootableflashdrive http://wiki.free-unices.org/doku.php/config/openbsd/bootableflashdrive

You can bring up the menu with the right mouse button.

To surf the web, use either Dillo or Lynx. You can choose between vi or (emacs-like) to edit files.

If you have some issues with firmware, you can install them from /install/firmware.

By all mean, read the CWM man page in order to grab a few concepts and learn basic keyboard shortcuts (CMS-Q and CM-Backspace are your friends if you want to leave graphical session...).

Enjoy!

Lancez X (startx), jouez un peu avec Dillo (pour avoir des paramètres par défaut acceptables), Rox (configurez les associations de fichiers) et trouvez une belle image que vous sauvegarderez en /home/live/.bckgrnd.png (comme celle-ci par exemple…).

Modifiez vos fichiers d'init comme vous l'entendez (.profile, .cshrc, etc).

Enfin :

$ sudo -i /root #> cp -Rp /home/live/ /proxy/home/

Et oui : n'oubliez pas que /home est un RAM-fs, donc tout sera perdu au prochain démarrage si vous ne faite pas cette copie !

Un dernier reboot pour la route…

Conclusion

Après cela, vous aurez un système “Live USB” OpenBSD.

Logiquement, il sera pleinement utilisable : vous pouvez là, maintenant, tout de suite, avoir un pare- feu ou un routeur depuis votre clé USB. Tous les outils d'OpenBSD sont disponibles.

Vous pouvez également vous en servir pour installer des systèmes i386 ou amd64 : au démarrage, tapez 'boot bsd.rd' au prompt 'boot> ' (ou 'boot bsd64.rd').

Il est bien entendu possible d'installer une version plus récente que celle présente sur la clé USB : si votre “Live USB” est en version 5.1, rien ne vous empêche d'avoir les paquets d'installation et le 'bsd.rd' de la version 5.2…

Pour cette installation particulière (Live USB), n'oubliez pas que les “vrais” fichiers sont dans /proxy, et pas à leur emplacement habituel (pour /home, /dev et /var).

Comme indiqué, je n'avais qu'une clé de 1Go sous la main, mais si vous disposez de plus d'espace,

http://wiki.free-unices.org/ Printed on 2018/05/25 10:12 2018/05/25 10:12 11/11 Clé USB bootable OpenBSD n'hésitez pas à installer pleins de packages (netsurf, firefox, vim-(no-x11/gtk2), ruby, pkg_mgr, bmp, etc) et/ou à copier les sets d'installation de la version amd64…

Dernière précision

Le plus “pénible” pour vous sera de configurer le réseau à chaque fois que vous vous servirez de votre clé.

Des astuces : créez autant de fichier /etc/hostname.if que vous en aurez besoin.

/root #> cat /etc/hostname.em0 dhcp NONE NONE NONE /root #> cd /etc /etc #> for i in fxp0 re0 xl0 rl0 bge0 bnx0; do cp hostname.em0 hostname.$i; done /etc #>

OpenBSD n'utilisera que celui dont il aura besoin.

Sinon, apprenez bien comment fonctionne la commande ifconfig, surtout pour le wifi.

Un exemple :

/root #> ifconfig urtwn0 nwid Mon_ESSID wpa wpakey ma_passphrase /root #> dhclient urtwn0

Vous pouvez aussi mettre ces commandes dans /etc/hostname.urtwn0, mais les identifiants de votre réseau Wifi seront divulgués aux personnes à qui vous allez prêter cette clé USB…

From: http://wiki.free-unices.org/ - Chez moi...

Permanent link: http://wiki.free-unices.org/doku.php/config/openbsd/bootableflashdrive

Last update: 2015/09/08 13:48

Chez moi... - http://wiki.free-unices.org/