cd / ; apropos ; find * ;
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

Bruit dans le casque #

Dans mon casque audio, il y a parfois du bruit blanc.

Pour le retirer:

cat << EOF > /etc/mixerctl.conf
inputs.mix2_source=dac-0:1
EOF

https://www.mail-archive.com/misc@openbsd.org/msg182180.html


## Installation de quelques programmes

### dwm

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

=> https://dwm.suckless.org dwm

* bstack
* grid
* deck
* resetnmaster
* focusurgent
* focusmaster
* nametag
* movestack

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

=> https://dwm.suckless.org/patches/alpha/ J'y ajoute parfois le patche alpha


+++ 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. :

## 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

~ * * * * /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