Rendez-vous sur Arrakis, Le site perso d'un hacker libriste curieux crêpophile étourdi
Le 23/09/2019 à 18:51 dans /Logiciel-libre/OpenBSD/

Post-installation d'OpenBSD desktop

Notes personnelles pour profiter d'OpenBSD dans un usage “desktop”.

Installation chiffrée

C'est détaillé sur la FAQ.

S'il y a un bug à la fin de l'installation en cas d'UEFI, installer le chargeur de démarrage à la main avec installboot.

Autologin

Si on est le seul utilisateur de la machine et que l'ensemble est chiffré et qu'on éteint son ordi lorsqu'on ne l'utilis pas, alors on peut activer l'autologin pour xenodm :

echo 'DisplayManager._0.autoLogin: user' >> /etc/X11/xenodm/xenodm-config

Dans ce cas, je vous conseille de désactiver la possibilité de fermer la session graphique avec Ctrl-Shift-backspace. Sinon, n'importe qui peut prendre le contrôle de votre session même si vous l'avez verrouillée avec xlock (ou autre).

cat << EOF >> /etc/X11/xorg.conf
Section "ServerFlags"
  Option "DontZap" "true"
EndSection
EOF

softdeps

L'option softdeps permet d'accélérer l'utilisation des disques. Attention, en cas de crash, il y a plus de risques d'avoir des pertes malgré le caractère très conservateur du système de fichier d'OpenBSD.

sed -i 's/rw,/rw,softdep,/g' /etc/fstab

On peut aller encore plus loin en ne tenant pas compte des dates d'accès (noatime) :

sed -i 's/rw,/rw,softdep,noatime,/g' /etc/fstab

doas

cat << EOF > /etc/doas.conf
permit persist :wheel
permit nopass  :wheel cmd /sbin/umount
permit nopass  :wheel cmd /sbin/shutdown
permit nopass  :wheel cmd /sbin/reboot
permit nopass  :wheel cmd /sbin/mount
permit nopass  :wheel cmd /sbin/zzz
permit nopass  :wheel cmd /sbin/ZZZ
EOF

Installation de quelques programmes

dwm, st, noice

Le tout ci-dessous avec mes préférences personnelles :

pkg_add git
cd /tmp
git clone --depth=1 https://git.suckless.org/dwm
cd dwm
sed -i 's;#FREETYPEINC = ${X11INC}/freetype2;FREETYPEINC = ${X11INC}/freetype2/;' \
    config.mk
ftp -o config.h https://ybad.name/DL/dwm-config.h
make && doas make install

cd /tmp
git clone --depth=1 https://git.suckless.org/st
ftp https://st.suckless.org/patches/nordtheme/st-nordtheme-0.8.2.diff
git apply st-nordtheme-*.diff
ftp -o config.h https://ybad.name/DL/st-config.h
cat << EOF >> config.mk
CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -D_BSD_SOURCE
LIBS = -L$(X11LIB) -lm -lX11 -lutil -lXft \
   `pkg-config --libs fontconfig` \
   `pkg-config --libs freetype2`
EOF
make && doas make install

cd /tmp
git clone --depth=1 git://git.2f30.org/noice.git
cd noice
sed -e 's/int dirorder    = 0/int dirorder    = 1/' \
    -e 's/int usecolor    = 0/int usecolor    = 1/' \
    noiceconf.def.h > noiceconf.h
make && doas make install

Scripts

cd /tmp
ftp https://dev.ybad.name/Scripts.tgz
tar xvzf Scripts.tgz
mv Scripts/mybin $HOME/bin

Install dotfiles (fichiers de configuration)

cd /tmp
mkdir dotfiles && cd dotfiles
ftp https://dev.ybad.name/dotfiles.tgz
tar xvzf dotfiles.tgz
rm dotfiles.tgz
for i in *; do mv $i $HOME/.$i; done
mkdir -p $HOME/.config/gtk-3.0/
mv .gtk-3.0-settings.ini $HOME/.config/gtk-3.0/settings.ini

Résolveur DNS indépendant (unwind)

rcctl enable unwind
touch /var/unwind.block
echo 'block list "/var/unwind.block"' > /etc/unwind.conf
ftp -o /usr/local/sbin/unwind-block http://dev.ybad.name/OpenBSD-stuff/unwind-block
chmod +x /usr/local/sbin/unwind-block

cat << EOF >> /etc/rc.local
DAYS=7
if [ -n "$(find /var/unwind.block -mtime +${DAYS} )" ]; then
    /usr/local/sbin/unwind-block > /var/unwind.block && rcctl reload unwind
fi
EOF

echo "prepend domain-name-servers 127.0.0.1;" >> /etc/dhclient.conf

Gestion de l'énergie

rcctl enable apmd
rcctl set apmd flags -A

ntpd

sed -i 's/www\.google\.com/www.openbsd.org/' /etc/ntpd.conf

Faire partie du staff

usermod -G staff user

firmwares

Si aucun accès à internet n'est disponible, récupérer les firmwares sur http://firmware.openbsd.org/firmware/, les copier sur une clé USB, monter la clé puis lancer “fw_update” ainsi :

fw_update -p /chemin/vers/cle/usb/

ports

ftp https://ybad.name/DL/obsdpkg.list
pkg_add -vmzl obsdpkg.list