¿Existe una forma permanente y segura (como en integridad) de hacer que todo el sistema Ubuntu de un VPS (servidor privado virtual) sea de solo lectura para todos los usuarios (incluido el usuario raíz)?
¿Existe una forma permanente y segura (como en integridad) de hacer que todo el sistema Ubuntu de un VPS (servidor privado virtual) sea de solo lectura para todos los usuarios (incluido el usuario raíz)?
Sí, usar Control de acceso obligatorio . Sería mucho trabajo, aunque.
Los sistemas de control de acceso obligatorio le permiten imponer restricciones a las acciones, incluso aquellas realizadas por root, y con la capacidad de ser granular al proceso (por ejemplo, dhcpcd
ejecutándose como root puede editar /etc/resolv.conf, pero vi
ejecutándose como root no puede).
Es probable que sea imposible tener un sistema Ubuntu en ejecución que sea completamente de solo lectura. Varios procesos del sistema operativo esperan poder escribir en archivos (por ejemplo, /bin/login
quiere actualizar utmp
, btmp
, wtmp
; muchas cosas quieren iniciar sesión). Por supuesto, si puede descubrir todos esos archivos, puede permitir el acceso necesario, pero hacerlo es una tarea difícil.
El sistema MAC más conocido es SELinux . Para citar Wikipedia,
SELinux puede potencialmente controlar qué actividades permite cada sistema Usuario, proceso y daemon, con especificaciones muy precisas. Esta usado para confinar demonios como motores de bases de datos o servidores web que tienen Derechos de actividad y acceso a datos claramente definidos. Esto limita el potencial daño de un demonio confinado que se compromete.
Que coincide con el objetivo que declaraste en los comentarios:
cree un entorno que sea de solo lectura en caso de un desbordamiento de búfer (que se dará como un desafío).
Ubuntu utiliza AppArmor en lugar de SELinux.
Los sistemas MAC generalmente requieren "algo especial" para apagarlos, como reiniciar en un modo especial, que no es accesible para un atacante remoto. (Obviamente, si la raíz puede simplemente "apagarla" fácilmente, no protege contra la raíz).
Permítame repetirlo: hacer esto es mucho trabajo. Los sistemas como SELinux pueden ser prohibitivamente difíciles de configurar correctamente; en general, los encontrará trabajando en perfiles de protección específicos y limitados (por ejemplo, "no permita que el servidor web se ponga a trabajar") y distribuidos en una configuración controlada y probada de un proveedor de sistemas operativos (Red Hat hace esto, por ejemplo) . Si quieres usarlo para bloquear todo , tienes mucho trabajo por hacer.
Para su valor, uno de los puntos de venta de AppArmor es que es más fácil que SELinux, por lo que el hecho de que esté en Ubuntu puede poner las probabilidades a su favor.
Lea otras preguntas en las etiquetas permissions ubuntu