tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1569Shell 203Rust 109Markdown 993728 Sutichaykuna

harkaq: el kernel de hammer ya trae Landlock — ABI 7 verificado BOOTEANDO (Fase 1 precond. 1)

recipes/linux.toml: -e SECURITY -e SECURITY_LANDLOCK -e AUDIT. Era lo único que
faltaba para que harkaq corra DENTRO de hammer (VM/metal) y no sólo en el laptop
y la granja. El CONFIG_LSM del defconfig ya lista `landlock` de primero ⇒ bastó
encenderlo, sin tocar la cadena de LSMs.

AUDIT se fija explícito aunque ya viniera =y por defconfig: sin él el kernel no
emite un solo registro y harkaq certificaría TODO como hermético en silencio
(§3.4). Es la precondición de la que cuelga la evidencia; no se deja al azar de
un default.

VERIFICADO BOOTEANDO, no leyendo el .config — que dice lo que se compiló, no lo
que el kernel hace al arrancar. Misma disciplina de §3.1 (el ABI se consulta por
syscall, jamás por versión) llevada a la verificación: el único que sabe si
Landlock está vivo es el kernel vivo. scripts/harkaq/vm-abi-probe.c es un /init
de initramfs mínimo que pregunta y apaga:

    ===== HARKAQ EN EL KERNEL DE HAMMER =====
    LANDLOCK ABI = 7
    audit de denegaciones (>=7): SI
    =========================================

Kernel nuevo: b3:f2583d61… (el hash cambia, como se esperaba; el viejo
34755ff2… decía "# CONFIG_SECURITY_LANDLOCK is not set").

Con esto las 4 precondiciones de la Fase 1 están cerradas y harkaq corre en las
tres máquinas del proyecto: laptop (ABI 10), granja (ABI 7 tras el bump de la
golden) y el kernel propio de hammer (ABI 7).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

ee51e5d596d317d776cf70394062f2ea5ecb7bef · ruwaq sergio · (3 killa ñawpaq) · tayta caa23f9ab · kay commitpi sach'ata qhaway

Semántico sayk'uy · 1

scripts/harkaq/vm-abi-probe.c

  • musuq def main pub

3 qillqakuna · +49 −1

diff --git a/docs/16-harkaq-jaula.md b/docs/16-harkaq-jaula.md
index d47e3689..013eb065 100644
--- a/docs/16-harkaq-jaula.md
+++ b/docs/16-harkaq-jaula.md
@@ -689,7 +689,13 @@ Landlock ausente-pero-a-un-flag en el kernel de hammer, cero FODs y fetcher ya c
 
 **Fase 1 — El hito demostrable (una tarde).**
 Precondiciones, todas ya medidas en §3 y ninguna especulativa:
-1. `scripts/config -e SECURITY_LANDLOCK` en `recipes/linux.toml` (+ rebuild, ~35min, cambia el hash).
+1. ✅ **`-e SECURITY -e SECURITY_LANDLOCK -e AUDIT` en `recipes/linux.toml`** (2026-07-15). Es lo
+   único que faltaba para que harkaq corra **dentro** de hammer (VM/metal) y no sólo en el laptop
+   y la granja. `CONFIG_LSM` del defconfig ya lista `landlock` de primero ⇒ bastó encenderlo, sin
+   tocar la cadena de LSMs. 6.16.12 da **ABI 7** = el audit de denegaciones, que es de lo que
+   cuelga toda la evidencia. `AUDIT` ya venía `=y`; se fija explícito porque **sin él no se emite
+   un solo registro y harkaq certificaría todo como hermético en silencio** (§3.4). Cuesta un
+   rebuild (~35min) y cambia el hash del kernel.
 2. `audit=1` horneado en el cmdline del kernel metal — o `AUDIT_SET` desde hammerd (§3.4, Q1c).
 3. `LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON` en el `restrict_self` (§3.4). **Sin esto no hay nada.**
 4. El canario de D9 antepuesto al comando del builder.
diff --git a/recipes/linux.toml b/recipes/linux.toml
index 48118e10..71617c8b 100644
--- a/recipes/linux.toml
+++ b/recipes/linux.toml
@@ -38,6 +38,12 @@
 #     (status g++/zlib-dev; SEGUROS para el of_tree: hammerd no usa openssl, arje-zero va preseeded).
 #     deps.build=[flex,bison,m4] son hammer-built; libelf/openssl quedan de-Alpinizables luego con
 #     recipes/{elfutils,openssl}.toml.
