Come NON abilitare SELinux

Ho da anni un server Linux su Contabo, ci ospito vari sitarelli tra cui il mio e quello di 101 Anagrammi Zen. Recentemente ho approfittato della promozione “no setup fee” per aggiornarlo: era fermo a CentOS 8, sistema operativo ormai defunto, sebbene ancora funzionante.

Cosรฌ ordino un server nuovo fiammante; la scelta del sistema operativo ricade su AlmaLinux, ottima distro RPM-based che gode della compatibilitร  binaria con RHEL.

Passo diverse ore a trasferire contenuti e impostazioni dal vecchio server, e a configurare software (MariaDB, MongoDB, Nginx, PHP-fpm, eccetera). Ultimo passaggio: abilitare SELinux.

Cosรฌ edito /etc/selinux/config modificando la direttiva SELINUX da disabled a enforcing, creo il file /.autorelabel per innescare il relabeling del filesystem al successivo boot, e riavvio il server.

Bravo Lore. Boom. Macchina bloccata. Ho dovuto fare il reboot da rescue media per recuperare il server.

Cos’รจ successo? Se si passa direttamente da disabled a enforcing, il sistema al prossimo avvio carica il modulo SELinux del kernel, ma non รจ in grado di accedere al file /.autorelabel, perchรฉ esso stesso ha il labeling errato; il relabeling non avviene, il sistema non puรฒ accedere ai file che gli servono per il boot, e quindi va in stallo.

Come si deve procedere, dunque? Devo dire che la cosa non รจ ben documentata; ci sono arrivato da solo. Si abilita per prima cosa la modalitร  permissive, si crea il file /.autorelabel e si riavvia. In questo modo il sistema carica il modulo SELinux, ma in modo non bloccante; trova il file /.autorelabel e procede al relabeling del file system. A questo punto si puรฒ elevare il livello a enforcing e riavviare di nuovo: il filesystem รจ sistemato, il boot avviene regolarmente.

Si procederร  quindi a impostare le label customizzate e al fine tuning dei vari booleani e altre variabili SELinux, per mettere in sicurezza il layer applicativo.


Commenti

Lascia un commento