Cómo proteger servidores Linux con SE Linux

La seguridad es un aspecto extremadamente importante del desarrollo de software, la administración de servidores y el desarrollo de aplicaciones en estos días.

Y si usa Linux, está de suerte: viene con una característica excelente llamada SE Linux que lo ayuda a agregar una capa adicional de seguridad.

¿Qué es SE Linux?

SE Linux fue desarrollado por la NSA (Agencia de Seguridad Nacional) para cumplir tareas de seguridad relacionadas con el gobierno.  

SE Linux son las siglas de Security Enhanced Linux. Brinda a los administradores del sistema más control para brindar acceso a archivos y procesos. Con SE Linux, los administradores pueden definir un contexto y etiquetar archivos y permitirlos dentro de ese contexto.

El acceso y los permisos generalmente se heredan según los grupos de usuarios. Pero hay algunas fuentes (como servidores y procesos web) que necesitan acceso a puertos de red y procesos del kernel. Estos suelen ser generados por el usuario root o usuarios con acceso especial. SE Linux le ayuda a limitar quién puede acceder a estos procesos especiales.

Cómo trabajar con SE Linux

SE Linux viene de forma predeterminada en la mayoría de las distribuciones de Linux. En esta publicación, trabajaré en Fedora.

Solo tenga en cuenta que trabajar con SE Linux requiere sudo o accesos root.

El archivo de configuración de SE Linux se encuentra en la carpeta /etc/sysconfig/selinux. Veamos su contenido:

Modos SE Linux

 

En el archivo de configuración, podemos cambiar los modos y elegir cualquiera de los siguientes:

  1. Enforced: habilitado de forma predeterminada, los filtros se basan en políticas definidas.

  2. Permissive: no aplica las políticas definidas, pero registra todos los intentos en archivos de registro. Este modo es útil para solucionar problemas.

  3. Disabled: SE Linux está completamente deshabilitado. Esto no se recomienda ya que podría exponer su sistema a amenazas. Además, volver a aplicar la ley podría crear ciertas discrepancias.

Puede verificar su modo SE Linux actual con los siguientes comandos:

  • getenforce.

  • sestatus.

Si solo necesita cambiar el modo para la sesión actual, puede usar los siguientes comandos:

  • sudo setenforce 0 - establece el modo permisivo para la sesión actual.

  • sudo setenforce 1 - establece el modo de aplicación para la sesión actual.

Políticas de SE Linux

En SE Linux, las políticas definen el acceso a los usuarios. Los usuarios definen el acceso a los roles y los roles definen el acceso a los dominios. Luego, los dominios brindan acceso a ciertos archivos.

Para cambiar y modificar accesos, se definen 'booleanos'. Veremos los valores booleanos en la siguiente sección.

Cómo administrar las políticas de SE Linux con booleanos

Como ya sabe, las políticas de SE Linux son administradas por booleanos.

Veamos un ejemplo práctico de cómo vería y establecería un booleano. En este ejemplo, estableceremos booleanos específicos para httpd.

Primero, enumere todos los módulos específicos de http - getsebool -a | grep httpd.

Aquí -a enumera todo los valores booleanos.

A continuación, seleccionemos y cambiemos el booleano resaltado en amarillo en el código anterior:

getsebool httpd_can_connect_ftp

Ahora, establezca el valor en allow.

setsebool -P httpd_can_connect_ftp 1

En el comando de arriba,

  • La bandera P se usa para hacer que el cambio sea permanente incluso después del reinicio.

  • 1 está habilitando el booleano.

Ahora, cuando vuelva a enumerar el proceso, se permitirá su valor.

Arquitectura de SE Linux

El siguiente diagrama explica cómo SE Linux valida un intento desde la fuente:

 

 

Resolución de problemas y registros de SE Linux

SE Linux produce registros muy detallados para cada intento. Puede encontrar los registros y verlos aquí: /var/log/audit.

Durante la resolución de problemas, debe pasar al modo "permisivo" para que todos los eventos se puedan registrar en los registros. Aunque las políticas no se aplican, los intentos se registran en registros.

Cómo deshabilitar y habilitar SE Linux

Deshabilitar SE Linux por completo nunca es una buena opción. Pero hay ciertos escenarios en los que se pueden omitir las políticas, como cuando se solucionan problemas.

En lugar de deshabilitar SE Linux si se encuentra con una emisión pequeña, es mejor invertir algo de tiempo en la resolución de problemas.

Pero si realmente necesita deshabilitar SE Linux, siga estos pasos:

  1. Cambie el modo de 'enforcing' a 'permissive'.

  2. Cambie el modo de 'permissive' a 'disabled'.

 

Autora: Zaira Hira 

              https://www.freecodecamp.org/news/securing-linux-servers-with-se-linux/