ChatGPT write a poem about OpenBSD :-)

ChatGPT:

In a world of code and bytes,
Where hackers lurk in endless nights,
There shines a system, strong and bright,
A fortress of security, with OpenBSD in sight.

Like a lighthouse on a stormy shore,
It guards the network from cyber war,
With firewalls, cryptography, and more,
It stands tall, unyielding, forevermore.

In its heart, a philosophy,
Of code that’s clean and free,
No backdoors, no secret keys,
Just trust and transparency.

From humble beginnings, it arose,
A gift to the world, from the chosen few,
A beacon of hope, for those who oppose,
The tyranny of those who seek to control.

So let us raise a toast, to OpenBSD,
A shining example of what can be,
When we dare to dream, and we dare to be

OpenBSD auf einem MacBook Pro 12.1 (2015) Teil 2

FVWM / Virtual Window Manager und Konfiguration des Basis-Systems

Sobald die Installation abgeschlossen ist und ein „Reboot“ erfolgte, erreicht man den Anmeldebildschirm. Um die Einstellungen/Konfiguration vornehmen zu können, kann man sich gleich als „root“ anmelden. Später arbeitet man normalerweise nur mit seinem „user“ und wechselt über „su“ zu „root“. Ebenso kann man „doas“ einrichten um als „user“ Tasks mit „Root“-Berechtigungen ausführen zu können.

As soon as the installation is complete and a „reboot“ has taken place, you will reach the login screen. To be able to make the settings/configuration, you can log in as „root“ straight away. Later you normally only work with your „user“ and switch to „root“ via „su“. You can also set up „doas“ to be able to execute tasks with „root“ authorizations as „user“.

Nach der Anmeldung wird der Window Manager FVWM gestartet.
Für die ersten Konfigurationen kann dieser noch verwendet werden, später erfolgt der Wechsel auf CWM.

Die Fenster und Anzeigen auf einem MacBook sind jedoch kaum zu lesen (HiDPI), daher fahren wir mit dem Mauszeiger auf das erste Fenster (XTerm) und halten die „STRG“-Taste und rechte Maustaste gedrückt. Es erscheint das Menü „VT Fonts“. Hier kann man die Schriftgröße anpassen.
„Huge“ oder „Enormous“ sollten passen.

Da WLAN noch nicht eingerichtet ist, sollte die Verbindung per Kabel noch bestehen (siehe Teil 1).

Zuerst prüfe ich auf evtl. vorhandene Updates.
Danach schau ich mir noch die Hinweise in „afterboot“ an.

„afterboot – things to check after the first complete boot“

After logging in, the window manager FVWM is started.
This can still be used for the first configurations, but later you will have to switch to CWM.
However, the windows and displays on a MacBook are difficult to read (HiDPI), so we move the mouse pointer to the first window (XTerm) and hold down the „CTRL“ key and right mouse button. The „VT Fonts“ menu appears. Here you can adjust the font size.
„Huge“ or „Enormous“ should be suitable.
As WLAN has not yet been set up, the cable connection should still exist (see part 1).

First I check for any available updates.
Then I look at the notes in „afterboot“.

# pkg_add -u
# syspatch
# man afterboot

Um schnell und einfach Konfigurationsdateien bearbeitetn zu können, installiere ich zuerst den „Nano“-Texteditor.
Oder den bevorzugten Texteditor.
„VI“ steht ebenso zur Verfügung. Oder man installiert „MC“, den MidnightCommander“.

To be able to edit configuration files quickly and easily, I first install the „Nano“ text editor.
Or the preferred text editor.
„VI“ is also available. Or you can install „MC“, the MidnightCommander.

# pkg_add nano

WLAN einrichten

Starte „Nano“ mit der Eingabe von:

Start „Nano“ by entering :

# nano /etc/hostname.bwfm0

„bwfm0“ ist das WLAN-Interface unter Apple. Auf anderen Plattformen ist es „iwn0“.

