EN ESTA PÁGINA
Ejemplo: Configuración de un filtro de firewall sin estado para proteger contra inundaciones TCP e ICMP
En este ejemplo se muestra cómo crear un filtro de firewall sin estado que proteja contra ataques de denegación de servicio TCP e ICMP.
Requisitos
No se requiere ninguna configuración especial más allá de la inicialización del dispositivo antes de configurar los filtros de firewall sin estado.
Descripción general
En este ejemplo, creamos un filtro de firewall sin estado llamado protect-RE
a vigilar los paquetes TCP e ICMP. Utiliza los aplicadores que se describen aquí:
tcp-connection-policer
—Este aplicador de políticas limita el tráfico TCP a 1.000.000 de bits por segundo (bps) con un tamaño de ráfaga máximo de 15.000 bytes. Se descarta el tráfico que supere cualquiera de los límites.icmp-policer
—Este aplicador de políticas limita el tráfico ICMP a 1.000.000 bps con un tamaño de ráfaga máximo de 15.000 bytes. Se descarta el tráfico que supere cualquiera de los límites.
Al especificar límites, el límite de ancho de banda puede ser de 32.000 bps a 32.000.000.000 bps y el límite de tamaño de ráfaga puede ser de 1.500 bytes a 100.000.000 bytes. Utilice las siguientes abreviaturas al especificar límites: K (1.000), M (1.000.000) y G (1.000.000.000).
Cada aplicador de policía se incorpora a la acción de un término de filtro. En este ejemplo se incluyen los siguientes términos:
tcp-connection-term
: controla ciertos paquetes TCP con una dirección de origen de 192.168.0.0/24 o 10.0.0.0/24. Estas direcciones se definen en la lista detrusted-addresses
prefijos.Los paquetes filtrados incluyen
tcp-established
paquetes Latcp-established
condición de coincidencia es un alias para la condicióntcp-flags “(ack | rst)”
de coincidencia de campo de bits , que indica una sesión TCP establecida, pero no el primer paquete de una conexión TCP.icmp-term
—Controla los paquetes ICMP. Todos los paquetes ICMP se cuentan en elicmp-counter
contador.
Puede mover términos dentro del filtro del firewall mediante el insert
comando. Consulte insertar en la Guía del usuario de la CLI de Junos OS.
Puede aplicar un firewall sin estado a los lados de entrada o salida, o a ambos, de una interfaz. Para filtrar los paquetes que transitan por el dispositivo, aplique el filtro de firewall a cualquier interfaz que no sea de motor de enrutamiento. Para filtrar paquetes que se originan en el motor de enrutamiento o destinados a él, aplique el filtro de firewall a la interfaz de circuito cerrado (lo0).
Figura 1 muestra la red de ejemplo.
Dado que este filtro de firewall limita el tráfico del motor de enrutamiento a los paquetes TCP, los protocolos de enrutamiento que utilizan otros protocolos de transporte para la capa 4 no pueden establecer sesiones correctamente cuando este filtro está activo. Para demostrarlo, en este ejemplo se configura OSPF entre el dispositivo R1 y el dispositivo R2.
Configuración rápida de CLI muestra la configuración de todos los dispositivos en Figura 1.
En la sección #configuration1102__policy-firewall-tcp-icmp-st se describen los pasos del dispositivo R2.
Configuración
Procedimiento
Configuración rápida de CLI
Para configurar rápidamente el filtro de firewall sin estado, copie los siguientes comandos en un archivo de texto, quite los saltos de línea y, a continuación, pegue los comandos en la CLI.
Dispositivo R1
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 primary set interfaces lo0 unit 0 family inet address 172.16.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set routing-options router-id 192.168.0.1 set routing-options autonomous-system 100
Dispositivo R2
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces lo0 unit 0 family inet filter input protect-RE set interfaces lo0 unit 0 family inet address 192.168.0.2/32 primary set interfaces lo0 unit 0 family inet address 172.16.0.2/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext neighbor 10.0.0.1 peer-as 100 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set policy-options prefix-list trusted-addresses 10.0.0.0/24 set policy-options prefix-list trusted-addresses 192.168.0.0/24 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set routing-options router-id 192.168.0.2 set routing-options autonomous-system 200 set firewall family inet filter protect-RE term tcp-connection-term from source-prefix-list trusted-addresses set firewall family inet filter protect-RE term tcp-connection-term from protocol tcp set firewall family inet filter protect-RE term tcp-connection-term from tcp-established set firewall family inet filter protect-RE term tcp-connection-term then policer tcp-connection-policer set firewall family inet filter protect-RE term tcp-connection-term then accept set firewall family inet filter protect-RE term icmp-term from source-prefix-list trusted-addresses set firewall family inet filter protect-RE term icmp-term from protocol icmp set firewall family inet filter protect-RE term icmp-term then policer icmp-policer set firewall family inet filter protect-RE term icmp-term then count icmp-counter set firewall family inet filter protect-RE term icmp-term then accept set firewall policer tcp-connection-policer filter-specific set firewall policer tcp-connection-policer if-exceeding bandwidth-limit 1m set firewall policer tcp-connection-policer if-exceeding burst-size-limit 15k set firewall policer tcp-connection-policer then discard set firewall policer icmp-policer filter-specific set firewall policer icmp-policer if-exceeding bandwidth-limit 1m set firewall policer icmp-policer if-exceeding burst-size-limit 15k set firewall policer icmp-policer then discard
Procedimiento paso a paso
En el ejemplo siguiente, debe explorar por varios niveles en la jerarquía de configuración. Para obtener información acerca de cómo navegar por la CLI, consulte Usar el editor de CLI en el modo de configuración.
Para configurar el filtro de firewall sin estado para descartar:
Configure las interfaces del dispositivo.
[edit interfaces fe-1/2/0 unit 0 family inet ] user@R2# set address 10.0.0.2/30 [edit interfaces lo0 unit 0 family inet] user@R2# set address 192.168.0.2/32 primary user@R2# set address 172.16.0.2/32
Configure la sesión de emparejamiento BGP.
[edit protocols bgp group ext] user@R2# set type external user@R2# set export send-direct user@R2# set neighbor 10.0.0.1 peer-as 100
Configure el número de sistema autónomo (AS) y ID del enrutador.
[edit routing-options] user@R2# set autonomous-system 200 user@R2# set router-id 192.168.0.2
Configure OSPF.
[edit protocols ospf area 0.0.0.0] user@R2# set interface lo0.0 passive user@R2# set interface fe-1/2/0.0
Defina la lista de direcciones de confianza.
[edit policy-options prefix-list trusted-addresses] user@R2# set 10.0.0.0/24 user@R2# set 192.168.0.0/24
Configure una política para anunciar rutas directas.
[edit policy-options policy-statement send-direct term 1] user@R2# set from protocol direct user@R2# set then accept
Configure el aplicador de políticas TCP.
[edit firewall policer tcp-connection-policer] user@R2# set filter-specific user@R2# set if-exceeding bandwidth-limit 1m user@R2# set if-exceeding burst-size-limit 15k user@R2# set then discard
Cree el aplicador de políticas ICMP.
[edit firewall policer icmp-policer] user@R2# set filter-specific user@R2# set if-exceeding bandwidth-limit 1m user@R2# set if-exceeding burst-size-limit 15k user@R2# set then discard
Configure las reglas de filtro TCP.
[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# set from source-prefix-list trusted-addresses user@R2# set from protocol tcp user@R2# set from tcp-established user@R2# set then policer tcp-connection-policer user@R2# set then accept
Configure las reglas de filtro ICMP.
[edit firewall family inet filter protect-RE term icmp-term] user@R2# set from source-prefix-list trusted-addresses user@R2# set from protocol icmp user@R2# set then policer icmp-policer user@R2# set then count icmp-counter user@R2# set then accept
Aplique el filtro a la interfaz de circuito cerrado.
[edit interfaces lo0 unit 0] user@R2# set family inet filter input protect-RE
Resultados
Confirme la configuración introduciendo los comandos , show protocols
, show policy-options
, show routing-options
y show firewall
desde el show interfaces
modo de configuración. Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.
user@R2# show interfaces fe-1/2/0 { unit 0 { family inet { address 10.0.0.2/30; } } } lo0 { unit 0 { family inet { filter { input protect-RE; } address 192.168.0.2/32 { primary; } address 172.16.0.2/32; } } }
user@R2# show protocols bgp { group ext { type external; export send-direct; neighbor 10.0.0.1 { peer-as 100; } } } ospf { area 0.0.0.0 { interface lo0.0 { passive; } interface fe-1/2/0.0; } }
user@R2# show policy-options prefix-list trusted-addresses { 10.0.0.0/24; 192.168.0.0/24; } policy-statement send-direct { term 1 { from protocol direct; then accept; } }
user@R2# show routing-options router-id 192.168.0.2; autonomous-system 200;
user@R2# show firewall family inet { filter protect-RE { term tcp-connection-term { from { source-prefix-list { trusted-addresses; } protocol tcp; tcp-established; } then { policer tcp-connection-policer; accept; } } term icmp-term { from { source-prefix-list { trusted-addresses; } protocol icmp; } then { policer icmp-policer; count icmp-counter; accept; } } } } policer tcp-connection-policer { filter-specific; if-exceeding { bandwidth-limit 1m; burst-size-limit 15k; } then discard; } policer icmp-policer { filter-specific; if-exceeding { bandwidth-limit 1m; burst-size-limit 15k; } then discard; } }
Cuando termine de configurar el dispositivo, ingrese commit
en el modo de configuración.
Verificación
Confirme que la configuración funcione correctamente.
Para comprobar el aplicador de control TCP, puede utilizar una herramienta de generación de paquetes. Esta tarea no se muestra aquí.
- Mostrar el filtro de firewall sin estado que está en vigor
- Uso de telnet para comprobar la condición establecida por TCP en el filtro de firewall TCP
- Uso de telnet para comprobar la condición de prefijos de confianza en el filtro de firewall TCP
- Uso de OSPF para comprobar el filtro de firewall TCP
- Comprobación del filtro de firewall ICMP
Mostrar el filtro de firewall sin estado que está en vigor
Propósito
Compruebe la configuración del filtro de firewall.
Acción
Desde el modo operativo, ingrese el comando show firewall
.
user@R2> show firewall Filter: protect-RE Counters: Name Bytes Packets icmp-counter 0 0 Policers: Name Bytes Packets icmp-policer 0 tcp-connection-policer 0
Significado
El resultado muestra el filtro, el contador y las políticas que están vigentes en el dispositivo R2.
Uso de telnet para comprobar la condición establecida por TCP en el filtro de firewall TCP
Propósito
Asegúrese de que el tráfico telnet funciona como se esperaba.
Acción
Compruebe que el dispositivo solo puede establecer sesiones TCP con hosts que cumplan la from tcp-established
condición.
Desde el dispositivo R2, asegúrese de que la sesión BGP con el dispositivo R1 esté establecida.
user@R2> show bgp summary | match down Groups: 1 Peers: 1 Down peers: 0
Desde el dispositivo R2, telnet al dispositivo R1.
user@R2> telnet 192.168.0.1 Trying 192.168.0.1... Connected to R1.example.net. Escape character is '^]'. R1 (ttyp4) login:
Desde el dispositivo R1, telnet al dispositivo R2.
user@R1> telnet 192.168.0.2 Trying 192.168.0.2... telnet: connect to address 192.168.0.2: Operation timed out telnet: Unable to connect to remote host
En el dispositivo R2, desactive la condición de
from tcp-established
coincidencia.[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# deactivate from tcp-established user@R2# commit
Desde el dispositivo R1, inténtelo de nuevo a telnet al dispositivo R2.
user@R1> telnet 192.168.0.1 Trying 192.168.0.2... Connected to R2.example.net. Escape character is '^]'. R2 (ttyp4) login:
Significado
Verifique la información siguiente:
Como era de esperar, se establece la sesión BGP. No se espera que la
from tcp-established
condición de coincidencia bloquee el establecimiento de la sesión BGP.Desde el dispositivo R2, puede telnet al dispositivo R1. El dispositivo R1 no tiene ningún filtro de firewall configurado, por lo que este es el comportamiento esperado.
Desde el dispositivo R1, no puede telnet al dispositivo R2. Telnet utiliza TCP como protocolo de transporte, por lo que este resultado puede ser sorprendente. La causa de la falta de conectividad telnet es la
from tcp-established
condición de coincidencia. Esta condición de coincidencia limita el tipo de tráfico TCP que se acepta del dispositivo R2. Después de desactivar esta condición de coincidencia, la sesión de telnet se realiza correctamente.
Uso de telnet para comprobar la condición de prefijos de confianza en el filtro de firewall TCP
Propósito
Asegúrese de que el tráfico telnet funciona como se esperaba.
Acción
Compruebe que el dispositivo solo puede establecer sesiones telnet con un host en una dirección IP que coincida con una de las direcciones de origen de confianza. Por ejemplo, inicie sesión en el dispositivo con el telnet
comando desde otro host con uno de los prefijos de dirección de confianza. Además, compruebe que las sesiones Telnet con direcciones de origen que no son de confianza estén bloqueadas.
Desde el dispositivo R1, telnet al dispositivo R2 desde una dirección de origen que no sea de confianza.
user@R1> telnet 172.16.0.2 source 172.16.0.1 Trying 172.16.0.2... ^C
Desde el dispositivo R2, agregue 172.16/16 a la lista de prefijos de confianza.
[edit policy-options prefix-list trusted-addresses] user@R2# set 172.16.0.0/16 user@R2# commit
Desde el dispositivo R1, inténtelo de nuevo a telnet al dispositivo R2.
user@R1> telnet 172.16.0.2 source 172.16.0.1 Trying 172.16.0.2... Connected to R2.example.net. Escape character is '^]'. R2 (ttyp4) login:
Significado
Verifique la información siguiente:
Desde el dispositivo R1, no puede conectar telnet al dispositivo R2 con una dirección de origen que no sea de confianza. Después de agregar el prefijo 172.16/16 a la lista de prefijos de confianza, se acepta la solicitud telnet de la dirección de origen 172.16.0.1.
El establecimiento de la sesión de OSPF está bloqueado. OSPF no utiliza TCP como protocolo de transporte. Después de desactivar la condición de coincidencia, no se bloquea el
from protocol tcp
establecimiento de la sesión OSPF.
Uso de OSPF para comprobar el filtro de firewall TCP
Propósito
Asegúrese de que el tráfico de OSPF funciona como se esperaba.
Acción
Compruebe que el dispositivo no pueda establecer conectividad OSPF.
Desde el dispositivo R1, compruebe las sesiones OSPF.
user@R1> show ospf neighbor Address Interface State ID Pri Dead 10.0.0.2 fe-1/2/0.0 Init 192.168.0.2 128 34
Desde el dispositivo R2, compruebe las sesiones OSPF.
user@R2> show ospf neighbor
En el dispositivo R2, elimine la condición de
from protocol tcp
coincidencia.[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# deactivate from protocol user@R2# commit
Desde el dispositivo R1, vuelva a comprobar las sesiones OSPF.
user@R1> show ospf neighbor Address Interface State ID Pri Dead 10.0.0.2 fe-1/2/0.0 Full 192.168.0.2 128 36
Desde el dispositivo R2, vuelva a comprobar las sesiones OSPF.
user@R2> show ospf neighbor Address Interface State ID Pri Dead 10.0.0.1 fe-1/2/0.0 Full 192.168.0.1 128 39
Significado
Verifique la información siguiente:
El establecimiento de la sesión de OSPF está bloqueado. OSPF no utiliza TCP como protocolo de transporte. Después de desactivar la condición de coincidencia, el
from protocol tcp
establecimiento de la sesión de OSPF se realiza correctamente.
Comprobación del filtro de firewall ICMP
Propósito
Verifique que los paquetes ICMP estén siendo vigilados y contados. Asegúrese también de que las solicitudes de ping se descarten cuando las solicitudes se originen en una dirección de origen que no sea de confianza.
Acción
Deshaga los cambios de configuración realizados en los pasos de verificación anteriores.
Reactive la configuración del firewall TCP y elimine la dirección de origen de confianza 172.16/16.
[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# activate from protocol user@R2# activate from tcp-established [edit policy-options prefix-list trusted-addresses] user@R2# delete 172.16.0.0/16 user@R2# commit
Desde el dispositivo R1, haga ping a la interfaz de circuito cerrado en el dispositivo R2.
user@R1> ping 192.168.0.2 rapid count 600 size 2000 PING 192.168.0.2 (192.168.0.2): 2000 data bytes !!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!! --- 192.168.0.2 ping statistics --- 600 packets transmitted, 536 packets received, 10% packet loss pinground-trip min/avg/max/stddev = 2.976/3.405/42.380/2.293 ms
Desde el dispositivo R2, compruebe las estadísticas del firewall.
user@R2> show firewall Filter: protect-RE Counters: Name Bytes Packets icmp-counter 1180804 1135 Policers: Name Bytes Packets icmp-policer 66 tcp-connection-policer 0
Desde una dirección de origen que no sea de confianza en el dispositivo R1, envíe una solicitud de ping a la interfaz de circuito cerrado del dispositivo R2.
user@R1> ping 172.16.0.2 source 172.16.0.1 PING 172.16.0.2 (172.16.0.2): 56 data bytes ^C --- 172.16.0.2 ping statistics --- 14 packets transmitted, 0 packets received, 100% packet loss
Significado
Verifique la información siguiente:
La salida del ping muestra que se está produciendo una pérdida de paquetes del 10%.
El contador de paquetes ICMP se incrementa y el icmp-policer se incrementa.
El dispositivo R2 no envía respuestas ICMP al
ping 172.16.0.2 source 172.16.0.1
comando.