cd / ; apropos ;
Table des matières

Choses à faire après l'installation d'OpenBSD #

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

Installation chiffrée #

Voir la FAQ:

https://www.openbsd.org/faq/faq14.html#softraidFDE

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''.

/tmp en ram #

Je monte ''/tmp'' en ram, et j'attribue 1/10 de la RAM disponible pour ça. On commente avant tout la ligne contenant déjà une entrée pour ''/tmp'' dans ''/etc/fstab''.

# sed -i '/\/tmp /s/^/\#/' /etc/fstab
# printf "swap /tmp mfs rw,nodev,nosuid,-s=%sB 0 0\n" \
    $(dmesg |awk '/avail mem/ { print int($4 / 10)}') \
    >> /etc/fstab
# echo "chmod 1777 /tmp" >> /etc/rc.local

Ça revient à :

swap /tmp mfs rw,nodev,nosuid,-s=0.8G 0 0

/home en 700 #

$ chmod 0700 $HOME

user dans + de groupes #

Pour éteindre sans avoir besoin de ''doas'', il faut appartenir au groupe ''_shutdown'':

# usermod -G _shutdown prx

Afin d'utiliser ''cu'' :

# usermod -G dialer prx

Et pour travailler avec les sources :

# usermod -G wsrc prx

Enfin, pour être moins limité en terme de ressources, c'est mieux d'appartenir à la class de login "staff" (voir login.conf(5))

# usermod -L staff prx

À la fin:

> userinfo prx
login   prx
passwd  *
uid     1000
groups  prx wheel operator wsrc staff dialer _shutdown
change  NEVER
class   staff
gecos   prx
dir     /home/prx
shell   /bin/ksh
expire  NEVER

On peut augmenter les limites dans /etc/login.conf :

staff:\
        :datasize-cur=6144M:\

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'utilise 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). On en profite aussi pour retirer la possiblité d'accéder à un tty avec Ctrl-Alt-F*.

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

Boot plus rapide #

echo "set timeout 1" > /etc/boot.conf

Parefeu + sévère #

# cat << EOF > /etc/pf.conf
set skip on lo
antispoof quick for { egress }

block

pass in proto icmp
pass in proto icmp6
pass on wg0
pass out
EOF

doas #

Commandes que je veux pouvoir lancer sans entrer de mots de passe. Surtout pour les scripts.

cat << EOF > /etc/doas.conf
permit persist :wheel
permit nopass  :wheel cmd /sbin/disklabel
permit nopass  :wheel cmd /sbin/umount
permit nopass  :wheel cmd /sbin/mount
EOF

wsconsctl #

Pas de bip clavier et luminosité réduite : 80% me permet de bien voir et réduit la consommation d'énergie.

cat << EOF > /etc/wsconsctl.conf
keyboard.bell.volume=0
display.brightness=80
EOF

Installation de quelques programmes #

dwm #

J'utilise une version de dwm avec quelques patches directement intégrés dans mon config.h :

dwm

À vrai dire, ces patches ne me sont que très rarement utiles...

J'y ajoute parfois le patche alpha

--- a/drw.c
+++ b/drw.c
@@ -202,6 +202,8 @@ drw_clr_create(Drw *drw, Clr *dest, const char *clrname)
                           DefaultColormap(drw->dpy, drw->screen),
                           clrname, dest))
        die("error, cannot allocate color '%s'", clrname);
+
+   dest->pixel |= 0xff << 24;
 }


VER=6.5
cd /tmp
ftp https://dl.suckless.org/dwm/dwm-$VER.tar.gz
tar xvzf dwm*.tar.gz
cd dwm-$VER
ftp -o config.h https://si3t.ch/pub/dwm-config.h
vi config.mk # sed -i /^#FREETYPEIN/s/^#// config.mk
make
make install PREFIX=$HOME

st #

Un terminal tout simple, donc rapide.

VER=0.9.1
cd /tmp
ftp https://dl.suckless.org/st/st-$VER.tar.gz
tar xvzf st-*.tar.gz
cd st-$VER
ftp -o config.h https://si3t.ch/pub/st-config.h
vi config.mk # edit OpenBSD config
make
make install PREFIX=$HOME

Résolveur DNS indépendant (unwind) + adblock #

/etc/unwind.conf:

fdn1=80.67.169.12
fdn2=80.67.169.40
fdn61=2001:910:800::12
fdn62=2001:910:800::40
wikimedia=185.71.138.138
wikimedia6=2001:67c:930::1

bortzmeyer=193.70.85.11

block list "/var/db/unwind-block.txt" log

forwarder { $fdn61 DoT $fdn62 DoT $fdn1 DoT $fdn2 DoT $wikimedia6 DoT $wikimedia DoT $bortzmeyer }

preference { recursor DoT oDoT-forwarder oDoT-autoconf stub }

/usr/local/sbin/unwindblock

#!/bin/sh
db=/var/db/unwind-block.txt
if [ -n "$(find $db -mtime +7)" ]; then
        # wait for internet access
        while true; do
                nc -zw1 si3t.ch 443 && break || sleep 60
        done
        ftp -o- https://si3t.ch/pub/evils/unwind-block.txt.gz |gzcat > $db