+#   - SECURITY_LANDLOCK + AUDIT: para que harkaq (SDD 16) corra DENTRO de hammer y no sólo en el
+#     laptop/la granja. El defconfig deja SECURITY_LANDLOCK off, pero el CONFIG_LSM ya lista
+#     `landlock` de primero ⇒ basta encenderlo, no hace falta tocar la cadena de LSMs. 6.16.12 da
+#     Landlock ABI 7 = el audit de denegaciones, que es de lo que cuelga toda la evidencia (§3.4).
+#     AUDIT ya venía =y por defconfig; se fija explícito porque sin él no se emite un solo
+#     registro y harkaq certificaría TODO como hermético en silencio.
 #   - FANOTIFY + OVERLAY_FS_{REDIRECT_DIR,INDEX,XINO_AUTO,METACOPY}: el defconfig los deja off; el
 #     kernel que booteaba (Arch/Artix) los tiene =y. FANOTIFY: hammerd lo usa para el watcher del
 #     diario (sin él: WARN ENOSYS, no fatal). Los overlay sub-features: hipótesis para el bwrap del
@@ -74,6 +80,7 @@ scripts/config -d MODULE_SIG -d MODULE_SIG_ALL -d DEBUG_INFO_BTF -d DEBUG_INFO \
   -e BLK_DEV_INITRD -e DEVTMPFS -e DEVTMPFS_MOUNT -e TMPFS \
   -e E1000 -e OVERLAY_FS -e USER_NS -e NAMESPACES \
   -e FANOTIFY -e FANOTIFY_ACCESS_PERMISSIONS \
+  -e SECURITY -e SECURITY_LANDLOCK -e AUDIT \
   -e OVERLAY_FS_REDIRECT_DIR -e OVERLAY_FS_INDEX -e OVERLAY_FS_XINO_AUTO -e OVERLAY_FS_METACOPY \
   -e VIRTIO -e VIRTIO_PCI -e VIRTIO_BLK -e VIRTIO_NET -e EXT4_FS \
   -d DRM -d AGP -d FB -d BACKLIGHT_CLASS_DEVICE -d SOUND -d SND \
diff --git a/scripts/harkaq/vm-abi-probe.c b/scripts/harkaq/vm-abi-probe.c
new file mode 100644
index 00000000..8e863d8b
--- /dev/null
+++ b/scripts/harkaq/vm-abi-probe.c
@@ -0,0 +1,35 @@
+// vm-abi-probe — /init de un initramfs mínimo: le pregunta al KERNEL DE HAMMER por el ABI de
+// Landlock y apaga. (SDD 16 §3.2 / Fase 1 precondición 1.)
+//
+// Por qué existe: probar el `.config` NO basta — dice lo que se compiló, no lo que el kernel hace
+// al arrancar. Es la misma disciplina de §3.1 (el ABI se consulta por syscall, jamás por versión)
+// llevada a la verificación: el único que sabe si Landlock está vivo es el kernel vivo.
+//
+//   gcc -O1 -static -o init vm-abi-probe.c
+//   printf 'init\n' | cpio -o -H newc | gzip > initramfs.cpio.gz
+//   qemu-system-x86_64 -kernel <bzImage> -initrd initramfs.cpio.gz \
+//       -append "console=ttyS0 rdinit=/init quiet" -nographic -m 512 -no-reboot
+//
+// Resultado con el kernel 6.16.12 de hammer + SECURITY_LANDLOCK (2026-07-15): ABI = 7 ⇒ audit de
+// denegaciones ⇒ harkaq corre DENTRO de hammer, no sólo en el laptop y la granja.
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/syscall.h>
+#include <sys/reboot.h>
+#include <errno.h>
+int main(void) {
+    long abi = syscall(444, NULL, 0, 1);  // landlock_create_ruleset(NULL,0,VERSION)
+    printf("\n\n===== HARKAQ EN EL KERNEL DE HAMMER =====\n");
+    if (abi > 0) {
+        printf("LANDLOCK ABI = %ld\n", abi);
+        printf("audit de denegaciones (>=7): %s\n", abi >= 7 ? "SI" : "NO");
+    } else {
+        printf("LANDLOCK NO DISPONIBLE (errno=%d)\n", errno);
+    }
+    printf("=========================================\n\n");
+    fflush(stdout);
+    sleep(1);
+    reboot(RB_POWER_OFF);
+    return 0;
+}