SELinux

Tutorial de SELinux en Ubuntu

Tutorial de SELinux en Ubuntu

Introducción

SELinux es un módulo de control de acceso obligatorio (MAC) que reside en el nivel del kernel de los sistemas Linux. Es un desarrollo conjunto de Redhat y NSA lanzado alrededor de 1998 y aún está siendo mantenido por una comunidad entusiasta. De forma predeterminada, Ubuntu usa AppArmor y no SeLinux, que es similar en términos de rendimiento pero bastante popular en términos de simplicidad. Sin embargo, se sabe que SeLinux es bastante seguro debido a la participación de una agencia gubernamental. SELinux es una aplicación de código abierto que protege al host aislando cada aplicación y limitando sus actividades. De forma predeterminada, los procesos no pueden realizar ninguna actividad a menos que se otorgue el permiso explícito. El módulo proporciona de forma nativa dos reglas de gestión de nivel global: permisiva y ejecutiva, que registran, respectivamente, cada regla violada y deniega el acceso a una solicitud particular enviada desde un proceso. Este tutorial demuestra cómo usarlo en Ubuntu con facilidad.

Cómo instalar y habilitar

SeLinux es una aplicación muy complicada de instalar, porque si no está configurada correctamente antes del primer reinicio, hará que todo el sistema operativo no se pueda iniciar, lo que significa que cualquier cosa más allá de la pantalla de inicio inicial será prácticamente inalcanzable por medios normales.

Además, como se mencionó anteriormente, Ubuntu ya tiene un sofisticado sistema de control de acceso obligatorio de alto nivel conocido como AppArmor y, por lo tanto, debe desactivarse antes de instalar SeLinux para evitar conflictos. Utilice las siguientes instrucciones para deshabilitar AppArmor y habilitar SeLinux.

sudo / etc / init.d / apparmor stop apt-get update && upgrade -yuf apt-get install selinux nano / etc / selinux / config 'establece SELINUX en permisivo, SELINUXTYPE en predeterminado' reiniciar 

Esta configuración de archivo se puede abrir con cualquier editor de texto para realizar cambios. La razón para asignar una regla permisiva a SETLINUX es hacer que el sistema operativo sea accesible y dejar SeLinux habilitado. Es muy recomendable usar la opción permisiva ya que no tiene problemas, pero registra las reglas violadas establecidas en SeLinux.

Opciones Disponibles

SELinux es un módulo complejo y completo; por lo tanto, contiene muchas de las características y opciones. Dicho esto, la mayoría de estas opciones pueden no ser útiles para todos debido a su naturaleza exótica. Las siguientes opciones son algunas de las opciones básicas y útiles de este módulo. Son más que suficientes para poner en marcha SELinux.

Verifique el estado:  El estado de SELinux se puede verificar directamente a través de la ventana del terminal, que muestra la información básica como si SeLinux está habilitado, el directorio raíz de SELinux, el nombre de la política cargada, el modo actual, etc.  Después de reiniciar el sistema después de instalar SeLinux, use el siguiente comando como usuario root con el comando sudo. Si indica que SeLinux está habilitado en la sección de estado, significa que está funcionando en segundo plano.

[correo electrónico protegido]: / home / dondilanga # sestatus

Cambiar el nivel de permiso global: El nivel de permiso global indica cómo se comporta SELinux cuando se topa con una regla. De forma predeterminada, SeLinux se establece para hacer cumplir, lo que bloquea efectivamente todas las solicitudes, pero se puede modificar a permisivo, que es un poco indulgente con el usuario, ya que permite el acceso, pero registra cualquier regla violada en su archivo de registro.

nano / etc / selinux / config 'establece SELINUX en permisivo o obligatorio, SELINUXTYPE en predeterminado' 

Verifique el archivo de registro: El archivo de registro que establece las reglas violadas por cada solicitud.  Esto solo mantiene registros si SeLinux está habilitado.

grep selinux / var / log / audit / audit.Iniciar sesión

Habilitar y deshabilitar políticas y qué protecciones ofrecen: Esta es una de las opciones más importantes en SeLinux, ya que permite habilitar y deshabilitar políticas. SeLinux tiene una gran cantidad de políticas predefinidas que determinan si la solicitud especificada está permitida o no. Algunos de los ejemplos de esto son allow_ftpd_full_access, que determina la capacidad del servicio FTP para iniciar sesión en los usuarios locales y leer y escribir todos los archivos en el sistema, allow_ssh_keysign que permite que se usen claves cuando inician sesión en SSH, allow_user_mysql_connect que permite a los usuarios conectarse a mysql , httpd_can_sendmail, que determina la capacidad del servicio HTTP para enviar un correo electrónico, etc. En el siguiente ejemplo de código, instala policycoreutils-python-utils que en realidad ayuda a enumerar cada política de manera descriptiva, a continuación, enumera todas las políticas disponibles en la terminal , finalmente enseña cómo activar o desactivar una política, allow_ftpd_full_access es el nombre de la política como se muestra en el terminal devuelto por semanage,

apt-get install policycoreutils-python-utils semanage boolean -l setsebool -P allow_ftpd_full_access ON 

Opciones avanzadas

Las opciones avanzadas son opciones que ayudan a ampliar las funcionalidades de SELInux. Existe una enorme cantidad de combinaciones debido a la naturaleza integral de SeLinux, por lo que este artículo enumera algunas de las más importantes y útiles entre ellas.

Control de acceso basado en roles (RBAC): RBAC permite a los administradores cambiar a una forma basada en roles para limitar el permiso de las aplicaciones. Lo que significa es que un usuario de un grupo de usuarios en particular puede ejecutar o realizar ciertas acciones predefinidas. Siempre que el usuario sea parte del rol, está bien. Esto es lo mismo que cambiar a root al instalar aplicaciones en Linux con derechos administrativos.

semanage login -a -s 'myrole' -r 's0-s0: c0.c1023 ' 

Los usuarios pueden cambiar su rol con el siguiente comando.

sudo -r new_role_r -i

Los usuarios también pueden conectarse de forma remota al servidor a través de SSH con el rol habilitado al inicio.

ssh / [correo electrónico protegido]

Permitir que un servicio escuche un puerto no estándar: Esto es bastante útil para personalizar un servicio, por ejemplo, cuando un puerto FTP se cambia a uno no estándar para evitar accesos no autorizados, SELinux debe ser informado en consecuencia para permitir que dichos puertos pasen y funcionen como de costumbre. El siguiente ejemplo permite que el puerto FTP escuche el puerto 992. Asimismo, cualquier servicio devuelto por semanage port -l puede ser reemplazado.  Algunos de los puertos más populares son http_port_t, pop_port_t, ssh_port_t.

semanage port -a -t    puerto semanage -a -t ftp_port_t -p tcp 992 

Cómo deshabilitar

Deshabilitar SELinux es más fácil ya que está habilitado e instalado. Básicamente hay dos formas de deshabilitarlo. Ya sea de forma temporal o permanente. Deshabilitar SeLinux temporalmente hace que se deshabilite por un tiempo hasta el próximo arranque, y tan pronto como la computadora se enciende nuevamente, el estado se reinicia. Por otro lado, la desactivación permanente de SeLinux lo cierra completamente exponiéndolo a las amenazas que existen; por lo tanto, es una buena elección restaurar el AppArmor predeterminado de Ubuntu al menos por el bien de la seguridad del sistema.

El siguiente comando en el terminal lo apaga temporalmente:

setenforce 0 

Para inhabilitar permanentemente la edición / etc / selinux / config y establezca SELINUX en deshabilitado.

Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...
Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...
Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...