fi
ftp -o- https://si3t.ch/pub/evils/unwind-block.txt.gz |gzcat > /var/db/unwind-block.txt

rcctl enable unwind
rcctl start unwind

chmod +x /usr/local/sbin/unwindblock

# crontab -e 
@reboot /usr/local/sbin/unwindblock

Voir la liste des ip blacklistées

/evils/

VPN #

J'utilise un VPN wireguard via openbsd.amsterdam sur le rdomain 2 pour l'utiliser seulement au besoin.

J'ai donc un fichier /etc/hostname.wg0

wgkey ...
wgpeer ... \
        wgendpoint 46.23.90.144 4545 \
        wgaip 0.0.0.0/0 \
        wgaip ::0/0
inet 10.0.0.2/24
inet6 fd54:49bc:c233:fde:cafe::2/64
rdomain 2
!route -T2 add -inet default 10.0.0.1
!route -T2 add -inet6 default fd54:49bc:c233:fde:cafe::1
up

Cependant, la résolution de noms de domaines n'est pas au top... unwind n'est pas accessible sur la table de routage 2. Il faut donc lancer un second unwind:

cat << EOF > /etc/hostname.lo1
rdomain 2
127.0.0.1
up" 
EOF

sh /etc/netstart lo1

ln -s /etc/rc.d/unwind /etc/rc.d/unwind2

rcctl enable unwind2
echo "unwind2_rtable=2" >> /etc/rc.conf.local
rcctl start unwind2

Pour utiliser le VPN, je lance le programme souhaité avec :

route -T2 exec le_nom_de-l_outil -flag1 -flag2...

rc.local #

cat << EOF >> /etc/rc.local
sleep 30 && syspatch &
sleep 60 && find /home -name "*.core" -delete &
EOF

Gestion de l'énergie #

Le système sera suspendu si la batterie descend en-dessous de 5%. Ça permet de brancher la machine sans perdre son travail.

rcctl enable apmd
rcctl set apmd flags -A -z 5

À la place, j'aime autant utiliser le port obsdfreqd qui limite la température en réduisant la fréquence du processeur si besoin

pkg_add obsdfreqd
rcctl enable obsdfreqd apmd
rcctl set obsdfreqd flags -T 75,55
rcctl set apmd flags -L -z8
rcctl start apmd obsdfreqd

Et pour que l'écran soit verrouillé après avoir suspendu la machine:

# cat /etc/apm/suspend
#!/bin/sh
pkill -USR1 xidle

Le script ''checkbatt'' permet d'avoir une alerte si la batterie a un niveau trop faible. Il s'appelle via un cron. :

*/5 * * * * /home/prx/bin/checkbatt >/dev/null 2>&1

ntpd #

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

firmwares #

Si aucun accès à internet n'est disponible, récupérer les firmwares en ligne, les copier sur une clé USB, monter la clé puis lancer ''fw_update'' ainsi :

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

http://firmware.openbsd.org/firmware/

sysctl #

Pour éviter d'abîmer la batterie en lui imposant une tension de charge lorsque le secteur est branché :

hw.battery.chargemode=1
hw.battery.chargestart=0
hw.battery.chargestop=85

pour xorg, si c'est demandé dans /var/log/Xorg.0.log

machdep.allowaperture=1

Pour améliorer les performances et utiliser micro et webcam. Attention, cela allège les précautions de sécurité par défaut:

hw.smt=1
kern.audio.record=1
kern.video.record=1

Pour utiliser la webcam, il faudra lancer:

chown $USER /dev/video*

réseau et WiFi #

Sur un portable, on peut activer le WiFi et le filaire avec de préférence le filaire. En cas de déconnexion, l'autre carte réseau prend le relais.

Dans mon cas, sur un x250 :

# cat /etc/hostname.iwn0
join wifi1 wpakey blabla
join wifi2 wpakey pouet
join ""
up

# cat /etc/hostname.em0
up

# cat /etc/hostname.trunk0
trunkproto failover trunkport em0 trunkport iwm0
inet autoconf
inet6 autoconf

Montage de cdrom/DVD #

$ doas mkdir /cdrom 
$ cat /etc/fstab
/dev/cd0a /cdrom cd9660 ro,noauto 0 0

Disque dur externe de musique #

/etc/fstab:

b2a7ab562311a08f.a /home/prx/mpd        ffs     rw,nodev,nosuid,noatime 1 2

Outils audio USB prioritaires #

# rcctl set sndiod flags -f rsnd/0 -F rsnd/1
# rcctl restart sndiod

crontab #

*/5 * * * * /home/prx/bin/checkbatt >/dev/null 2>&1
~ * * * * /home/prx/bin/prxsync push >/dev/null 2>&1

Imprimante USB #

# echo 'disable ulpt' >>/etc/bsd.re-config

ports #

Liste générée avec ''pkg_info -zm > obsdpkglist.lst''.

ftp https://si3t.ch/misc/logiciel-libre/openbsd/obsdpkglist.lst
pkg_add -vmzl obsdpkglist.lst