home / workstations

Workstations

The machines I work on, and why each one runs what it runs.

The machines

Void Linux · NixOS · FreeBSD · Windows 11

Main computer

multi-boot · 3 drives
Role
Daily driver: research, development and general use
OS
Void Linux (glibc), NixOS, Windows 11
Storage
3 hard drives
Posture
General-purpose, multi-boot

Three operating systems, each for a different job. Void Linux on glibc is the broadly compatible daily environment, with a small, fast base and runit instead of systemd. NixOS is where I work declaratively: the whole system is described in configuration, so it can be rebuilt and rolled back, which is the same property my reproducible-builds research cares about. Windows 11 covers software and testing that needs it.

Storage computer

FreeBSD · air-gapped
Role
Data storage and archives
OS
FreeBSD, hardened
Network
Air-gapped, no network connection
Posture
Offline, hardened

Storage is kept on a machine that is never on a network. Data crosses the gap only through deliberate, controlled transfer, which makes the exposure of the data a question about that one path instead of about every service on the machine. FreeBSD's native ZFS support makes it a natural fit for storage, and a small, conservative base suits a machine that should do nothing except hold data.

Laptop

Void Linux musl · hardened
Role
Portable workstation
OS
Void Linux (musl), hardened
Posture
Hardened, mobile

A laptop leaves the building, so it gets the strictest defaults. Void with musl keeps the libc small and simple to audit, which reduces the code that sits under every program. The trade-off is that some glibc-only binaries do not run, and I accept that for the smaller attack surface.

Server setup

FreeBSD · ultra-hardened
Role
Server
OS
FreeBSD, ultra-hardened
Posture
Minimal exposure, hardened

The server is built around exposing as little as possible. FreeBSD provides jails for isolating services from each other and pf for firewalling, both of which match an isolation-first approach: assume a service can be compromised, and limit what that gets an attacker.

Configuration

Exact hardening settings, hardware details and network layout are deliberately not published here. A public list of how a machine is defended mostly helps the people trying to get in.