„bwfm0“ is the WLAN interface under Apple. On other platforms it is „iwn0“.

join "SSID_deines_WLAN" wpakey "WLAN-Schlüssel"
# Es können weitere eingetragen werden, sortiert nach Prio:
# join "SSID_deines_WLAN" wpakey "WLAN-Schlüssel"
# join "Offener_Hotspot"
dhcp
inet6 autoconf

Speichere die Datei und beende Nano.

Save the file and exit Nano.

CTRL + o (speichern)
CTRL + x (Nano beenden)

Um die WLAN-Verbindung testen zu können, folgendes eingeben:

To test the WLAN connection, enter the following:

# ifconfig bge0 down# ifconfig bwfm0 down# pkill dhclient# sh /etc/netstart

Nachdem „pkill“ ausgeführt wurde, kann auch das Netzwerkkabel entfernt werden.
Sobald „netstart“ erfolgreich ausgeführt wurde, steht eine WLAN-Verbindung zur Verfügung.

After „pkill“ has been executed, the network cable can also be removed.
As soon as „netstart“ has been successfully executed, a WLAN connection is available

Trackpad und Keyboard-Backlight

Um dauerhaft das Tapping zu aktivieren legt man (als root) unter „/etc/“ eine Datei mit dem Namen „wsconsctl.conf“ und dem folgenden Inhalt an.

To permanently activate tapping, create a file (as root) under „/etc/“ with the name „wsconsctl.conf“ and the following content.

mouse1.tp.tapping=1
mouse1.tp.scaling=0.15
keyboard.backlight=25

Die Funktionstasten für „keyboard.backlight“ funktionieren bei mir nicht, daher nehme ich als Standard erstmal 25.

Eine Änderung ist jederzeit möglich, was jedoch nur als „root“ funktioniert mit:

The function keys for „keyboard.backlight“ do not work for me, so I use 25 as the default for now.
A change is possible at any time, but this only works as „root“ with :

wsconsctl keyboard1.backlight=25

Power-Management

Um das Power-Management zu starten, kann folgendes ausgeführt werden:

The following can be carried out to start power management:

rcctl enable apmd
rcctl set apmd flags -A
rcctl start apmd

Erklärungen zu den Einstellungen findet man auf der Seite:
https://man.openbsd.org/apmd

Weitere Möglichkeit, welche ich bevorzuge, ist die Verwendung von
obsdfreqd von Solène Rapenne
Informationen hierzu:
https://dataswamp.org/~solene/2022-04-21-openbsd-71-fan-noise-temperature.html

Another option, which I prefer, is the use of
– obsdfreqd from Solène Rapenne

Installation und Einrichtung:

Installation and setup:

pkg_add obsdfreqd
rcctl ls on | grep ^apmd && rcctl set apmd flags -L && rcctl restart apmd
rcctl enable obsdfreqd
rcctl start obsdfreqd

Softupdates und die Option noatime

Auf einigen Seiten wird die Aktivierung empfohlen um die Festplattenleistung zu verbessern.
Das ganz funktionierte auch noch bis zur Version 7.4.
Wurde jedoch danach deaktiviert, siehe auch:
https://en.wikipedia.org/wiki/Soft_updates
„OpenBSD supported soft updates for the FFS file system until the release 7.4 (2023), at which time it was disabled.“
https://undeadly.org/cgi?action=article;sid=20230706044554
„Soft updates (softdep) disabled for future VFS work“.

Some sites recommend activation to improve hard disk performance.
This also worked up to version 7.4.
However, it was deactivated afterwards, see also:
https://en.wikipedia.org/wiki/Soft_updates
„OpenBSD supported soft updates for the FFS file system until the release 7.4 (2023), at which time it was disabled.“
https://undeadly.org/cgi?action=article;sid=20230706044554
„Soft updates (softdep) disabled for future VFS work“

Weiter geht es in Teil 3 / CWM

