Saltar a contenido

Configurar firewalld

Un servidor sin firewall expone todos los puertos que tenga abiertos — servicios que ni siquiera estás usando pueden convertirse en puntos de entrada. firewalld es el firewall por defecto en Fedora/RHEL y gestiona el tráfico mediante zonas: cada interfaz de red pertenece a una zona, y cada zona define qué servicios o puertos están permitidos.

Qué hace

firewalld funciona como una lista blanca basada en zonas:

  • Zona por defecto: public — solo permite SSH y dhcpv6-client.
  • Reglas permanentes vs temporales: los cambios con --permanent persisten entre reinicios; sin esa bandera son temporales (útil para probar).
  • Servicios integrados: define HTTP, HTTPS, SSH y otros servicios con nombre en vez de números de puerto.

Diferencia con UFW

En UFW, cada regla es permanente e inmediata. En firewalld, los cambios requieren --permanent + --reload para persistir. Sin --permanent, la regla desaparece al reiniciar. Sin --reload, la regla permanece en disco pero no se aplica.

Instalar

  1. Comprobar si firewalld está activo:

    sudo firewall-cmd --state
    
  2. Si no está activo, habilitarlo e iniciar:

    sudo systemctl enable --now firewalld
    

Configurar

  1. Ver la zona por defecto y los servicios permitidos:

    sudo firewall-cmd --get-default-zone
    sudo firewall-cmd --list-services
    
  2. Abrir SSH (normalmente ya está abierto en la zona public):

    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload
    
  3. Abrir HTTP/HTTPS según el servidor web:

    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload
    

Verificar

  1. Confirmar que las reglas están aplicadas:

    sudo firewall-cmd --list-all
    

    Debe salir services: ... ssh http https (además de dhcpv6-client).

Y ahora qué

firewalld está activo con las reglas mínimas. El siguiente paso es Fail2ban para bloquear intentos de intrusión repetidos.