5
(2)

SELinux (abreviatura de Security Enhanced Linux) es un módulo de seguridad del kernel de Linux que se utiliza para aumentar la seguridad en las distribuciones de Linux al reforzar el acceso a archivos y procesos. Otro módulo de seguridad del kernel de Linux similar que se usa para este propósito es AppArmor. Hay mucho interés en estos dos módulos debido a sus funciones superpuestas en el control de acceso para los sistemas operativos Linux. Este artículo cubre las diferencias entre SELinux y AppArmor, lo que permite a los usuarios determinar cuál de estos módulos es mejor para sus necesidades a través de una comparación de características y facilidad de uso.

¿Qué es SELinux?

Proteger los servidores con SELinux elimina la dependencia del acceso al estilo DAC basado en los usuarios y roles reales del sistema. En su lugar, introduce un sistema de contexto de tres cadenas para cada proceso o usuario del sistema. Las tres cuerdas, a saber nombre de usuario, roley dominiopermiten una mayor flexibilidad y control sobre el acceso al sistema.

Solo se puede permitir un proceso en un dominio específico a través de la configuración de políticas en SELinux. La única excepción es cuando un proceso se inicia en un contexto explícitamente definido a través del runcon dominio. Sin embargo, si existen políticas en conflicto para dicho proceso que ya está en configuración, SELinux puede negar dicha transición a otro contexto. Eso asegura que SELinux funcione según el principio de denegar por defecto. Cualquier proceso o usuario necesita tener una configuración de acceso explícita para un archivo o recurso del sistema antes de acceder a él.

Operaciones y comandos de SELinux

Como una extensión de los comandos de utilidades comunes en la terminal, SELinux proporciona -Z switch, que permite visualizar el contexto de seguridad de los archivos y procesos. Comandos como ps y ls Benefíciese de este interruptor para depurar o identificar rápidamente errores en la configuración. A continuación, una captura de pantalla del ls se muestra el comando.

ls -Z

Selinux Vs Apparmor 1 1

La primera parte de cada línea de salida es el dominio, la segunda es el tipo de objeto y la tercera es el nombre de usuario en la configuración de SELinux. De esta forma, SELinux puede brindar control total sobre el acceso a cada archivo y proceso. Los siguientes comandos se utilizan para manipular el contexto de archivos y directorios.

Uso de comandos
chcon -t Cambiar el contexto de un archivo de destino
chcon -R Cambiar el contexto de un directorio de destino (este cambio es recursivo)
restorecon -v Restaurar el contexto de un archivo a su valor predeterminado
restorecon -v -R Restaurar el contexto de un directorio a su valor predeterminado (este cambio es recursivo)
semanage fcontext -a -t Establezca el contexto predeterminado de un directorio para que sea lo que REGEX evalúa

Por ejemplo, si es necesario cambiar el contexto de todos los archivos en el directorio «/srv/web» a «httpd_sys_content_t», se puede usar el siguiente comando:

sudo semanage fcontext -a -t httpd_sys_content_t “/srv/web(/.*)”

Selinux Vs Apparmor 2 1

Dado que este contexto que se ve en la captura de pantalla ya está definido para el directorio “/srv/web” de forma recursiva, SELinux muestra un mensaje para informar al usuario. Si no está definido, un éxito semanage la operación no muestra ninguna salida.

Los administradores del sistema y los usuarios pueden habilitar, deshabilitar o permitir SELinux mediante el uso de la setenforce dominio. Del mismo modo, para verificar cuál es el estado de aplicación en este momento, los usuarios pueden usar el getenforce comando como se muestra en la captura de pantalla a continuación.

Selinux Vs Apparmor 3

¿Qué es AppArmor?

AppArmor está respaldado en el desarrollo por Canonical, la empresa matriz que desarrolla la distribución Ubuntu de Linux. AppArmor pretende ser más simple y fácil de usar que SELinux y sus perfiles se crean en el directorio «/etc/apparmor.d/». En la siguiente captura de pantalla se muestra un perfil de AppArmor para el proceso «/usr/bin/man».

Selinux Vs Apparmor 4

Operaciones y comandos de AppArmor

Para ver el estado de Apparmor, el aa-status se utiliza el comando. A continuación se muestra un ejemplo de salida del comando.

Selinux Vs Apparmor 5

Los perfiles de AppArmor se pueden enumerar por el contenido del directorio de «/etc/apparmor.d/», como se muestra a continuación.

Selinux Vs Apparmor 6

De la lista anterior de perfiles, si un usuario desea deshabilitar el perfil usr.bin.man, puede usar el siguiente comando:

sudo aa-complain /usr/bin/man

Tenga en cuenta que un perfil deshabilitado se encuentra en el subdirectorio de deshabilitación del directorio principal de perfiles de AppArmor. Para volver a habilitar un perfil que ha sido deshabilitado, se utiliza el siguiente comando:

sudo aa-enforce /usr/bin/man

Facilidad de uso entre SELinux y AppArmor

AppArmor funciona con rutas de archivo en el sistema de archivos en lugar de trabajar con cadenas para cada archivo como lo hace SELinux. Una ventaja de AppArmor es que las operaciones de lectura, escritura, bloqueo y otros archivos son más fáciles de configurar que en SELinux. Por otro lado, mientras que SELinux proporciona más funciones para el control de acceso a archivos, las funciones se implementan en un nivel mucho más bajo en el sistema.

Por lo tanto, los usuarios deben aprender a usar mknod, sockets de red y otras operaciones del sistema para trabajar con SELinux. Para todos los que no son administradores de sistemas, es mucho más fácil aprender a usar AppArmor.

AppArmor también proporciona un modo de aprendizaje que se utiliza para registrar violaciones del control de acceso. Este modo no restringe ni impide el acceso en caso de infracción, sino que recopila datos a lo largo del tiempo para permitir la creación de un perfil de AppArmor independiente basado en el comportamiento de los programas para cada infracción de acceso registrada. No existe un modo similar disponible en SELinux.

Preguntas frecuentes

¿Qué distribuciones de Linux vienen preinstaladas con SELinux y AppArmor?

Todas las distribuciones de Linux bajo el paraguas de RedHat vienen preinstaladas u ofrecen una configuración de SELinux, incluidas RHEL, CentOS y Fedora. AppArmor está preinstalado en Debian, Ubuntu, sus distribuciones derivadas, SUSE Enterprise Server y distribuciones de OpenSUSE.

¿Qué módulo de seguridad es el mejor para un nuevo usuario de Linux?

La mayoría de las principales distribuciones de Linux vienen con cualquiera de los módulos de seguridad instalados de forma predeterminada. Por lo tanto, es poco probable que un nuevo usuario de Linux no tenga un módulo de seguridad listo para usar. La comparación de las características y la facilidad de uso entre SELinux y AppArmor muestra que para los usuarios avanzados o los administradores de sistemas que desean un control más preciso sobre su sistema operativo, SELinux es lo mejor, pero para todos los demás, AppArmor es la mejor opción.

¿Son SELinux y AppArmor alternativas a los firewalls, antivirus y otro software de seguridad de datos o usuarios?

SELinux y AppArmor no son alternativas a los antivirus o cortafuegos bien configurados para la seguridad del sistema y la integridad de los datos. Por lo tanto, se recomienda complementar su sistema con un programa antivirus para una mejor protección de los datos.

Créditos de la imagen: Página wiki de AppArmor y Página Wiki de SELinux. Todas las capturas de pantalla por Zeeman Memon.

¿Le ha parecido útil este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 2

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.