AppArmor vs SELinux

AppArmor vs SELinux.

Para aumentar los mecanismos de seguridad que ofrecen los permisos y las listas de control de acceso «ugo/rwx», la Agencia de Seguridad Nacional de los Estados Unidos (NSA) desarrollo un control de acceso obligatorio que todos conocemos como SELinux (Security Enhanced Linux).

Por otro lado, y a modo privativo la empresa Immunix creo AppArmor. Novell adquirió AppArmor, y puso la herramienta en manos de la comunidad en formato open source. Actualmente es Canonical quien maneja su desarrollo y mantenimiento.

RHEL, CentOS y Fedora, son las distribuciones linux más conocidas que usan SELinux por defecto. Por otra parte Ubuntu, Linux Mint y Open Suse, están entre las destacadas que utilizan AppArmor (Open Suse desarrollo su propia GUI para manejar fácilmente las reglas de la herramienta).

Seria muy dificil hacer una comparativa realista de las dos aplicaciones. El fin de las dos es el mismo, pero su forma de operar difiere en gran medida, por eso vamos a explicar un poco cada herramienta, y tu decides cual te conviene dado que ambas son compatibles con cualquier distribución linux.

 

AppArmor vs SELinux

AppArmor

Si hay algo que me gusta de AppArmor es su modo de autoaprendizaje, es capaz de detectar cómo debe funcionar nuestro sistema de forma automática.

En vez de políticas administradas por comandos, AppArmor utiliza perfiles que se definen en archivos de texto que pueden ser modificados de forma muy sencilla. Puedes encontrar los perfiles predefinidos (se permite agregar más), con el siguiente comando:

cd /etc/apparmor.d

dir

ejemplo de edición…
nano usr.bin.firefox

Profundizar en la configuración de SELinux es complejo, se requieren unos conocimientos nivel medio/alto. Por el motivo mencionado se creo AppArmor, digamos que puede hacer lo mismo pero de una forma mucho mas sencilla y con menos peligro (si te equivocas editas de nuevo el archivo o desactivas el perfil).

Para desactivar un perfil tan solo tienes que ejecutar lo siguiente (en el ejemplo el de firefox):

sudo ln -s /etc/apparmor.d/usr.sbin.firefox /etc/apparmor.d/disable/

AppArmor ofrece dos modos predefinidos de seguridad, complain y enforce. Modificar un perfil con un modo de seguridad predeterminado también es una operación simple. En el ejemplo modificamos el perfil «usr.sbin.ntpd».
# complain
aa-complain /etc/apparmor.d/usr.sbin.ntpd

# enforce
aa-enforce  /etc/apparmor.d/usr.sbin.ntpd

También podemos verificar el estado actual de AppArmor y visualizar los perfiles habilitados.
apparmor_status

imagen de ejemplo…
AppArmor

AppArmor

Para más información visita la Ubuntu wiki.

 

SELinux

Por su forma de operar SELinux puede ser mucho más estricto que AppArmor, incluso muchas herramientas y paneles de control web recomiendan desactivarlo para no tener problemas.

Al igual que AppArmor, SELinux (Security Enhanced Linux) también tiene dos modos de protección:

  • enforcing: SELinux niega accesos en función de la política de las reglas establecidas.
  • permissive: SELinux no bloquea el acceso, pero se registrarán para un posterior análisis.

Puedes verificar el modo que estas utilizando con el comando…

getenforce

Podemos modificar el modo (incluso deshabilitar SELinux) en su archivo de configuración.
nano /etc/selinux/config

Cambias la linea:
SELINUX= xxx

por alguna de las siguientes opciones:
  • enforcing
  • permissive
  • disabled

Guarda el archivo, cierra el editor, y reinicia el sistema.

reboot

Verificamos el estado de SELinux.
sestatus

SELinux

SELinux

Ahora vemos unos ejemplos de uso. Una de las operaciones más comunes es al modificar el puerto ssh (por defecto 22), es evidente que debemos decirle a SELinux que ssh cambia de puerto, por ejemplo el 123.

semanage port -a -t ssh_port_t -p tcp 123

Otro ejemplo es cambiar la carpeta permitida como servidor web.
semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?"

restorecon -R -v /srv/www

Puedes obtener más información en su wiki oficial.

 

Conclusión final

Los dos sistemas de seguridad tratados en este articulo nos ofrecen herramientas para aislar aplicaciones, y a un posible atacante del resto del sistema (cuando una aplicación es comprometida).

Los conjuntos de reglas de SELinux son excesivamente complejos, por otro lado nos permite tener más control sobre cómo se aíslan los procesos. La generación de las políticas puede ser automatica, aun así su manejo es complicado si no eres experto.

AppArmor es más sencillo de usar. Los perfiles se pueden escribir a mano con tu editor preferido, o generarlos con «aa-logprof». AppArmor utiliza un control basado en rutas, por tanto el sistema es más transparente y se puede verificar de forma independiente.

La elección es tuya.

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

 

Agregar comentario