Un Hoyo en Uno: Probar y Solucionar Problemas de Excepciones de Firewall

Un cortafuegos o filtro de paquetes, en general, es un sistema de seguridad de red que impide toda comunicación de red excepto las conexiones explícitamente autorizadas. Los firewalls de red filtran el tráfico entre redes y los firewalls basados ​​en host filtran el tráfico entrante y saliente en una máquina host.

Para el siguiente ejemplo, tenga en cuenta que, de forma predeterminada, no se permite que el tráfico atraviese un cortafuegos. el cliente en Foto 1 no puede enviar una solicitud al servidor web hasta que se agregue una excepción al conjunto de reglas del firewall.

Foto 1

Permitir tráfico HTTP/HTTPS entrante

En nuestro ejemplo, tenemos un servidor web ejecutándose en nuestro host, pero nadie puede acceder a este servidor web porque un firewall de red y un firewall basado en host filtran todo el tráfico entrante. Cambiemos eso ahora.

Dado que somos root en nuestro servidor web, podemos configurar el firewall basado en host nosotros mismos. Si está ejecutando RHEL o CentOS, puede permitir que el tráfico HTTP y HTTPS pase el firewall basado en host con los siguientes comandos:

$ sudo firewall-cmd --add-service=http
$ sudo firewall-cmd --add-service=https
$ sudo firewall-cmd --runtime-to-permanent

Para obtener más información sobre el uso de la firewall-cmd orden ver el firewall-cmd(1) Documentación:

RHEL 7 - Trabajar con cortafuegos
RHEL 8: uso y configuración de cortafuegos

Para el firewall de la red, debemos pedirle a nuestro administrador de seguridad de la red que agregue una excepción al conjunto de reglas del firewall.

Tenemos suerte y conseguimos una excepción para nuestro cliente en Foto 1 para acceder a nuestro servidor web. tabla 1 muestra un ejemplo simple de un conjunto de reglas, que permite a nuestro cliente acceder a los puertos 80 (HTTP) y 443 (HTTPS) en nuestro servidor web y prohíbe cualquier otro tráfico.

tabla 1

Cómo solucionar problemas de cortafuegos

A veces, cree que todo se ha configurado en todos los firewalls relacionados para permitir el acceso a un servicio en particular, pero los clientes aún no pueden conectarse a él. Esto es lo que hago en tal situación.

Primero, comprobaré el servidor web para confirmar si el servicio se está ejecutando o se ha detenido por algún motivo. Hago esto ejecutando los siguientes comandos en mi servidor web:

$ sudo systemctl is-active nginx.service
active
$ ss -tln
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port
LISTEN    0         128                0.0.0.0:80               0.0.0.0:*
LISTEN    0         128                0.0.0.0:443              0.0.0.0:*

Ahora sé que mi servidor web se está ejecutando y escuchando en los puertos esperados. Luego revisaré el firewall basado en host para ver si ambos puertos/servicios están permitidos o no.

$ sudo firewall-cmd --list-services
dhcpv6-client http https ssh

Si aquí faltara HTTP o HTTPS, sabría que olvidé algo y que el firewall basado en host está bloqueando las solicitudes de los clientes. El siguiente paso sería intentar acceder al servidor web desde un host en la misma subred. De esta manera podría confirmar si todavía hay un problema con mi host o no. Cuando todo está bien, es hora de sondear el firewall de la red.

Para esto, envío una solicitud de mi cliente a mi servidor web y anoto la marca de tiempo, la dirección IP de origen, la dirección IP de destino y el puerto de destino de mi solicitud. Con esta información, le pido a mi administrador de seguridad de la red que verifique los registros del firewall de la red para ver si hay entradas de acceso denegado. Tal vez el tipo se olvidó de validar la nueva regla en la configuración en ejecución.

Esto constituye el siguiente orden de solución de problemas:

  1. Comprobar que el servicio está operativo
  2. Verifique que el host esté escuchando en los puertos correctos
  3. Verifique el firewall basado en host para los servicios y puertos permitidos
  4. Compruebe si se puede acceder al servicio desde un host en la misma subred
  5. Intente conectarse al servicio desde otro host de red y observe la marca de tiempo, las direcciones IP y los puertos involucrados.
  6. Pídale a su administrador de seguridad de red que verifique los registros de los firewalls de la red.

Envoltura

La lista de pasos anteriores debería ayudarlo a diagnosticar las configuraciones de firewall que impiden la conectividad. Recuerde que los cortafuegos basados ​​en host protegen el servidor y los cortafuegos de red separan los segmentos de red.

Artículos de interés

Subir