EN ESTA PÁGINA
Ejemplo: Configurar un filtro de firewall sin estado para protegerse contra las inundaciones de 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 filtros de firewall sin estado.
Descripción general
En este ejemplo, creamos un filtro de firewall sin estado llamado protect-RE para policiar paquetes TCP e ICMP. Utiliza las políticas que se describen aquí:
tcp-connection-policer: este agente de policía limita el tráfico TCP a 1.000.000 bits por segundo (bps) con un tamaño máximo de ráfaga de 15 000 bytes. Se descarta el tráfico que supera cualquiera de los límites.icmp-policer: este agente de policía 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 supera cualquiera de los límites.
Cuando se especifican 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 1500 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 agente 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—Policía de 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-addressesprefijos.Los paquetes filtrados incluyen
tcp-establishedpaquetes Latcp-establishedcondició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— Policía de paquetes ICMP. Todos los paquetes ICMP se cuentan en elicmp-countercontador.
Puede mover términos dentro del filtro de 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 ambos, de una interfaz. Para filtrar paquetes que transitan por el dispositivo, aplique el filtro de firewall a cualquier interfaz de motor de enrutamiento. Para filtrar paquetes que se originan en el motor de enrutamiento o están destinados a este motor, 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 paquetes TCP, los protocolos de enrutamiento que utilizan otros protocolos de transporte para la capa 4 no pueden establecer correctamente sesiones cuando este filtro está activo. Para demostrarlo, en este ejemplo se configura el OSPF entre los dispositivos R1 y 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, elimine los saltos de línea y, luego, 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
El siguiente ejemplo requiere que navegue por varios niveles en la jerarquía de configuración. Para obtener más información acerca de cómo navegar por la CLI, consulte Usar el Editor de CLI en 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 del 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 el 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 agente de policía 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 agente de policía 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
Para confirmar la configuración, ingrese los comandos , show protocols, show policy-optionsshow routing-options, y show firewall desde el show interfacesmodo 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;
}
}
Si ha terminado de configurar el dispositivo, ingrese commit desde el modo de configuración.
Verificación
Confirme que la configuración funciona correctamente.
Para comprobar el agente de policía TCP, puede usar una herramienta de generación de paquetes. Esta tarea no se muestra aquí.
- Visualización del filtro de firewall sin estado que está en vigor
- Uso de telnet para verificar la condición establecida por tcp en el filtro de firewall TCP
- Uso de telnet para verificar la condición de los prefijos de confianza en el filtro de firewall TCP
- Uso de OSPF para verificar el filtro de firewall TCP
- Verificar el filtro de firewall ICMP
Visualización del 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 show firewall comando.
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 verificar la condición establecida por tcp en el filtro de firewall TCP
Propósito
Asegúrese de que el tráfico de telnet funciona como se esperaba.
Acción
Compruebe que el dispositivo solo puede establecer sesiones TCP con hosts que cumplan con la from tcp-established condición.
Desde el dispositivo R2, asegúrese de que la sesión del 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 hasta el 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 hasta el 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-establishedcoincidencia.[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# deactivate from tcp-established user@R2# commit
Desde el dispositivo R1, vuelva a intentar 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
Compruebe la siguiente información:
Como era de esperar, se establece la sesión del BGP. No
from tcp-establishedse espera que la condición de coincidencia bloquee el establecimiento de la sesión del 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 usa TCP como protocolo de transporte, por lo que este resultado puede ser sorprendente. La causa de la falta de conectividad telnet es la condición de
from tcp-establishedcoincidencia. 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 telnet se realiza correctamente.
Uso de telnet para verificar la condición de los prefijos de confianza en el filtro de firewall TCP
Propósito
Asegúrese de que el tráfico de 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, verifique que se bloqueen las sesiones telnet con direcciones de origen no confiables.
Desde el dispositivo R1, telnet hasta el dispositivo R2 desde una dirección de origen que no es 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, vuelva a intentar 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
Compruebe la siguiente información:
Desde el dispositivo R1, no puede telnet al dispositivo R2 con una dirección de origen no confiable. 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 fuente 172.16.0.1.
El establecimiento de sesión OSPF está bloqueado. OSPF no usa TCP como protocolo de transporte. Después de desactivar la
from protocol tcpcondición de coincidencia, el establecimiento de sesión OSPF no se bloquea.
Uso de OSPF para verificar el filtro de firewall TCP
Propósito
Asegúrese de que el tráfico de OSPF funcione como se esperaba.
Acción
Compruebe que el dispositivo no puede establecer conectividad OSPF.
Desde el dispositivo R1, compruebe las sesiones de 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 de OSPF.
user@R2> show ospf neighbor
En el dispositivo R2, elimine la condición de
from protocol tcpcoincidencia.[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 de 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 de 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
Compruebe la siguiente información:
El establecimiento de sesión OSPF está bloqueado. OSPF no usa TCP como protocolo de transporte. Después de desactivar la
from protocol tcpcondición de coincidencia, el establecimiento de sesión OSPF se realiza correctamente.
Verificar el filtro de firewall ICMP
Propósito
Verifique que los paquetes ICMP estén siendo vigilados y contados. También asegúrese de que las solicitudes de ping se descartan cuando las solicitudes se originan en una dirección de origen no confiable.
Acción
Deshacer los cambios de configuración realizados en 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 es 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
Compruebe la siguiente información:
La salida de ping muestra que se está produciendo una pérdida de paquete del 10 %.
El contador de paquetes ICMP se está incrementando y el icmp-policer se está incrementando.
El dispositivo R2 no envía respuestas ICMP al
ping 172.16.0.2 source 172.16.0.1comando.
