Firewalld (webserver)
Objetivos
- Instalar y configurar un servidor web en RHEL 9.
- Permitir el acceso a los puertos 80 (HTTP) y 443 (HTTPS) usando firewalld.
- Verificar que el servidor web funcione correctamente.
Entorno Inicial
- Usuario: student
- Máquina: servera
- Herramientas utilizadas: Shell Bash y utilidades básicas de Linux.
Pasos del Laboratorio
Prerequisitos
-
Inicio de sesión
- Inicia sesión en la máquina
serveradesdebastioncomo el usuariostudentutilizando la llave privada proporcionada:
ssh student-#-servera - Inicia sesión en la máquina
Paso 1: Validación de webserver
- Validar que el servicio de firewalld esté instalado, iniciado y habilitado:
dnf install firewalld -y systemctl is-active firewalld || echo "Start firewalld" && systemctl start firewalld systemctl is-enabled firewalld || echo "Enable firewalld" && systemctl enable firewalld - Validar si existe un servicio con el o los puertos y protocolos deseados:
Salida similar:
firewall-cmd --get-services |xargs -n1 |grep httphttp http3 https wbem-http wbem-https - Obtener información de servicio
http:Salida similar:firewall-cmd --info-service=httpNotar que contiene el puerto y protocolo requerido:http ports: 80/tcp protocols: source-ports: modules: destination: includes: helpers:80/tcp. - Obtener información de servicio
http3:Notar que NO contiene el puerto (443) y protocolo (TCP) requerido, contiene:firewall-cmd --info-service=http3 http3 ports: 443/udp protocols: source-ports: modules: destination: includes: helpers:443/udp(UDP). - Obtener información de servicio
https:Notar que contiene el puerto y protocolo requerido, contiene:firewall-cmd --info-service=https https ports: 443/tcp protocols: source-ports: modules: destination: includes: helpers:443/tcp. - Consultar cada servicio, no será necesario mientras más familiarizados estamos con el sistema operativo, pero es una práctica sugerida el validar la definición de los servicios antes de aplicar esta configuración.
- Hemos identificado los nombres de los servicios que se deben de permitir. Procedemos a habilitarlos en tiempo de ejecución.
firewall-cmd --add-service=http --add-service=https # Varios servicios firewall-cmd --add-service=http # Solo 1 servicio - Puede instalar, habilitar e iniciar el webserver y realizar pruebas:
dnf install httpd mod_ssl -y systemctl enable --now httpd echo "OK firewalld" > /var/www/html/test-firewalld.html - Desde otro sistema puede ejecutar:
Salida:
curl http://IP_SISTEMA_CON_FIREWALLD/test-firewalld.htmlOK firewalldSalida:curl -k https://IP_SISTEMA_CON_FIREWALLD/test-firewalld.htmlOK firewalld - Implementar cambios de forma permanente.
firewall-cmd --runtime-to-permanent - Validar cambios.
firewall-cmd --reload
Resultados Esperados
- El servidor tiene acceso por medio de firewalld tanto en el puerto
80/tcpcomo por el puerto443/tcp.