Selinux para principiantes usando centos

Selinux para principiantes usando centos
Desarrollado por la NSA para evitar el acceso malévolo y las intrusiones, Linux o Selinux mejorado por la seguridad es una función de control de acceso avanzado que se envía con la mayoría de las distribuciones modernas de Linux. Selinux se define como el sistema de control de acceso obligatorio (MAC) desarrollado como un reemplazo para el sistema de control de acceso discrecional (DAC).

Selinux puede parecer desalentador y muy difícil de implementar en la mayoría de los sistemas modernos. Sin embargo, la configuración de Selinux tiene enormes beneficios tanto para hacer cumplir la seguridad como para la solución de problemas.

Este tutorial discutirá varios conceptos implementados por Selinux y explorará varios métodos prácticos para implementar Selinux.

Nota: Antes de comenzar, es bueno usar los comandos en este tutorial como usuario raíz o un usuario dentro del grupo de sudoers.

Instalar paquetes de Selinux

Instale varios paquetes de Selinux, lo que a su vez ayudará a funcionar con las políticas de Selinux.

Antes de proceder a instalar los paquetes de Selinux, es bueno que verifiquemos cuál está instalado en el sistema actual.

En la mayoría de las instalaciones de distribuciones de rehl, algunos paquetes se instalan de forma predeterminada. Estos paquetes incluyen:

  1. SETOOLS: este paquete se utiliza para monitorear registros, consultar políticas y gestión de archivos de contexto.
  2. PolicyCoreutils -Python - Proporciona utilidades centrales de Python para administrar Selinux
  3. PolicyCoreUtils: este paquete también proporciona utilidades para administrar Selinux.
  4. MCSTRANS - MCSTRANS proporciona Daemon de traducción Selinux, que traduce varios niveles en formatos fáciles que se pueden entender fácilmente.
  5. SETOOLS -CONSOLE - Similar a SETOOLS.
  6. Selinux -Policy: proporciona una referencia para configurar la política de Selinux
  7. Selinux-Policy-dirigido-similar a Selinux-Policy
  8. Libselinux -Utils - Selinux libselinux utilidades que ayudan a administrar Selinux
  9. SetroublesShoot -Merver - Herramientas para la solución de problemas de Selinux

Para verificar qué paquetes ya están instalados en su sistema, puede usar el comando rpm -qa y encender el resultado a GREP para Selinux como:

rpm -qa | Grep Selinux
Libselinux-Utils-2.9-4.El8_3.x86_64
rpm-plugin-selinux-4.14.3-4.El8.x86_64
Selinux-Policy-dirigido-3.14.3-54.El8_3.2.noarch
python3-libselinux-2.9-4.El8_3.x86_64
Selinux-Policy-3.14.3-54.El8_3.2.noarch
Libselinux-2.9-4.El8_3.x86_64

Esto debería darle una salida de todos los paquetes instalados para el soporte de Selinux

Si no todos los paquetes Selinux están instalados en su sistema, use YUM para instalarlos como se muestra en el comando a continuación:

Yum instalación de la política Coreutils PolicyCoreutils-Python-Utils Selinux-Policy Selinux-Policy Libselinux-Utils SetroublesShoot-Server Setools-Console-Console McStrans

Modos y estados de Selinux

Comencemos ahora a jugar con Selinux, específicamente, modos Selinux.

Modos Selinux

Cuando está habilitado, Selinux puede ser tres modos posibles:

  • Ejecución
  • Permisivo
  • Desactivado

Modo de hacer cumplir

Si se aplica el modo Selinux, se asegurará de que no se niegue acceso no autorizado al sistema por ningún usuario o procesos. El modo de aplicación también mantiene registros de cualquier intento de acceso no autorizado.

Modo permisivo

El modo permisivo actúa como un estado de Selinux parcialmente habilitado. En este modo, no se niega el acceso ya que Selinux no hace cumplir sus políticas en este modo. Sin embargo, el modo permisivo mantiene un registro de cualquier intento de violación de políticas. Este modo es muy eficiente para probar antes de habilitarlo por completo, ya que los usuarios y los componentes aún pueden interactuar con el sistema, pero aún recolectando registros. Esto le permite ajustar su sistema de manera que se ve ajuste.

Modo deshabilitado

El modo deshabilitado también se puede ver como un estado deshabilitado en el que Selinux está deshabilitado y no ofrece ninguna seguridad.

Estados selinux

Una vez que Selinux se instala en un sistema. Puede tener estados binarios: habilitado y deshabilitado. Para ver el estado de Selinux, use el comando:

Getenforce
Desactivado

La salida anterior indica que Selinux está actualmente deshabilitado.

También puede usar el comando sestatus como se muestra a continuación:

sestatus
Estado de Selinux: deshabilitado

Habilitar y deshabilitar Selinux

