Esiste un modo permanente e sicuro (come in integrità) di rendere l'intero sistema Ubuntu di un VPS (server privato virtuale) di sola lettura per tutti gli utenti (incluso l'utente root)?
Esiste un modo permanente e sicuro (come in integrità) di rendere l'intero sistema Ubuntu di un VPS (server privato virtuale) di sola lettura per tutti gli utenti (incluso l'utente root)?
Sì, utilizzando Controllo di accesso obbligatorio . Sarebbe un sacco di lavoro, però.
I sistemi di controllo degli accessi obbligatori consentono di imporre restrizioni sulle azioni, anche su quelle eseguite da root e con la capacità di essere granulari al processo (ad esempio dhcpcd
in esecuzione come root può modificare /etc/resolv.conf, ma vi
eseguito come root non può).
È probabilmente impossibile avere un sistema Ubuntu in esecuzione che sia completamente di sola lettura. Vari processi del sistema operativo si aspettano di essere in grado di scrivere su file (ad es., /bin/login
vuole aggiornare utmp
, btmp
, wtmp
; molte cose vogliono registrarsi). Naturalmente, se riesci a capire tutti questi file, puoi consentire l'accesso necessario, ma farlo è piuttosto complicato.
Il sistema MAC più comunemente conosciuto è SELinux . Per citare Wikipedia,
SELinux can potentially control which activities a system allows each user, process and daemon, with very precise specifications. It is used to confine daemons like database engines or web servers that have clearly defined data access and activity rights. This limits potential harm from a confined daemon that becomes compromised.
Che corrisponde all'obiettivo dichiarato nei commenti:
create an environment which is read-only in case of a buffer overflow (which will be given as a challenge).
Ubuntu utilizza AppArmor invece di SELinux.
I sistemi MAC generalmente richiedono "qualcosa di speciale" per disattivarli, come il riavvio in una modalità speciale, che non è accessibile a un utente malintenzionato remoto. (Ovviamente, se root può semplicemente "spegnerlo" facilmente, non protegge da root.)
Permettimi di ripetermi: fare questo è un sacco di lavoro. Sistemi come SELinux possono essere proibitivamente difficili da configurare correttamente; in generale li troverai a lavorare in profili di protezione limitati e mirati (ad esempio, "non lasciare che il server web diventi roba") e distribuiti in una configurazione controllata e controllata da un fornitore di sistemi operativi (ad esempio, Red Hat lo fa) . Se vuoi usarlo per bloccare tutto , hai un sacco di lavoro da fare.
Per quello che vale, uno dei punti di forza di AppArmor è che è più facile di SELinux, quindi il fatto che tu sia su Ubuntu può mettere le probabilità a tuo favore.
Leggi altre domande sui tag permissions ubuntu