0%
Red Hat, Rocky Linux y AlmaLinux: guía de administración

Red Hat, Rocky Linux y AlmaLinux: guía de administración

Domina el ecosistema RHEL: DNF, repositorios, RPM, SELinux, firewalld y subscription-manager. Guía completa para Rocky Linux, AlmaLinux y Red Hat.

I

InSkillCoach

· min

Red Hat, Rocky Linux y AlmaLinux: guía de administración

Si Debian y Ubuntu dominan la web y la nube pública, el ecosistema Red Hat reina en las infraestructuras empresariales: banca, seguros, sector público, telecomunicaciones. Saber administrar un sistema RHEL (Red Hat Enterprise Linux) o sus derivados es una competencia muy demandada, y además es la base de las certificaciones RHCSA y RHCE. En esta guía cubrimos la gestión de paquetes con DNF y RPM, la seguridad con SELinux y firewalld, así como la gestión de suscripciones de Red Hat.

1. El ecosistema RHEL y el fin de CentOS

Un poco de historia

Durante quince años, CentOS fue la copia gratuita y compatible a nivel binario de RHEL: el mismo sistema, sin el soporte comercial. En 2020, Red Hat puso fin a CentOS Linux en favor de CentOS Stream, que ya no es una copia de RHEL sino su versión de desarrollo: Stream se sitúa aguas arriba de RHEL, no aguas abajo.

Esta decisión hizo nacer de inmediato dos sucesores comunitarios, fundados respectivamente por el creador original de CentOS y por el editor CloudLinux:

  • Rocky Linux: proyecto comunitario impulsado por la Rocky Enterprise Software Foundation;
  • AlmaLinux: proyecto impulsado por la fundación AlmaLinux, con un objetivo de compatibilidad ABI (y ya no copia bit a bit desde 2023).

¿Qué distribución elegir?

DistribuciónPosicionamientoCosteUso recomendado
RHELVersión comercial de referenciaSuscripción de pago (gratuita hasta 16 máquinas para desarrollo)Producción con soporte del fabricante
Rocky LinuxReconstrucción 1:1 de RHELGratuitoProducción sin necesidad de soporte
AlmaLinuxCompatible ABI con RHELGratuitoProducción, correcciones a veces más rápidas
CentOS StreamAguas arriba de RHEL, rollingGratuitoDesarrollo, pruebas, contribución
FedoraLaboratorio de innovación de Red HatGratuitoPuesto de trabajo, vigilancia tecnológica

Para un servidor de producción sin contrato de soporte, Rocky Linux y AlmaLinux son opciones equivalentes en la práctica: mismos paquetes, mismas versiones, y la misma documentación de RHEL es aplicable.

# Identificar la distribución y la versión
cat /etc/redhat-release
cat /etc/os-release

2. DNF: el gestor de paquetes

DNF (Dandified YUM) sustituye a YUM desde RHEL 8. El comando yum sigue existiendo, pero no es más que un enlace simbólico a dnf.

Operaciones básicas

# Buscar un paquete
dnf search nginx

# Mostrar la información de un paquete
dnf info nginx

# Instalar un paquete
sudo dnf install nginx

# Eliminar un paquete
sudo dnf remove nginx

# Actualizar todo el sistema
sudo dnf update

# Comprobar las actualizaciones disponibles sin aplicarlas
dnf check-update

# Actualizar únicamente las correcciones de seguridad
sudo dnf update --security

# Limpiar las dependencias huérfanas
sudo dnf autoremove

A diferencia de APT, no existe un equivalente de apt update que haya que lanzar manualmente: DNF actualiza sus metadatos automáticamente cuando han caducado.

El historial de transacciones: la gran baza de DNF

DNF registra cada transacción y permite deshacerla, algo que APT no sabe hacer de forma nativa:

# Listar las transacciones
dnf history

# Detalle de una transacción
dnf history info 42

# Deshacer una transacción (desinstala lo que se instaló, etc.)
sudo dnf history undo 42

# Volver a ejecutar una transacción deshecha
sudo dnf history redo 42

Los módulos (Application Streams)

Desde RHEL 8, algunos programas se distribuyen en «módulos» que ofrecen varias versiones mayores en paralelo:

# Listar los módulos disponibles
dnf module list

# Ver las versiones (streams) disponibles de un módulo
dnf module list nodejs

# Activar e instalar una versión concreta
sudo dnf module enable nodejs:20
sudo dnf module install nodejs:20

# Cambiar de versión: reiniciar y después activar el otro stream
sudo dnf module reset nodejs
sudo dnf module enable nodejs:22

Gestión de repositorios

# Listar los repositorios activos
dnf repolist

# Listar todos los repositorios, incluidos los desactivados
dnf repolist --all

# Activar / desactivar un repositorio de forma permanente
sudo dnf config-manager --set-enabled crb
sudo dnf config-manager --set-disabled crb

