22 Commits
Author SHA1 Message Date
ryan4yin | 二花 21d64e7add security: hardening pass 1 (AppArmor, firewall default, loopback metrics, k3s perms, SSH X11) (#266)
* security: make firewall secure-by-default, disable explicitly on servers

Flip the base firewall default to ON so new hosts are protected by default. Servers keep the firewall off (trusted internal LAN, WAN protected at the router) via explicit overrides in modules/nixos/server/{server,server-aarch64}.nix. Behavior-preserving for all 18 current hosts; adds a security-firewall eval test guarding the per-host state.

* test: fix security-firewall eval test to scalar per-host values

* security: enable AppArmor (complain) on all Linux hosts

* security: bind aquamarine metrics exporters to loopback

* security: restrict k3s kubeconfig file mode to 600

* security: disable SSH X11 forwarding on servers, keep on desktops

* security: add conservative systemd hardening to aquamarine services

* docs(apparmor): correct FHS-alias comment (nixpkgs has no broad FHS layer)

nixpkgs only creates /run/current-system, /usr/bin/env and /bin/sh; it does not
provide a broad FHS->store alias tree, so FHS-oriented abstractions are incomplete
on NixOS. They are safe only because the profiles run in complain mode.

* fix(aquamarine): scrape same-host exporters over loopback

The v2ray/postgres/sftpgo exporters were bound to 127.0.0.1 but VictoriaMetrics
scraped them via the host's routable IP, so those scrapes refused connections.
Point the three same-host scrape targets at 127.0.0.1 (VM runs on the same host).
node-exporter keeps the host IP since it binds 0.0.0.0.

* Revert "security: add conservative systemd hardening to aquamarine services"

This reverts commit f9cf99dadb.
2026-08-27 00:13:01 +08:00
Ryan Yin 69f77fecca feat: new host - idols-akane, hardens VFAT /boot mounts (#245)
* feat: new host - idols-akane

* fix: missing efi files

* fix: efi partition - permission issue
2026-03-07 23:54:13 +08:00
Ryan Yin 13bb77108c feat: format via 'ls **/*.nix | each { |it| nixfmt $it.name }' 2025-07-30 12:17:24 +08:00
Ryan Yin 4ec26c5e5f refactor: fonts (#194) 2025-06-22 20:13:50 +08:00
Ryan Yin a02097f7d7 chore(modules/nixos): adjsut boot.loader.timeout 2024-08-26 20:56:45 +08:00
Ryan Yin f1a5d419fb fix: hdd storage - do not unlock on boot, increase boot.loader.timeout 2024-08-17 03:06:37 +08:00
Ryan Yin 7a1788520b fix: typo 2024-07-30 13:50:32 +08:00
Ryan Yin e86d7a1020 fix: aqua - networking 2024-07-30 13:48:44 +08:00
Ryan Yin 6670c5bd7d fix: btrbk - kubevirt 2024-07-30 12:41:08 +08:00
Ryan Yin 0620f199b2 feat: update btrbk configs 2024-07-30 11:41:38 +08:00
Ryan Yin 34e7e9b2cd feat(modules/nixos/server): add btrbk for aarch64 hosts 2024-04-01 18:37:24 +08:00
Ryan Yin 33f690388d fix: The option `services.cloud-init.enable' has conflicting definition values 2024-04-01 00:46:36 +08:00
Ryan Yin c628eaa6c8 fix: run other k3s clusters as kubevirt quests, use the interface provided by kubevirt 2024-04-01 00:39:52 +08:00
Ryan Yin 7486e75016 fix:(modules/nixos/server): The option `boot.loader.timeout' has conflicting definition values 2024-03-31 23:38:42 +08:00
Ryan Yin 69fafe0c7c feat: add configs for kubevirt-lab-1 2024-03-29 01:22:47 +08:00
Ryan Yin 2319300f48 feat: add a test k3s cluster running on kubevirt 2024-03-23 02:09:21 +08:00
Ryan Yin 4d0741c841 feat: install nixos on orange pi 5 plus with edk2-rk3588(uefi) 2024-03-07 21:59:23 +08:00
Ryan Yin 5a56d4808c fix: enable sudo password - proxmox 2024-03-07 13:00:47 +08:00
Ryan Yin c7c771804a refactor: packages & fhs 2024-03-04 01:05:55 +08:00
Ryan Yin f933146a42 fix: suzu 2024-03-04 00:48:01 +08:00
Ryan Yin 0645a593e6 feat: update openssh keys 2024-01-26 14:46:19 +08:00
Ryan Yin ecc335b07e feat: security - gnupg & openssh's KDF 2024-01-26 13:47:01 +08:00