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:
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:
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.