# Instalar un paquete desde un repositorio desactivado, de forma puntual
sudo dnf --enablerepo=crb install nom-du-paquet

3. Archivos .repo y EPEL

Anatomía de un archivo .repo

Los repositorios se definen en archivos /etc/yum.repos.d/*.repo:

# /etc/yum.repos.d/exemple.repo
[exemple]
name=Mon depot exemple
baseurl=https://depot.exemple.com/el9/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://depot.exemple.com/RPM-GPG-KEY-exemple

Las variables $releasever (versión mayor) y $basearch (arquitectura) se sustituyen automáticamente, lo que permite escribir archivos .repo portables.

EPEL: el repositorio indispensable

EPEL (Extra Packages for Enterprise Linux) es un repositorio mantenido por la comunidad Fedora que proporciona miles de paquetes ausentes en RHEL: htop, ncdu, fail2ban, certbot, etc.

# Instalación en Rocky/Alma 9
sudo dnf install epel-release

# En RHEL, el paquete viene directamente del repositorio de Fedora
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

# Muchos paquetes de EPEL exigen también el repositorio CRB (CodeReady Builder)
sudo dnf config-manager --set-enabled crb

4. RPM: el nivel bajo

Al igual que dpkg en Debian, RPM es la herramienta de bajo nivel subyacente a DNF.

# Listar todos los paquetes instalados
rpm -qa

# Comprobar si un paquete está instalado y su versión
rpm -q nginx

# Listar los archivos de un paquete
rpm -ql nginx

# Encontrar el paquete propietario de un archivo
rpm -qf /etc/nginx/nginx.conf

# Mostrar la información de un paquete
rpm -qi nginx

# Verificar la integridad de los archivos de un paquete
# (archivos modificados, permisos cambiados...)
rpm -V nginx

# Instalar un .rpm local: es preferible dnf, que resuelve las dependencias
sudo dnf install ./paquet.rpm

5. SELinux: la seguridad reforzada

SELinux (Security-Enhanced Linux) está activado por defecto en toda la familia RHEL. Es un sistema de control de acceso obligatorio (MAC): incluso la cuenta root está limitada por la política. Primera regla de oro: nunca desactives SELinux para «resolver» un problema; aprende más bien a diagnosticarlo.

Los modos

# Mostrar el modo actual
getenforce

# Estado detallado
sestatus

# Pasar temporalmente al modo permisivo (registra sin bloquear)
sudo setenforce 0

# Volver al modo enforcing
sudo setenforce 1

El modo permanente se configura en /etc/selinux/config con tres valores posibles: enforcing (la política se aplica), permissive (las violaciones se registran pero se permiten, útil para el diagnóstico) y disabled (a evitar).

Los contextos

Cada archivo, proceso y puerto lleva una etiqueta de contexto. La mayoría de los bloqueos provienen de un contexto de archivo incorrecto:

# Ver el contexto de los archivos (opción -Z, presente en muchas herramientas)
ls -Z /var/www/html

# Ver el contexto de los procesos
ps auxZ | grep nginx

# Corregir el contexto de un directorio movido o copiado
sudo restorecon -Rv /var/www/html

# Hacer permanente un contexto para una ruta no estándar
sudo semanage fcontext -a -t httpd_sys_content_t "/srv/monsite(/.*)?"
sudo restorecon -Rv /srv/monsite

# Autorizar un puerto no estándar para un servicio
sudo semanage port -a -t http_port_t -p tcp 8081

Caso típico: mueves archivos con mv desde tu directorio personal a /var/www/html, y Nginx devuelve un error 403. El movimiento conserva el contexto de origen (user_home_t) en lugar de httpd_sys_content_t. Un restorecon -Rv corrige el problema.

Diagnosticar con sealert

# Instalar las herramientas de análisis
sudo dnf install setroubleshoot-server

# Analizar las denegaciones recientes con explicaciones y sugerencias
sudo sealert -a /var/log/audit/audit.log

# Búsqueda directa en el registro de auditoría
sudo ausearch -m AVC -ts recent

Los booleanos

Los booleanos son interruptores que activan permisos predefinidos sin modificar la política:

# Listar los booleanos relacionados con httpd
getsebool -a | grep httpd

# Permitir que un servidor web abra conexiones de red salientes
# (indispensable para un reverse proxy); -P hace el ajuste permanente
sudo setsebool -P httpd_can_network_connect on

# Permitir que httpd se conecte a una base de datos
sudo setsebool -P httpd_can_network_connect_db on

6. firewalld: el cortafuegos

firewalld es el cortafuegos por defecto de la familia RHEL. Se basa en la noción de zonas: cada interfaz de red se asocia a una zona que define el nivel de confianza y los servicios permitidos.

# Estado del cortafuegos
sudo firewall-cmd --state

# Zona por defecto y zonas activas
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --get-active-zones

# Verlo todo sobre la zona actual
sudo firewall-cmd --list-all

Permitir servicios y puertos

# Listar los servicios predefinidos disponibles
sudo firewall-cmd --get-services

# Permitir HTTP y HTTPS de forma permanente
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Permitir un puerto arbitrario
sudo firewall-cmd --permanent --add-port=8080/tcp

# Retirar un servicio
sudo firewall-cmd --permanent --remove-service=http

# Aplicar los cambios permanentes
sudo firewall-cmd --reload

Trampa clásica: sin la opción --permanent, la regla está activa de inmediato pero desaparece al reiniciar; con --permanent, sobrevive al reinicio pero solo se aplica tras un --reload. Para obtener ambos efectos a la vez, ejecuta el comando dos veces (con y sin --permanent) o usa --permanent seguido de --reload.

# Cambiar la zona de una interfaz
sudo firewall-cmd --permanent --zone=internal --change-interface=eth1
sudo firewall-cmd --reload

7. Suscripciones RHEL: subscription-manager

Particularidad de RHEL respecto a Rocky y Alma: el acceso a los repositorios exige una suscripción registrada. Desde 2023, Red Hat ofrece una suscripción de desarrollador gratuita que cubre hasta 16 sistemas.

# Registrar la máquina en el portal de Red Hat
sudo subscription-manager register --username votre_login

# Comprobar el estado
sudo subscription-manager status

# Listar los repositorios disponibles a través de la suscripción
sudo subscription-manager repos --list-enabled

# Activar un repositorio adicional
sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms

# Anular el registro de la máquina (antes de retirarla de servicio)
sudo subscription-manager unregister

En Rocky Linux y AlmaLinux, subscription-manager no existe: los repositorios son públicos, como en Debian.

8. Si vienes de Debian: tabla de correspondencias

Si ya conoces APT, esta tabla te ahorrará tiempo:

OperaciónDebian/Ubuntu (apt)RHEL/Rocky/Alma (dnf)
Actualizar los índicesapt updateAutomático (dnf makecache para forzar)
Actualizar el sistemaapt upgrade / apt full-upgradednf update
Instalarapt install paquetdnf install paquet
Eliminarapt remove / apt purgednf remove
Buscarapt search motifdnf search motif
Detalles de un paqueteapt show paquetdnf info paquet
Limpiar los huérfanosapt autoremovednf autoremove
Archivos de un paquetedpkg -L paquetrpm -ql paquet
Propietario de un archivodpkg -S /cheminrpm -qf /chemin
Deshacer una transacciónSin equivalente nativodnf history undo N
Repositorios/etc/apt/sources.list.d//etc/yum.repos.d/
Cortafuegos por defectoufw (Ubuntu)firewalld
MAC por defectoAppArmorSELinux

Buenas prácticas

  • Para producción sin soporte comercial, elige Rocky Linux o AlmaLinux; reserva CentOS Stream para los entornos de pruebas.
  • No desactives nunca SELinux: pasa al modo permisivo durante el diagnóstico, corrige los contextos con restorecon y semanage, y vuelve después a enforcing.
  • Instala EPEL y activa CRB desde la puesta en servicio de un servidor: lo vas a necesitar.
  • Usa dnf history antes de entrar en pánico tras una actualización problemática: undo es tu red de seguridad.
  • Con firewalld, piensa siempre en el tándem --permanent + --reload.
  • Aplica las correcciones de seguridad con regularidad mediante dnf update --security, o automatízalas con el paquete dnf-automatic.
  • En RHEL, anula el registro de las máquinas retiradas de servicio para liberar suscripciones.

Conclusión

El ecosistema Red Hat impone un marco más estricto que el mundo Debian: SELinux activo por defecto, cortafuegos por zonas, suscripciones en RHEL. Precisamente este rigor es lo que lo convierte en el estándar de las infraestructuras empresariales. Al dominar DNF y su historial de transacciones, los archivos .repo, los contextos de SELinux y firewalld, cubres lo esencial del día a día de un administrador RHEL, y buena parte del temario de la certificación RHCSA. Para ir más lejos, explora systemd en profundidad, la automatización con Ansible (otro producto de Red Hat) y la contenerización con Podman, la alternativa de Red Hat a Docker.

InSkillCoach

Acerca de InSkillCoach

Experto en formación y tecnologías

Coach especializado en tecnologías avanzadas e IA, impulsado por GNeurone Inc.

Certificaciones:

  • AWS Certified Solutions Architect – Professional
  • Certificaciones de Google Cloud
  • Microsoft Certified: DevOps Engineer Expert
  • Certified Kubernetes Administrator (CKA)
  • CompTIA Security+
2.0k
79

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!