Los estados y la configuración de Selinux son manejados por el archivo de configuración ubicado en/etc/selinux/config. Puede usar el comando CAT para ver su contenido.

cat/etc/selinux/config
#Este archivo controla el estado de Selinux en el sistema.
#Selinux = puede tomar uno de estos tres valores:
#Enforcing - Se aplica la política de seguridad de Selinux.
#Permisive - Selinux imprime advertencias en lugar de hacer cumplir.
#disabled - no se carga la política de Selinux.
Selinux = hacer cumplir
#Selinuxtype = puede tomar uno de estos tres valores:
# Dirigido: los procesos dirigidos están protegidos,
# Mínimo: modificación de la política dirigida. Solo los procesos seleccionados están protegidos.
# MLS - Protección de seguridad de múltiples niveles.
Selinuxtype = objetivo

De la salida anterior, tenemos dos directivas principales habilitadas. La directiva de Selinux especificó el modo en el que está configurado Selinux. La Directiva Selinuxtype especifica el conjunto de políticas de Selinux. Por defecto, Selinux utiliza una política específica que le permite personalizar los permisos de control de acceso. La otra política es la seguridad multinivel o MLS.

Puede encontrar una política mínima en algunas versiones.

CD/etc/Selinux/
[LS -L
Total 4
-RW-R-R-- 1 raíz 548 16 de febrero 22:40 Configuración
DRWXR-XR-X 1 raíz de raíz 4096 16 de febrero 22:43 mls
-RW-R-R-- 1 Raíz 2425 21 de julio 2020 Semanage.confusión
DRWXR-XR-X 1 raíz de raíz 4096 16 de febrero 22:40 dirigido

Veamos ahora cómo habilitar Selinux en el sistema. Recomendamos primero establecer el modo Selinux en permisos y no aplicados.

nano/etc/selinux/config

Ahora edite la Directiva Selinux como:

Selinux = Permisivo

Una vez que guarde el archivo, emita un reinicio del sistema.

reiniciar

Nota: Recomendamos encarecidamente establecer la Directiva Selinux a Permisive antes de hacer cumplir Selinux.

Una vez que reinicie el sistema, verifique los registros reportados por Selinux in/var/log/mensajes.

A continuación, asegúrese de no tener errores y aplicar selinux configurando la directiva para hacer cumplir/etc/selinux/config

Finalmente, puede ver el estado de Selinux usando el comando sestatus:

Estado de Selinux: habilitado
Selinuxfs monte:/sys/fs/selinux
Directorio raíz de Selinux: /etc /selinux
Nombre de la política cargada: dirigido
Modo actual: hacer cumplir
Modo desde el archivo de configuración: error (éxito)
Estado de MLS de política: habilitado
Política Deny_unknown Estado: Permitido
Verificación de protección de memoria: real (seguro)
Versión de política de kernel máximo: 31

También puede usar el comando setenforce para cambiar entre varios modos Selinux. Por ejemplo, para configurar el modo en permisos, use el comando:

setenforce permisivo

Este modo es temporal y se restaurará a uno en el archivo de configuración después de un reinicio.

sestatus
Estado de Selinux: habilitado
Selinuxfs monte:/sys/fs/selinux
Directorio raíz de Selinux: /etc /selinux
Nombre de la política cargada: dirigido
Modo actual: permisivo
Modo desde el archivo de configuración: hacer cumplir
Estado de MLS de política: habilitado
Política Deny_unknown Estado: Permitido
Verificación de protección de memoria: real (seguro)
Versión de política de kernel máximo: 31

Política y contexto de Selinux

Para evitar la confusión para los principiantes de Selinux, no nos sumergiremos profundamente en cómo se implementan las políticas de Selinux, sino simplemente tocarlo para darle una idea.

Selinux funciona implementando políticas de seguridad. Una política de Selinux se refiere a una regla que se utiliza para definir los derechos de acceso para cada objeto en el sistema. Los objetos se refieren a usuarios, procesos, archivos y roles.

Cada contexto se define en forma del usuario: rol: Tipo: nivel.

Por ejemplo, cree un directorio en su directorio de inicio y vea su contexto de seguridad Selinux como se muestra en los comandos a continuación:

mkdir ~/linuxhint_dir
ls -z ~/ | Grep Linuxhint

Esto mostrará la salida como se muestra a continuación:

no confined_u: object_r: user_home_t: s0 linuxhint_dir

También puede encontrar otros directorios con los contextos de seguridad como:

Sistema: _u: object_r: user_home_t: S0

Puede darse cuenta de que la salida anterior sigue la sintaxis del usuario: rol: Tipo: Nivel.

Conclusión

Ese fue un tutorial para principiantes para Selinux usando Centos 8. Aunque el tutorial está diseñado para principiantes, es más que suficiente para que los pies funcionen en Selinux y eliminen la naturaleza intimidante de Selinux.

Gracias por leer.