Installation von OpenBSD auf einem MacBook Pro 12.1 (2015) Teil 1

Um bei der folgenden Installation manches zu vereinfachen (Einstellung Zeitzone, Firmwareupdate f. WLAN), verbinde ich den Rechner per Netzwerkkabel mit meinem Router.

To simplify some things during the following installation (time zone setting, firmware update for WLAN), I connect the computer to my router using a network cable.

Rechnerstart

Rechner ausschalten und USB-Stick mit Image einstecken.
Danach den Rechner einschalten und die „Alt“-Taste gedrückt halten.

Es werden die Boot-Laufwerke (Festplatte und USB-Stick) angezeigt.
Nach der Auswahl des USB-Sticks und Bestätigung mit Enter, wird OpenBSD gebootet.

Starting the computer
Switch off the computer and insert the USB stick with the image.
Then switch on the computer and hold down the „Alt“ key.
The boot drives (hard disk and USB stick) are displayed.
After selecting the USB stick and confirming with Enter, OpenBSD is booted.

Installation

Am Ende des Startvorgangs erfolgt auch schon die Abfrage, wie es weitergehen soll

At the end of the start process, you will be asked what to do next

Welcome to the OpenBSD/amd64 7.5 installation program.
(I)nstall, (U)pgrade, (A)utoinstall or (S)heLL? i

„i“ für Install auswählen und mit Enter bestätigen

Danach wählt man das Layout der Tastatur.

Select „i“ for Install and confirm with Enter
Then select the layout of the keyboard

Choose your keyboard layout ('?' or 'L' for List) [default] de

Über „L“ kann man sich eine Liste anzeigen lassen.
In meinem Fall wähle ich „de“ 
Vorsicht, falls man später ein Passwort mit Sonderzeichen verwenden will. Diese Einstellung deckt nicht die Mac-Tastatur ab.
Es wird hier das Layout/Modell einer PC-Tastatur verwendet. Z.B. ist das „@“-Zeichen über „ALT/Q“ zu erreichen.
Ebenso greift diese Einstellung nicht, wenn die Festplatte verschlüsselt ist. Bei Bootvorgang ist das US-Layout vorgegeben.

You can display a list via „L“.
In my case, I choose „de“
Be careful if you want to use a password with special characters later. This setting does not cover the Mac keyboard.
The layout/model of a PC keyboard is used here. For example, the „@“ character can be reached via „ALT/Q“.
This setting also does not apply if the hard disk is encrypted. The US layout is preset during the boot process.

The host name is assigned in the next step:

Im nächsten Schritt wird der Hostname vergeben:

System hostname? (short form, e,g, 'foo') FUCKUP

Danach geht es zur Auswahl der Netzwerkverbindung.

Then select the network connection.

Available network interfaces are: bge0 bwfm0 vlan0.
Network interface to configure? (name, LLaddr, '?', or 'done') [bwfm0] bge0

Das WLAN-Interface (bwfm0) funkntioniert hier noch nicht. Die nötigen Treiber fehlen noch und werden erst später installiert. Daher wähle ich „bge0“ (Kabelverbindung)

Bei den folgenden Abfragen zu IPv4 und IPv6 übernehme ich die Vorschläge.

The WLAN interface (bwfm0) is not yet working here. The necessary drivers are still missing and will be installed later. I therefore select „bge0“ (cable connection)

I accept the suggestions for the following IPv4 and IPv6 queries

IPv4 address for bge0? (or 'autoconf' or 'none') [autoconf]
IPv6 address for bge0? (or 'autoconf' or 'none') [none]

Erneut kommt die Abfrage nach weiteren „Interfaces“.

The query for further „interfaces“ appears again.

Available network interfaces are: bge0 bwfm0 vlan0.
Network interface to configure? (name, LLaddr, '?', or 'done') [done]

Auch hier übernehme ich die Vorgabe und richte kein weiteres Interface ein. Wie oben beschrieben, für WLAN fehlen noch die Firmwaretreiber.

