Seguridad de Linux: Explorando SELinux a fondo

Conoce SELinux: DAC vs MAC, contextos de seguridad, modos Enforcing/Permissive, gestión de archivos, booleans y auditoría para desplegar sistemas más seguros sin perder funcionalidad.

21 sept 2025 • 5 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Si has trabajado con distribuciones Linux basadas en Red Hat como Fedora, CentOS o RHEL seguro te has topado con SELinux, ese componente que muchos consideran un obstáculo y que terminan desactivando con setenforce 0. Sin embargo SELinux no es un enemigo sino un guardián que fortalece la seguridad del sistema mediante un modelo de Control de Acceso Obligatorio o MAC que limita lo que procesos y archivos pueden hacer más allá de los permisos tradicionales.

Concepto clave: DAC frente a MAC. En el modelo tradicional Discretionary Access Control DAC los permisos rwx para propietario grupo y otros determinan el acceso y el administrador root puede anular casi todo. En el modelo Mandatory Access Control MAC que implementa SELinux las reglas vienen definidas por una política del sistema y son obligatorias incluso para root. Si la política impide que el proceso del servidor web httpd_t escriba en un directorio con contexto user_home_t el acceso será denegado aunque los permisos DAC lo permitan. Este enfoque ayuda a contener daños cuando un servicio se compromete evitando movimientos laterales hacia datos de usuarios o archivos críticos del sistema.

Contextos de seguridad. El núcleo de SELinux son los contextos de seguridad o etiquetas. Cada archivo directorio y proceso tiene un contexto formado por cuatro componentes user:role:type:level donde el componente type es el más relevante para la mayoría de los casos. La política de SELinux define que procesos de tipo httpd_t solo pueden acceder a archivos de tipo httpd_sys_content_t por ejemplo. Puedes inspeccionar contextos usando las versiones con la opción Z de comandos conocidos como ls -lZ o ps auxZ para ver los tipos asociados a archivos y procesos.

Modos de SELinux y comandos básicos. Para diagnosticar primero comprueba el modo con getenforce que retorna Enforcing Permissive o Disabled. Enforcing aplica la política y deniega y registra violaciones. Permissive registra sin bloquear y es útil para pruebas. Disabled apaga SELinux y no se recomienda. Para ver más información usa sestatus. Cambiar el modo temporalmente se hace con setenforce 0 para permisos o setenforce 1 para imponer la política. Para cambios permanentes edita el archivo /etc/selinux/config y reinicia el sistema.

Gestión de contextos de archivos. Un problema frecuente es el contexto incorrecto tras mover archivos. chcon cambia el contexto de forma temporal por ejemplo chcon -t httpd_sys_content_t archivo pero no es persistente. Para reglas permanentes usa semanage fcontext -a -t httpd_sys_content_t '/ruta(/.*)?' y luego aplica esas etiquetas con restorecon -Rv /ruta. De este modo puedes servir contenido desde directorios no estándar sin desactivar SELinux.

Booleans de SELinux. Los booleans son interruptores que ajustan el comportamiento de la política sin escribir nuevas reglas. Lista todos con getsebool -a y cambia valores con setsebool por ejemplo setsebool httpd_can_network_connect on para permitir que httpd haga conexiones de red. Para persistir el cambio añade la opción -P.

Auditoría y resolución de problemas. Las denegaciones aparecen como mensajes AVC en los registros de auditoría normalmente ubicados en /var/log/audit/audit.log. Filtra por denied para encontrar entradas relevantes. Herramientas como sealert del paquete setroubleshoot-server traducen AVC crípticos a explicaciones y sugerencias. audit2allow puede generar reglas de política a partir de negaciones pero debe usarse con extremo cuidado porque puede abrir brechas si se acepta cualquier sugerencia sin revisar.

Casos prácticos. Servir una web desde /srv/mywebsite requiere ajustar el contexto y crear la regla persistente con semanage fcontext. Cambiar el puerto de un servicio implica registrar el nuevo puerto con semanage port -a -t ssh_port_t -p tcp 2222 si fuera el caso de ssh. Para scripts o procesos que necesitan acceder a recursos fuera de su contexto por defecto considera cambiar el contexto del binario o crear un módulo de política personalizado.

Comandos y opciones útiles de semanage. La sintaxis general es semanage objeto -acción opciones donde los objetos comunes son fcontext port boolean user login y las acciones incluyen -a añadir -d borrar -m modificar y -l listar. La opción -C lista solo las personalizaciones locales facilitando ver lo que has cambiado respecto al policy por defecto.

Por qué no debes desactivar SELinux por costumbre. Tratar SELinux como una molestia y desactivarlo es renunciar a una capa de defensa crítica. Conocer sus conceptos básicos control de contextos booleans y cómo leer los registros te permite mantener un sistema funcional y mucho más resistente a ataques y errores de configuración.

En Q2BSTUDIO somos especialistas en desarrollo de software y aplicaciones a medida y entendemos que la seguridad es parte esencial del ciclo de vida del software. Ofrecemos servicios integrales que incluyen auditorías de ciberseguridad pentesting y soluciones a medida que integran inteligencia artificial y prácticas de hardening como la correcta configuración de SELinux. Si te interesa reforzar la protección de tus sistemas puedes conocer nuestros servicios de ciberseguridad y pentesting en servicios de ciberseguridad y pentesting o explorar cómo desarrollamos aplicaciones y software a medida en desarrollo de aplicaciones y software a medida. Además en Q2BSTUDIO trabajamos con soluciones de inteligencia artificial para empresas agentes IA automatización y análisis con Power BI integrando servicios cloud aws y azure y servicios de inteligencia de negocio para ofrecer proyectos escalables y seguros.

Conclusión. SELinux puede parecer complejo al principio pero dominar sus principios MAC contextos y herramientas de auditoría permite desplegar sistemas seguros sin sacrificar funcionalidad. Enfócalo como una capa adicional de defensa y apóyate en equipos expertos cuando necesites políticas personalizadas módulos o auditorías de seguridad para tus aplicaciones a medida e infraestructuras en la nube.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat