GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar selinux en Cent OS

Introducción

Security Enhanced Linux o SELinux es un mecanismo de control de acceso avanzado integrado en la mayoría de las distribuciones de Linux modernas. Inicialmente fue desarrollado por la Agencia de Seguridad Nacional de EE. UU. para proteger los sistemas informáticos de intrusiones y manipulaciones maliciosas. Con el tiempo, SELinux se lanzó al dominio público y, desde entonces, varias distribuciones lo incorporaron en su código

Muchos administradores de sistemas consideran que SELinux es un territorio algo desconocido. El tema puede parecer desalentador y, a veces, bastante confuso. Sin embargo, un sistema SELinux correctamente configurado puede reducir en gran medida los riesgos de seguridad, y saber un poco sobre él puede ayudarlo a solucionar los mensajes de error relacionados con el acceso. En este tutorial aprenderemos sobre los conceptos detrás de SELinux:sus paquetes, comandos y archivos de configuración

Instalando paquetes SELinux

Se utilizan varios paquetes en SELinux. Algunos están instalados por defecto. Aquí hay una lista de distribuciones basadas en Red Hat:

  • policycoreutils (proporciona utilidades para administrar SELinux)
  • policycoreutils-python (proporciona utilidades para administrar SELinux)
  • política de selinux (proporciona la política de referencia de SELinux)
  • selinux-policy-targeted (proporciona la política específica de SELinux)
  • libselinux-utils (proporciona algunas herramientas para administrar SELinux)
  • establecer servidor de solución de problemas (proporciona herramientas para descifrar mensajes de registro de auditoría)
  • herramientas (proporciona herramientas para la supervisión de registros de auditoría, la política de consultas y la gestión del contexto de archivos)
  • consola de setools (proporciona herramientas para la supervisión de registros de auditoría, la política de consultas y la gestión del contexto de archivos)
  • mcstrans (herramientas para traducir diferentes niveles a un formato fácil de entender)

Algunos de estos ya están instalados. Para verificar qué paquetes de SELinux están instalados en su sistema CentOS 7, puede ejecutar algunos comandos como el siguiente (con diferentes términos de búsqueda después de grep ) como usuario root:

rpm -qa | grep selinux

La salida debería verse así:

libselinux-utils-2.2.2-6.el7.x86_64
libselinux-2.2.2-6.el7.x86_64
selinux-policy-targeted-3.12.1-153.el7.noarch
selinux-policy-3.12.1-153.el7.noarch
libselinux-python-2.2.2-6.el7.x86_64

Puede continuar e instalar todos los paquetes con el siguiente comando (yum solo actualizará los que ya tenga), o solo los que encuentre que faltan en su sistema:

yum install policycoreutils policycoreutils-python selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

Ahora deberíamos tener un sistema cargado con todos los paquetes de SELinux.

Modos SELinux

Es hora de comenzar a jugar con SELinux, así que comencemos con los modos de SELinux. En cualquier momento, SELinux puede estar en cualquiera de los tres modos posibles:

  • Cumplimiento
  • permisivo
  • Deshabilitado

En el modo de aplicación, SELinux aplicará su política en el sistema Linux y asegúrese de que cualquier intento de acceso no autorizado por parte de usuarios y procesos sea denegado. Las denegaciones de acceso también se escriben en archivos de registro relevantes. Hablaremos sobre las políticas de SELinux y los registros de auditoría más adelante.

El modo permisivo es como un estado semihabilitado. SELinux no aplica su política en modo permisivo, por lo que no se deniega el acceso. Sin embargo, cualquier infracción de la política aún se registra en los registros de auditoría. Es una excelente manera de probar SELinux antes de aplicarlo.

El modo deshabilitado se explica por sí mismo:el sistema no se ejecutará con seguridad mejorada.

Comprobando modos y estado de SELinux

Podemos ejecutar el getenforce comando para verificar el modo SELinux actual.

getenforce

SELinux debería estar deshabilitado actualmente, por lo que la salida se verá así:

Disabled

También podemos ejecutar el sestatus comando:

sestatus

Cuando SELinux está deshabilitado, la salida mostrará:

SELinux status:        disabled

Archivo de configuración SELinux

El archivo de configuración principal de SELinux es /etc/selinux/config. Podemos ejecutar el siguiente comando para ver su contenido:

cat /etc/selinux/config

La salida se verá así:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Hay dos directivas en este archivo. La directiva SELINUX dicta el modo SELinux y puede tener tres valores posibles como discutimos antes.

Habilitar y deshabilitar SELinux

Habilitar SELinux es bastante simple; pero a diferencia de deshabilitarlo, debe hacerse en un proceso de dos pasos. Suponemos que SELinux está actualmente deshabilitado y que ha instalado todos los paquetes de SELinux de la sección anterior.

Como primer paso, necesitamos editar el /etc/selinux/config para cambiar la directiva SELINUX al modo permisivo.

vi /etc/sysconfig/selinux
...
SELINUX=permissive
...

Establecer el estado en permisivo first es necesario porque cada archivo en el sistema necesita tener su contexto etiquetado antes de que se pueda aplicar SELinux. A menos que todos los archivos estén debidamente etiquetados, los procesos que se ejecutan en dominios confinados pueden fallar porque no pueden acceder a los archivos con los contextos correctos. Esto puede hacer que el proceso de arranque falle o comience con errores. Presentaremos contextosdominios más adelante en el tutorial.

Ahora emita un reinicio del sistema:

reboot

El proceso de reinicio verá todos los archivos en el servidor etiquetados con un contexto SELinux.

En la segunda fase, necesitamos editar el archivo de configuración para cambiar la directiva SELINUX de permisivo para hacer cumplir en el /etc/sysconfig/selinux archivo:

...
SELINUX=enforcing
...

A continuación, reinicie el servidor de nuevo.

reboot

Una vez que el servidor vuelve a estar en línea, podemos ejecutar sestatus Comando para comprobar el estado de SELinux. Ahora debería mostrar más detalles sobre el servidor:

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          error (Success)
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

Cent OS
  1. Cómo instalar Bugzilla 5.0 en CentOS 7

  2. Cómo configurar la lista gris en SmarterMail

  3. Cómo configurar IMAP con SSL

  4. Cómo configurar OpenSSH en CentOS 7

  5. ¿Cómo deshabilitar SELinux en CentOS?

Cómo configurar la dirección IP en CentOS 7/RHEL 7 y CentOS 6/RHEL 6

Cómo deshabilitar SELinux en CentOS

Cómo deshabilitar SELinux en AlmaLinux 8

Cómo configurar Nginx con SSL

¿Cómo configurar las "teclas de ratón"?

¿Cómo configurar Skeleton Directory?