Im Anschluß erfolgt die Verbindung zu meinem Router. Wenn alles klappt, sollte es z.B. so aussehen.

Here, too, I accept the default and do not set up any additional interface. As described above, the firmware drivers for WLAN are still missing.
The connection to my router is then established. If everything works, it should look like this, for example.

Using DNS domainname fritz.box
Using DNS nameservers at 192.168.178.1

Danach wird das „Root“-Passwort angelegt und durch erneute Eingabe bestätigt.
Betreffend „Sonderzeichen“ und Tastatur, verwende ich bei der Installation erstmal ein Passwort aus Buchstaben und Zahlen. Später wenn alles läuft, ändere ich das natürlich.

The „root“ password is then created and confirmed by entering it again.
As far as „special characters“ and the keyboard are concerned, I use a password consisting of letters and numbers during installation. Later, when everything is up and running, I will of course change it.

Password for root account? (will not echo)
Password for root account? (again)

Möchte man später auch per SSH auf den Rechner zugreifen, wählt man bei der folgenden Abfrage die Vorgabe „yes“.

If you want to access the computer later via SSH, select „yes“ in the following query.

Start sshd(8) by default? [yes]

Da ich OpenBSD auf meinem MacBook installiere, möchte ich nach der Installation auch einen Windows-Manager (CWM, XFCE ..) verwenden. Daher ändere ich die folgende Vorgabe auf „yes“.

Since I am installing OpenBSD on my MacBook, I would also like to use a Windows manager (CWM, XFCE ..) after the installation. Therefore I change the following default to „yes“.

Do you want the X Window System to be started by xenodm(1)? [no] yes

Nun kann man auch gleich den ersten User anlegen. Als Beispiel „thom“

Now you can also create the first user. For example „thom“

Setup a user? (enter a Lower-case Loginname, or 'no') [no] thom
Full nane for user magnus? [user1] Thomas xxx

Und noch ein Passwort für den Account vergeben.

And assign a password for the account.

Password for user thom? (will not echo)
Password for user thom? (again)

Es erscheint noch eine Warnung zur Verwendung von „PubKeys“ und ob der „Root“-User sich per SSH einloggen darf. Ich übernehme die Vorgabe, da ich eine „Root“-Anmeldung per SSH nicht erlauben möchte.

A warning appears about the use of „PubKeys“ and whether the „root“ user is allowed to log in via SSH. I accept the default, as I do not want to allow a „root“ login via SSH.

WARNING: root is targeted by password guessing attacks, pubkeys are safer.
Allow root ssh login? (yes, no, prohibit-password) [no]

Nun erfolgt die Abfrage der Zeitzone. Da ich meinen Rechner jedoch bereits per Netzwerkkabel verbunden habe, wird mir gleich die korrekte Zeitzone angezeigt/eingestellt.

The time zone is now queried. However, as I have already connected my computer via network cable, the correct time zone is immediately displayed/set.

What timezone are you in? ('?' for list) [Europe/Berlin]

Weiter geht es zur Auswahl der „Root“-Disk / Startlaufwerk. Vorgabe übernehme ich (sd0).

The next step is to select the „root“ disk / boot drive. I accept the default (sd0).

