Skip to content

Firewalld (Multi Zonas)

Objetivos

  • Comprender el concepto de zonas en firewalld y su utilidad en la gestión de tráfico de red.
  • Configurar múltiples zonas en firewalld, asignando interfaces y reglas específicas a cada una.
  • Permitir y restringir tráfico entre zonas, probando diferentes reglas de acceso.
  • Validar el comportamiento de firewalld al gestionar la seguridad de diferentes entornos dentro del mismo sistema.

Entorno Inicial

  • Usuario: student
  • Máquina: servera
  • Herramientas utilizadas: Shell Bash y utilidades básicas de Linux.

Pasos del Laboratorio

Prerequisitos

  1. Inicio de sesión

    • Inicia sesión en la máquina servera desde bastion como el usuario student utilizando la llave privada proporcionada:
    ssh student-#-servera
    

Paso 1: Validación de multi zonas

  1. 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
    
  2. Validar estado actual de firewalld:
    firewall-cmd --list-all
    
    Salida similar:
    public (active)
        target: default
        icmp-block-inversion: no
        interfaces: eth0
        sources:
        services: cockpit dhcpv6-client http https ssh
        ports:
        protocols:
        forward: yes
        masquerade: no
        forward-ports:
        source-ports:
        icmp-blocks:
        rich rules:
    
  3. Quitar servicios diferentes a: dhcpv6-client y ssh de la zona public:
    firewall-cmd --zone=public --remove-service=http --remove-service=https --permanent
    
  4. Validar cambios.
    firewall-cmd --reload
    
  5. Validar estado actual de firewalld:
    firewall-cmd --get-active-zones
    
    Salida similar:
    public
        interfaces: eth0
    
    firewall-cmd --list-all --zone=public
    
    Salida similar:
    public (active)
        target: default
        icmp-block-inversion: no
        interfaces: eth0
        sources:
        services: cockpit dhcpv6-client ssh
        ports:
        protocols:
        forward: yes
        masquerade: no
        forward-ports:
        source-ports:
        icmp-blocks:
        rich 
    
  6. Desde otro sistema (sistema 2 ) puede ejecutar:
    curl http://IP_SISTEMA_CON_FIREWALLD/test-firewalld.html
    
    Salida similar:
    curl: (7) Failed to connect to: XXX
    
    curl -k https://IP_SISTEMA_CON_FIREWALLD/test-firewalld.html
    
    Salida similar:
    curl: (7) Failed to connect to: XXX
    
  7. Agregar IP de (sistema 2) a la zona trusted para permitir cualquier acceso desde ese sistema.
    firewall-cmd --add-source IP_SISTEMA_2/32 --zone=trusted 
    
  8. Validar estado actual de firewalld:
    firewall-cmd --get-active-zones
    
    Salida similar:
    public
        interfaces: eth0
    trusted
        sources: IP_SISTEMA_2/32
    
    firewall-cmd --list-all --zone=public
    
    Salida similar:
    public (active)
        target: default
        icmp-block-inversion: no
        interfaces: eth0
        sources:
        services: cockpit dhcpv6-client ssh
        ports:
        protocols:
        forward: yes
        masquerade: no
        forward-ports:
        source-ports:
        icmp-blocks:
        rich 
    
    firewall-cmd --list-all --zone=trusted
    
    Salida similar:
    trusted (active)
        target: ACCEPT
        icmp-block-inversion: no
        interfaces:
        sources: IP_SISTEMA_2/32
        services:
        ports:
        protocols:
        forward: yes
        masquerade: no
        forward-ports:
        source-ports:
        icmp-blocks:
        rich rules:
    
  9. Desde otro sistema (sistema 2 ) puede ejecutar:
    curl http://IP_SISTEMA_CON_FIREWALLD/test-firewalld.html
    
    Salida:
    OK firewal
    
    curl -k https://IP_SISTEMA_CON_FIREWALLD/test-firewalld.html
    
    Salida:
    OK firewal
    
  10. Hemos demostrado la funcionalidad de multiples zonas.

Resultados Esperados

  • Firewalld correctamente configurado con múltiples zonas operativas.
  • Acceso controlado según las reglas establecidas para cada zona.
  • Verificación de conectividad entre zonas conforme a las políticas de seguridad definidas.
  • Confirmación de que el puerto 22 (SSH) es accesible mediante las configuraciones de multizonas, asegurando la conectividad remota según las reglas establecidas.
  • Identificación y resolución de posibles problemas de configuración.