Ubuntu

Directorios privados privados para Ubuntu 21.04

Directorios privados privados para Ubuntu 21.04

Foto por Dayne Topkin en Unsplash

Ubuntu ha evolucionado mucho desde sus inicios como un derivado más fácil de usar de Debian que se dirigía principalmente al naciente mercado de escritorio Linux. En la actualidad, Ubuntu se implementa más allá de sus ordenadores portátiles en casa y en la oficina. Hoy en día, es más probable que encuentre Ubuntu en la nube, impulsando algunas de las empresas más conocidas del mundo y ejecutándose en varios dispositivos de IoT en el campo. Con este cambio en la adopción, se han presentado muchos desafíos técnicos diferentes y compensaciones debido a las demandas competitivas de cada uno de estos entornos. Uno de esos desafíos que siempre está en la mente de los desarrolladores de Ubuntu es la tensión entre la seguridad y la usabilidad. Con un enfoque temprano y continuo tanto en la usabilidad como en la seguridad, Ubuntu se enorgullece de ser la opción preferida tanto para los usuarios como para los desarrolladores. La elección de valores predeterminados adecuados permite a los usuarios ser productivos sin tener que luchar contra su sistema operativo.

En los entornos modernos, la seguridad sólida es primordial. Esto se logra mejor a través de un enfoque de defensa en profundidad, donde se utilizan múltiples controles y elementos para lograr una solución más resistente. Para Ubuntu, esto siempre ha sido una prioridad y ha llevado a la creación de varias funciones de seguridad predeterminadas. Estos incluyen ningún puerto de red abierto de forma predeterminada, actualizaciones de seguridad automáticas, habilitación de controles de seguridad como AppArmor y snaps para el sandboxing de aplicaciones sin problemas, y el uso de una amplia gama de características de endurecimiento del compilador aseguran que Ubuntu brinde no solo un alto grado de usabilidad, sino una postura de seguridad muy fuerte lista para usar.

Una compensación particular entre seguridad y usabilidad que se ha citado a menudo a lo largo de los años es la elección de los permisos predeterminados para el directorio de inicio del usuario. En un nivel alto, los permisos de directorio tradicionales (como archivos) se dividen en 3 tipos (lectura, escritura y ejecución) y estos se pueden asignar de forma independiente para 3 categorías de usuarios (propietario, grupo y otros). Esto permite a un usuario restringir el acceso a los archivos dentro de un directorio privado solo a su propio usuario, o permitir el acceso a los datos públicos a otros usuarios en el sistema directorio por directorio. Al crear un nuevo usuario para Ubuntu (ya sea durante el proceso de instalación o después), su directorio de inicio se creará con un conjunto predeterminado de permisos, y tradicionalmente esto se ha elegido para permitir el acceso compartido a los archivos dentro de los directorios de inicio al habilitar tanto la lectura como la ejecución. permisos para otros usuarios. Este valor predeterminado se eligió en los primeros días de Ubuntu, para admitir casos de uso como varios miembros de la familia que comparten una sola PC y desean compartir archivos fácilmente entre sí o dentro de entornos universitarios para facilitar la colaboración. También se proporcionó la incorporación de cifrado de directorio de inicio por usuario durante este tiempo, para brindar privacidad a aquellos usuarios que lo requirieran. Sin embargo, como se mencionó anteriormente, estos casos de uso para Ubuntu son quizás ahora un poco extraños cuando se consideran en la era moderna de la computación en la nube y la IoT, que tienen requisitos y exposición de seguridad muy diferentes. Con esto en mente, para la próxima versión de Ubuntu 21.04 hemos decidido cambiar a un valor predeterminado más privado, de modo que para nuevas instalaciones de Ubuntu 21.04, o para usuarios creados en una máquina que se ha actualizado a Ubuntu 21.04, los directorios de inicio serán privado por defecto.

Para muchos sistemas que tienen un solo usuario principal, es posible que este cambio no parezca tener un gran impacto. Sin embargo, si bien estas máquinas pueden tener solo un usuario humano, es probable que ya tengan otras cuentas de usuario creadas por varios servicios del sistema. Este cambio ahora significa que, en el futuro, si un atacante aprovechara alguna vulnerabilidad previamente desconocida en un servicio del sistema dado que se ejecuta como un usuario separado, no podría acceder a los datos de ningún otro usuario (tanto humano como del sistema servicio) en el sistema. Esto proporciona una experiencia inmediata más segura para los usuarios y administradores del sistema.

Puede haber algunos casos de uso existentes que se vean afectados por este cambio, por ejemplo, un usuario que ejecuta máquinas virtuales basadas en libvirt que almacena las imágenes de disco dentro de su directorio de inicio. En este caso, las máquinas virtuales se ejecutan bajo el usuario libvirt-qemu y, por lo tanto, con este nuevo cambio de permiso, libvirt no puede acceder a ninguna máquina virtual almacenada en el directorio de inicio del usuario. Para resolver esto, un usuario puede otorgar acceso selectivo a estos archivos mediante el uso de una entrada de lista de control de acceso adecuada para su directorio de inicio de la siguiente manera:

setfacl -m u:libvirt-qemu:rx $HOME

Esto especifica que el usuario libvirt-qemu debería tener permiso de lectura y ejecución para el directorio de inicio del usuario, lo que permite a libvirt-qemu ver los nombres y contenidos de cualquier imagen de máquina virtual según sea necesario.

Si deseas probar esto ahora, también puede realizar los mismos cambios para una instalación de Ubuntu existente para que cualquier directorio de inicio existente o recién creado sea privado de forma predeterminada:

# make all existing home directories private
sudo chmod 750 /home/*

# ensure any users created by either the adduser(8) or useradd(8)
# commands have their home directories private by default
sudo sed -i s/DIR_MODE=0755/DIR_MODE=0750/ /etc/adduser.conf
echo “HOME_MODE 0750” | sudo tee -a /etc/login.defs

Por el contrario, si deseas deshabilitar esta función una vez que esté ejecutando Ubuntu 21.04 y vuelva a tener acceso compartido a los directorios de inicio de forma predeterminada, simplemente ejecute los siguientes comandos:

# change adduser(8) to enable permissive home directory permissions
sudo dpkg-reconfigure adduser

# and ensure useradd also follows suit
sudo sed -i 's/^(HOME_MODEs+0750)/#1/' /etc/login.defs

Este es solo un pequeño ejemplo de cómo Ubuntu ofrece un alto grado de usabilidad y seguridad por defecto, y cómo seguimos evolucionando este equilibrio a lo largo del tiempo. Si deseas proporcionar comentarios sobre esta función, únase a la discusión con la comunidad de Ubuntu sobre el Discurso de Ubuntu.

Leave a Comment

You may also like

Más