Available disks are: sd0 sd1 sd2
Which disk is the root disk? ("?' for details) [sd0]

Bei der folgenden Frage wähle ich „p“ um die Verschlüsselung zu aktivieren.

For the following question, I select „p“ to activate encryption.

Encrypt the root disk with a (p)assphrase or (k)eydisk? [no] p

Anzeige/Einrichtung der Verschlüsselung


Configuring the crypto chunk sd0...

Disk: sd0       geometry: 30515/255/63 [490234752 Sectors]
Offset: 0       Signature: 0xAA55
            Starting         Ending         LBA Info:
 #: id       C   H   S -      C   H   S [       start:      size]
----------------------------------------------------------------------------
 0: EE       0   0   2 -     32 194  34 [           1:    526335] EFI GPT
*1: 83      32 194  35 -    163  77  42 [      526336:   2097152] Linux files*
 2: DA     163  77  43 -  30515 132  17 [     2623488: 487608320] <Unknown ID>
 3: 00       0   0   0 -      0   0   0 [           0:         0] Unused
Use (W)hole disk MBR, whole disk (G)PT or (E)dit? [gpt]

Auch hier übernehme ich die Vorgabe. „gpt“.
Es erfolgt die Abfrage nach einem Passwort für die verschlüsselte Festplatte. (VORSICHT betreffend der Tastatur-Belegung). Während der Installation wähle ich ein einfaches Passwort, ohne Sonderzeichen. Nach der Installation kann es angepasst werden.

Here, too, I adopt the default. „gpt“.
You will be asked for a password for the encrypted hard disk. (CAUTION regarding the keyboard assignment). During the installation, I choose a simple password without special characters. It can be customized after installation.

New passphrase:
Re-type passphrase:

Danach wird sd3 verschlüsselt angelegt und muss eingerichtet werden.
Komplette Disk / GPT. Also übernehme ich den Vorschlag.

Then sd3 is created in encrypted form and must be set up.
Complete disk / GPT. So I adopt the suggestion.

sd3 at scsibus3 targ 1 Lun 0: ‹OPENBSD, SR CRYPTO, 006> 
sd3: 239112MB, 512 bytes/sector, 489701647 sectors

Configuring the root disk sd3...

No valid MBR or GPT.
Use (W)hole disk MBR, whole disk (G)PT or (E)dit? [gpt]

Es erfolgt die Einrichtung und Partitionierung.
Man könnte hier noch Änderungen vornehmen. Ich übernehme hier jedoch mit „a“ das Layout welches vorgeschlagen wird.

Setup and partitioning are carried out.
You could still make changes here. However, I use „a“ here to adopt the layout that is suggested.


Setting OpenBSD GPT partition to whole sd3...done.
The auto-allocated Layout for 5d3 is:
#                size           offset  fstype   [fsize bsize cpg]
  a:          1024.0M           532544  4.2BSD     2048 16384   1 # /
  b:          8333.0M          2629696    swap
  c:        239112.1M                0  unused
  d:          4096.0M         19695712  4.2BSD     2048 16384   1 # /tmp
  e:         20250.0M         28084288  4.2BSD     2048 16384   1 # /var
  f:         24287.0M         69556288  4.2BSD     2048 16384   1 # /usr
  g:          1024,0М        119296064  4.2BSD     2048 16384   1 # /usr/X11R6
  h:         20480.0M        121393216  4.2BSD     2048 16384   1 # /usr/local
  i:           260.0M               64   MSDOS
  j:          3072.0M        163336256  4.2BSD     2048 16384   1 # /usr/src
  k:          6144.0M        169627712  4.2BSD     2048 16384   1 # /usr/obj
  l:        150142.1M        182210624  4.2BSD     2048 16384   1 # /home
Use (A)uto Layout, (E)dit auto Layout, or create ([)ustom Layout? [a]

Sobald man obige Auswahl getroffen hat, erfolgt die Einrichtung.
Danach hat man die Möglichkeit eine weitere Festplatte einzurichten oder die Vorgabe „done“ zu übernehmen.

As soon as you have made the above selection, the setup takes place.
You then have the option of setting up another hard disk or accepting the default „done“.

Available disks are: sd1 sd2.
Which disk do you wish to initialize? (or 'done') [done]

Nun erfolgt das mounten der obigen Verzeichnisse.

Jetzt geht es an die Installation des Grundsystems.

The above directories are now mounted.
Now it’s time to install the basic system.

Let's install the sets!
Location of sets? (disk http nfs or 'done') [http] disk

Da wir einen USB-Stick verwenden, geben wir „disk“ ein.

Der USB-Stick muß eingebunden werden, daher die Vorgabe „no“ bestätigen.

As we are using a USB stick, we enter „disk“.
The USB stick must be mounted, so confirm the default „no“.

Is the disk partition already mounted? [no]

Die erste Festplatte im System ist „sd0“, der USB-Stick wird über „sd1“ angesprochen.
Wir wählen bei der folgenden Frage daher die Vorgabe „sd1“.

The first hard disk in the system is „sd0“, the USB stick is addressed via „sd1“.
We therefore select the default „sd1“ for the following question.

Available disks are: sd0 sd1 sd2 sd3.
Which disk contains the install media? (or 'done') [sd1]

Es wir nun die Belegung des Laufwerks angezeigt und wir übernehmen die Vorgabe „a“.

The assignment of the drive is now displayed and we accept the default „a“.


a:            1358848             1024    4.2BSD  2048 16384 16142
i:                960               64    MSDOS  
Available sd1 partitions are: a i.
Which sd1 partition has the install sets? (or 'done') [a]

Danach erfolgt die Abfrage nach dem Pfadnamen, welchen wir auch übernehmen.

You are then asked for the path name, which we also accept.

Pathname to the sets? (or 'done') [7.5/amd64]

Wenn alles korrekt ist, werden die vorhandenen Sets angezeigt und können übernommen oder geändert werden. Ich übernehme hier alles und bestätige die Vorgabe.
Da keine Signatur verifiziert werden kann, gebe ich „yes“ ein, siehe unten.

If everything is correct, the existing sets are displayed and can be accepted or changed. I accept everything here and confirm the default.
As no signature can be verified, I enter „yes“, see below.


Select sets by entering a set name, a file name pattern or 'all'. De-select
sets by prepending a '-', e.g.: '-game*'. Selected sets are labelled '[X]'.
    [X] bsd          [X] bsd.rd       [X] comp75.tgz   [X] game?5.tgz   [X] xshare75.tgz
    [X] bsd.mp.      [X] base75.tgz.  [X] man75.tgz.   [X] xbase75.tgz. [X] xfont75.tgz
Set name(s)? (or 'abort' or 'done') [done]
Directory does not contain SHA256.sig. Continue without verification? [no] yes

Im Anschluss erfolgt die Installation alle gewählten Sets.

Nach erfolgter Installation bestätigen wir die erneute Frage nach den Sets mit „done“.

All selected sets are then installed.
After successful installation, we confirm the renewed question about the sets with „done“.

Location of sets? (disk http nfs or 'done') [done]

Damit wäre die Installation abgeschlossen.
Siehe unten, es erfolgt noch ein „fw_update“. Hiermit wird die aktuelle Firmware abgerufen und installiert (WLAN usw.).
Am Ende bestätigen führen wir den „Reboot“ durch.

This completes the installation.
See below, there is still a „fw_update“. This retrieves and installs the current firmware (WLAN etc.).
At the end we confirm the „Reboot“.

Saving configuration files… done.
Making all device nodes… done.
Multiprocessor machine; using bsd.mp instead of bsd.
fw_update: add bwfm, intel, inteldrm; update none
Relinking to create unique kernel… done.

CONGRATULATIONS! Your OpenBSD install has been successfully completed!

When you login to your new system the first time, please read your mail
using the 'mail' command.

Exit to (S)hell, (H)alt or (R)eboot? [reboot]

Sollte das MacBook beim Neustart nicht starten und eine fehlendes Bootmedium anzeigen, erneut starten und die „ALT“-Taste gedrückt halten. Dann wird die Festplatte angezeigt und man kann OpenBSD starten.
Konfiguration und Einstellungen nach der Installation folgen im nächsten Teil.

If the MacBook does not start when restarting and displays a missing boot medium, restart and hold down the „ALT“ key. The hard disk will then be displayed and you can start OpenBSD.
Configuration and settings after installation follow in the next part.

Zu Teil 2