Editado 3 Hace unas semanas por ExtremeHow Equipo Editorial
FedoraSeguridadSELinuxSistema OperativoCortafuegosConfiguraciónRedPrincipiantesUsuarios avanzadosComputadoras
Traducción actualizada 3 Hace unas semanas
Security-Enhanced Linux (SELinux) es una arquitectura de seguridad integrada en el núcleo de Linux que proporciona un mecanismo versátil de control de acceso obligatorio (MAC). Fedora, siendo una de las distribuciones de Linux más populares, utiliza SELinux para mejorar su seguridad controlando el acceso a programas y archivos. En esta guía detallada, exploraremos cómo asegurar los sistemas Fedora usando SELinux, cómo gestionar sus políticas, cómo manejar escenarios comunes y cómo maximizar sus beneficios de seguridad.
SELinux opera en tres modos diferentes, cada uno de los cuales ofrece diferentes niveles de seguridad. Vamos a examinarlos:
Antes de realizar cualquier cambio, es importante verificar el estado actual de SELinux en su sistema Fedora. Esto se puede hacer utilizando el siguiente comando en la terminal:
$ sestatus
Este comando proporcionará información sobre el modo actual, la versión de la política y otros detalles del estado de SELinux. Entender si su sistema está en modo de ejecución, permisivo o desactivado le ayudará a avanzar.
Cambiar entre los modos de SELinux es sencillo, pero requiere privilegios administrativos (root). Para cambiar modos, edite el archivo ubicado en /etc/selinux/config
y actualice la línea SELINUX=
a enforcing
, permissive
o disabled
.
# Este archivo controla el estado de SELinux en el sistema.
# SELINUX= puede tomar uno de estos tres valores:
# enforcing - La política de seguridad de SELinux se aplica.
# permisivo - SELinux imprime advertencias en lugar de aplicar.
# disabled - SELinux está completamente deshabilitado.
SELINUX=enforcing
# SELINUXTYPE= puede tomar uno de estos dos valores:
# targeted - Los procesos específicos están protegidos,
# minimum - Modificación de la política específica.
# MLS - Protección de seguridad multinivel.
SELINUXTYPE=targeted
Después de realizar los cambios, reinicie el sistema para aplicarlos. También puede usar el comando setenforce
para cambiar temporalmente entre los modos de ejecución y permisivo sin reiniciar:
# Establecer SELinux en modo de ejecución
$ sudo setenforce 1
# Establecer SELinux en modo permisivo
$ sudo setenforce 0
SELinux usa un conjunto de políticas para definir el control de acceso. Los dos tipos principales de políticas son políticas específicas y de seguridad multinivel (MLS). Fedora suele utilizar políticas específicas, que proporcionan seguridad específica para procesos clave:
Los booleanos de SELinux son interruptores que habilitan o deshabilitan reglas específicas de la política de SELinux sin modificar la política en sí. Esto permite una mayor flexibilidad a través de ajustes temporales. Para listar todos los booleanos disponibles, use el comando:
$ semanage boolean -l
Cada booleano tiene una descripción, un valor actual y un valor predeterminado. Para cambiar un valor booleano, use el comando setsebool
:
# Habilitar un booleano
$ sudo setsebool httpd_enable_homedirs on
# Deshabilitar un booleano
$ sudo setsebool httpd_enable_homedirs off
Para asegurarse de que los cambios se mantengan después de los reinicios, agregue la opción -P
:
$ sudo setsebool -P httpd_enable_homedirs on
La seguridad global en SELinux gira en torno a los contextos y etiquetas. Los archivos, directorios y procesos en Fedora tienen un contexto único que consiste en un usuario, un rol, un tipo y un nivel. Entender los contextos y etiquetarlos adecuadamente es fundamental para mantener la seguridad de SELinux. Puede ver el contexto de los archivos usando el comando ls -Z
:
$ ls -Z /var/www/html
Si necesita cambiar la referencia de un archivo, usaría el comando chcon
:
$ sudo chcon -t httpd_sys_content_t /var/www/html/index.html
Es importante tener en cuenta que los cambios manuales en los contextos con chcon
pueden revertirse tras operaciones de reetiquetado. Para realizar cambios permanentes, usaría políticas y el comando semanage fcontext
.
Trabajar con SELinux a veces puede causar errores de permisos. Esto a menudo es una señal de que las reglas de política se están aplicando correctamente, pero puede interrumpir el flujo de trabajo si es inesperado. Aquí se explica cómo puede solucionar problemas de permisos de SELinux:
/var/log/audit/audit.log
. Puede usar ausearch
para analizar:$ ausearch -m avc -ts recent
sealert
del solucionador de problemas de SELinux para obtener información de diagnóstico detallada:$ sudo sealert -a /var/log/audit/audit.log
Si bien las políticas predeterminadas de Fedora cubren muchos escenarios, los usuarios avanzados pueden crear políticas personalizadas de SELinux para cubrir casos de uso únicos. Para hacer esto, escribirá archivos de políticas (a menudo terminando en .te
) y los compilará usando las herramientas checkmodule
y semodule_package
:
# Escriba su política en un archivo .te
module mycustom 1.0;
require {
type user_home_t;
type httpd_t;
class file { read write };
}
# Permitir que el proceso httpd lea y escriba archivos de inicio de usuario
allow httpd_t user_home_t:file { read write };
A continuación, compile e instale su módulo personalizado:
$ checkmodule -M -m -o mycustom.mod mycustom.te
$ semodule_package -o mycustom.pp -m mycustom.mod
$ semodule -i mycustom.pp
Si el contexto de un archivo o directorio es incorrecto, esto puede causar problemas de acceso. Puede usar el comando restorecon
para restaurar el contexto predeterminado de SELinux:
$ sudo restorecon -Rv /path/to/directory
Este comando restablece recursivamente el contexto para que coincida con la política predeterminada para esa ruta.
SELinux agrega una capa de seguridad esencial a cualquier sistema Fedora. Ya sea que sea un individuo asegurando su configuración en casa o un administrador de empresa manteniendo la seguridad a nivel organizacional, comprender las capacidades de SELinux es de suma importancia. Al familiarizarse con los modos de SELinux, políticas, booleanos, contextos y creación de políticas, puede aprovechar esta poderosa herramienta de seguridad para garantizar que su sistema Fedora sea sólido contra ataques y accesos no autorizados.
Si encuentras algo incorrecto en el contenido del artículo, puedes