OpenBSD 6.5 (stable) Setup auf einem PC oder Notebook
senioradminOpenBSD 6.5 (stable) Setup auf einem PC oder Notebook
Stand: 15.08.2019 Seit kurzem verwende ich OpenBSD auch auf mehreren PCs und Notebooks. Obwohl andere BSD-Varianten beliebter sind, finde ich dass OpenBSD das schnellste und einfachste out-of-the-box Erlebnis inklusive grafischer Oberfläche bietet.
Die Installation des Betriebssystems ist recht einfach und schnell gemacht und soll hier auch nicht weiter besprochen werden. Einfach alles nach den Standardvorgaben installieren und fertig.
Nach der Installation sollten jedoch einige Anpassungen vorgenommen werden. Ich dokumentiere hier komprimiert meine Einstellungen, die ich als sinnvoll erachte. Diese sind ausgerichtet auf Benutzung des Systems als Desktop, also als System, welches nur temporär läuft und ausschließlich lokale Benutzer hat. Viele der Einstellungen stammen von https://www.c0ffee.net/blog/openbsd-on-a-laptop/
Der Artikel wird ständig aktualisiert
doas einrichten
doas ist ein leichtgewichtiger sudo-Ersatz, der unter OpenBSD zum Einsatz kommt
echo 'permit persist keepenv USERNAME' > /etc/doas.conf
Notebooks: Powermanagement einrichten
rcctl enable apmd
rcctl set apmd flags -A
rcctl start apmd
Einrichtung Unicode und Befehls-Historie
~/.profile
# Befehlshistorie sichern
HISTFILE=~/.ksh_history
#Bash-ähnlicher Prompt:
export PS1='\u@\h:\w$ '
# Unicode
export LC_CTYPE="en_US.UTF-8"
Xenocara (Xorg) Einstellungen
Nerviges xconsole Fenter abstellen
sed -i 's/xconsole/#xconsole/' /etc/X11/xenodm/Xsetup_0
echo 'xset b off' >> /etc/X11/xenodm/Xsetup_0
Window-Manager Einstellungen ~/.xsession
# Unicode
export LC_CTYPE="en_US.UTF-8"
# specify location of kshrc
export ENV=$HOME/.kshrc
# load Xresources file
xrdb -merge $HOME/.Xresources
# set your background color
xsetroot -solid dimgray
# xidle will lock your display after a period of inactivity
xidle &
# deutsche Tastatur
# Ist unnötig, wenn das Tastaturlayout in /etc/kbdtype festgelegt ist
setxkbmap de
# starte Windowmanager, cwm mit dem Windowmanager deiner Wahl ersetzen
exec cwm
Dienste deaktivieren
Es gibt ein paar Dienste, die nicht unbedingt auf einer Workstation oder einem Notebook laufen müssen:
smtpd(8) ist ein Dienst zum empfangen von Mails (so genannter MTA). Die wenigsten dürften ihren eigenen Mailserver auf dem Desktop betrieben. Allerdings werden auch diverse Systemmeldungen, u.a. von Cron und syspatch, über smtpd an das lokale Postfach verschickt. Kann man auf diese Mails verzichten (z. B. weil man sie eh nicht liest) und denkt daran, das System regelmäßig zu patchen kann das Mailsystem m.E. abgestellt werden. Alternativ kann auch ein leichtgewichtiger smtp-Client wie msmtp installiert werden (nicht getestet).
slaacd(8) ist ein Dienst, der aus Router-Advertisements IPv6-Adressen und Routen erstellt. Benötigt man kein IPv6 kann der Dienst abgestellt werden. Manchmal wird IPv6 benötigt, ohne dass man es weiß (ggf. für LL-Multicast). Allerdings ist IPv6 in OpenBSD sowieso standardmäßig abgestellt.
sshd(8) ist ein Dienst welches einloggen auf dem Rechner aus der Ferne über einen verschlüsselten Kanal ermöglicht. Arbeitet man immer direkt (lokal) am Rechner, und möchte man nicht aus der Ferne auf ihn zugreifen, benötigt man den Dienst nicht.
# SMTP (Mail) Server
rcctl stop smtpd
rcctl disable smtpd
# IPv6 brauch ich derzeit nicht
rcctl stop slaacd
rcctl disable slaacd
# SSH-Dienst auf einem PC/Notebook muss nicht sein
rcctl stop sshd
rcctl disable sshd
Performance Einstellungen
Jeder Benutzer wird unter OpenBSD einer bestimmten Login-Klasse zugeteilt. Diese Klasse bestimmt darüber, wie viel Ressourcen benutzt werden können. Am wenigsten Rechte hat die default Klasse. Mehr Rechte hatt die staff-Klasse. Als Hauptbenutzer sollte man sich in die staff Klasse einordnen
usermod -G staff USERNAME
usermod -L staff USERNAME
Anschließend sollten die Rechte des staff Klasse noch erweitert werden /etc/login.conf
staff:\
:datasize-cur=1536M:\
:datasize-max=infinity:\
:maxproc-max=1024:\
:maxproc-cur=512:\
:openfiles-cur=4096:\
:openfiles-max=8192:\
:ignorenologin:\
:requirehome@:\
:tc=default:
sysctl erlaubt es bestimmte Kerneleinstellungen zu setzen. Wir schalten hier Hyperthreading ein, was standardmäßig aus Sicherheitsgründen bei OpenBSD abgestellt ist. Nach meiner Erfahrung bringt dies einen Performance-Gewinn, sofern die CPU Hyperthreading wirklich unterstützt. Überprüfen kann man dies wie folgt:
top
aufrufen, nachsehen wie viel CPUs angezeigt werden- mit
sysctl hw.smt=1
Hyperthreading anschalten - Erneut
top
aufrufen. Werden nun doppelt so viele CPUs angezeigt handelt es sich um “echtes” Hyperthreading und es wird einen Performancegweinn geben (z.B. lädt Firefox nach meinen Messungen ca. 20% schneller)
Man sollte sich aber klar sein, dass man damit einen Sicherheitsmechanismus abstellt.
/etc/sysctl.conf
# Hyperthreading einschalten, siehe oben
hw.smt=1
# Hinweis: Folgende Settings werden von Cullum Smith im o. g. Blog
# empfohlen (ausgerichtet auf eine Maschine mit 16 GB RAM)
# Einige OpenBSD-Nutzer meinen jedoch, sie bringen nichts,
# daher hier auskommentiert. YMMV
# shared memory limits (chrome needs a ton)
#kern.shminfo.shmall=3145728
#kern.shminfo.shmmax=2147483647
#kern.shminfo.shmmni=1024
# semaphores
#kern.shminfo.shmseg=1024
#kern.seminfo.semmns=4096
#kern.seminfo.semmni=1024
#kern.maxproc=32768
#kern.maxfiles=65535
#kern.bufcachepercent=90
#kern.maxvnodes=262144
#kern.somaxconn=2048
Um die Performance der Festplatte zu erhöhen sollte man die Mount-Optionen anpassen und jeweils softdep,noatime hinzufügen
/etc/fstab
0364c44477d30004.b none swap sw
0364c44477d30004.a / ffs rw,softdep,noatime 1 1
0364c44477d30004.l /home ffs rw,softdep,noatime,nodev,nosuid 1 2
Updates
Das OpenBSD-Basissystem von -STABLE kann mit dem Befehl syspatch
aktualisiert werden
Für Binärpakete aus den Ports von -STABLE bietet OpenBSD keine Updates an. Möchte man aktuelle Sicherheitsfixes, was dringend zu empfehlen ist, müsste man sich die entsprechenden Pakete aus den Ports selbst bauen.
Update 15.08.2019: Seit dem 14.08.2019 bietet OpenBSD auch Sicherheitupdates für den -STABLE-Zweig an, siehe https://marc.info/?l=openbsd-announce&m=156577865917831&w=2
Um in den Genuss dieser Updates zu kommen muss man nichts weiter tun, als pkg_add -u
auszuführen (sofern der Standard mit ungesetztem PKG_PATH beibehalten wurde).
Nachfolgend zu Dokumentationszwecken einige inoffizielle Repos, die ebenfalls aktuelle Updates bereit halten (oder hielten). Teilweise können diese Pakete anbieten, die nicht in den offiziellen -STABLE updates enthalten sind),
- https://stable.mtier.org/updates/ (ehem. stable Repo von M:Tier)
- https://packages.rhaalovely.net/ (Updates zu Mozilla Software)
- https://obsd.compudus.de/ (stable Updates zu Mozilla-Software und webkitgtk4 vom Autor dieser Zeilen)
Bei Nutzung dieser Repos muss der entsprechende Signify Key runter geladen und nach /etc/signify
kopiert werden.
Änderungen:
- 04.07.2019: Anmerkungen zum Abstellen der Dienste hinzugefügt (Danke an @dah)
- 04.07.2019: Anmerkungen zu Hypterthreading ergänzt
- 05.07.2019 Link zum Port von msmtp geändert. Danke an @solene für ihre neue OpenBSD Ports Webseite https://ports.perso.pw/
- 14.07.2019: Anmerkung zum Tastaturlayout, Danke an @reyk
- 15.08.2019: Änderungen zu den Updates, da OpenBSD nun auch -STABLE updates binärer Pakete bereit stellt