Ejemplo: Configurar un filtro para bloquear el acceso Telnet y SSH
Requisitos
Necesita dos dispositivos que se ejecutenJunos OS con un vínculo de red compartido. No hay configuración especial más allá de la inicialización básica del dispositivo (interfaz de administración, acceso remoto, cuentas de inicio de sesión de usuario, etc.) es necesario antes de configurar este ejemplo. Aunque no es un requisito estricto, se recomienda el acceso de la consola al dispositivo R2.
Nuestro equipo de pruebas de contenido ha validado y actualizado este ejemplo.
Descripción general y topología
En este ejemplo, se crea un filtro de firewall sin estado IPv4 que registra y rechaza los paquetes Telnet o SSH enviados al motor de enrutamiento local, a menos que el paquete se origine en la subred 192.168.1.0/30 . El filtro se aplica a la interfaz de circuito cerrado para garantizar que solo se vea afectado el tráfico destinado al dispositivo local. El filtro se aplica en la dirección de entrada. No se utiliza un filtro de salida. Como resultado, se permite todo el tráfico generado localmente.
-
Para hacer coincidir paquetes que se originan en una subred o prefijo IP específico, utilice la condición de coincidencia IPv4 aplicada en la dirección de entrada.
source-address
-
Para hacer coincidir los paquetes destinados al puerto Telnet y a los puertos SSH, utilice la condición de coincidencia combinada con condiciones de coincidencia a e IPv4 aplicadas en la dirección de entrada.
protocol tcp
port telnet
port ssh
Ejemplo de topología
Figura 1 muestra la topología de prueba de este ejemplo. El filtro de firewall se aplica al dispositivo R2, convirtiéndolo en el dispositivo bajo prueba (DUT). Los dispositivos R1 y R2 comparten un vínculo que tiene asignada una subred de 192.168.1.0/30. Ambos dispositivos tienen direcciones de circuito cerrado asignadas desde el prefijo 192.168.255.0/30 mediante una máscara de subred /32. Las rutas estáticas proporcionan accesibilidad entre direcciones de circuito cerrado porque en este ejemplo básico no se configura un protocolo de puerta de enlace interior.
Configuración
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 Uso del editor de CLI en modo de configuración.Usar el editor de CLI en el modo de configuración
Por diseño, el filtro de ejemplo restringe el acceso Telnet y SSH a R2 a menos que se origine en la subred compartida en R1. Si utiliza SSH o Telnet para acceder directamente al dispositivo R2, perderá conectividad cuando se aplique el filtro. Se recomienda tener acceso a la consola al configurar este ejemplo. Si es necesario, puede utilizar el dispositivo R1 como host de salto para iniciar una sesión SSH a R2 después de aplicar el filtro. Como alternativa, considere la posibilidad de modificar el filtro de ejemplo para permitir también la subred IP asignada a la máquina que utiliza para acceder al dispositivo R2.
Realice las siguientes tareas para configurar este ejemplo:
- Configuración rápida de CLI
- Configurar el dispositivo R1
- Verificar y confirmar la configuración en el dispositivo R1
- Configurar el dispositivo R2
- Verificar y confirmar la configuración en el dispositivo R2
Configuración rápida de CLI
Configuración rápida para el dispositivo R1
Para configurar rápidamente el dispositivo R1, edite los siguientes comandos según sea necesario y péguelos en la CLI en el nivel de jerarquía.[edit]
Asegúrese de emitir un en modo de configuración para activar los cambios.commit
set system host-name R1 set system services ssh root-login allow set interfaces ge-0/0/0 description "Link from R1 to R2" set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/30 set interfaces lo0 unit 0 family inet address 192.168.255.1/32 set routing-options static route 192.168.255.2/32 next-hop 192.168.1.2
Configuración rápida para el dispositivo R2
Para configurar rápidamente el dispositivo R2, edite los siguientes comandos según sea necesario y péguelos en la CLI en el nivel de jerarquía.[edit]
Asegúrese de emitir un en modo de configuración para activar los cambios.commit
Considere usarlo cuando realice cambios que puedan afectar el acceso remoto a su dispositivo.commit-confirmed
Activar una configuración de Junos OS pero requerir confirmación
set system host-name R2 set system services ssh root-login allow set system services telnet set interfaces ge-0/0/0 description "Link from R2 to R1" set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.2/30 set interfaces lo0 unit 0 family inet filter input local_acl set interfaces lo0 unit 0 family inet address 192.168.255.2/32 set firewall family inet filter local_acl term terminal_access from source-address 192.168.1.0/30 set firewall family inet filter local_acl term terminal_access from protocol tcp set firewall family inet filter local_acl term terminal_access from port ssh set firewall family inet filter local_acl term terminal_access from port telnet set firewall family inet filter local_acl term terminal_access then accept set firewall family inet filter local_acl term terminal_access_denied from protocol tcp set firewall family inet filter local_acl term tcp-estab from protocol tcp set firewall family inet filter local_acl term tcp-estab from tcp-established set firewall family inet filter local_acl term tcp-estab then accept set firewall family inet filter local_acl term terminal_access_denied from port ssh set firewall family inet filter local_acl term terminal_access_denied from port telnet set firewall family inet filter local_acl term terminal_access_denied then log set firewall family inet filter local_acl term terminal_access_denied then reject set firewall family inet filter local_acl term default-term then accept set routing-options static route 192.168.255.1/32 next-hop 192.168.1.1
Configurar el dispositivo R1
Procedimiento paso a paso
Siga estos pasos para configurar el dispositivo R1:
-
Configure las interfaces:
[edit] user@R1# set interfaces ge-0/0/0 description "Link from R1 to R2" user@R1# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/30 user@R1# set interfaces lo0 unit 0 family inet address 192.168.255.1/32
-
Configure el nombre de host y la ruta estática a la dirección de circuito cerrado del dispositivo R2. También puede configurar el acceso Telnet y SSH:
[edit] user@R1# set system host-name R1 user@R1# set system services ssh root-login allow user@R1# set system services telnet user@R1# set routing-options static route 192.168.255.2/32 next-hop 192.168.1.2
Verificar y confirmar la configuración en el dispositivo R1
Procedimiento paso a paso
Complete los siguientes pasos para verificar y confirmar su configuración candidata en el dispositivo R1:
-
Confirme la configuración de la interfaz con el comando de modo de configuración.
show interfaces
Si el resultado del comando no muestra la configuración deseada, repita las instrucciones de este ejemplo para corregir la configuración.[edit] user@R1# show interfaces ge-0/0/0 { description "Link from R1 to R2"; unit 0 { family inet { address 192.168.1.1/30; } } } lo0 { unit 0 { family inet { address 192.168.255.1/32; } } }
-
Compruebe la ruta estática utilizada para llegar a la dirección de circuito cerrado del dispositivo R2 y que el acceso SSH y Telnet estén habilitados. Utilice los comandos de modo de configuración y .
show routing-options
show system services
Si el resultado del comando no muestra la configuración deseada, repita las instrucciones de este ejemplo para corregir la configuración.[edit] user@R1# show routing-options static { route 192.168.255.2/32 next-hop 192.168.1.2; } user@R1# show system services ssh { root-login allow; } telnet;
-
Cuando esté satisfecho con la configuración del dispositivo R1, confirme la configuración candidata.
[edit] user@R1# commit
Configurar el dispositivo R2
Procedimiento paso a paso
Complete los pasos siguientes para configurar el dispositivo R2. Para empezar, defina el filtro de firewall sin estado que bloquea selectivamente el acceso Telnet y SSH:
-
Colóquese en la jerarquía:
edit firewall family inet filter
local_acl[edit] user@R2# edit firewall family inet filter local_acl
-
Defina el término de filtro .terminal_access Este término permite Telnet y SSH desde los prefijos de origen especificados:
[edit firewall family inet filter local_acl] user@R2# set term terminal_access from source-address 192.168.1.0/30 user@R2# set term terminal_access from protocol tcp user@R2# set term terminal_access from port ssh user@R2# set term terminal_access from port telnet user@R2# set term terminal_access then accept
-
Defina el término de filtro .terminal_access_denied Este término rechaza SSH y Telnet de todas las demás direcciones de origen. Este término está configurado para registrar coincidencias con el término y generar una respuesta inaccesible de destino explícito del Protocolo de mensajes de control de Internet (ICMP) al origen del paquete. Consulte Acciones de registro de filtros de firewall para obtener más información sobre las opciones de registro de filtros.Acciones de registro de filtro de firewall
Consejo:Puede utilizar la acción para suprimir la generación de mensajes de error ICMP de vuelta al origen.
discard
Consulte Acciones de terminación del filtro de firewall para obtener más información.Acciones de finalización del filtro de firewall[edit firewall family inet filter local_acl] user@R2# set term terminal_access_denied from protocol tcp user@R2# set term terminal_access_denied from port ssh user@R2# set term terminal_access_denied from port telnet user@R2# set term terminal_access_denied then log user@R2# set term terminal_access_denied then reject user@R2# set term default-term then accept
- Opcional.
Defina el término de filtro .tcp-estab Este término permite el acceso saliente a Internet para admitir conexiones a la nube de Juniper Mist ( es una condición de coincidencia de campo de bits, , que indica una sesión TCP establecida, pero no el primer paquete de una conexión TCP):tcp-establishedtcp-flags "(ack | rst)"
[edit firewall family inet filter local_acl] user@R2# set term tcp-estab from protocol tcp user@R2# set term tcp-estab from tcp-established user@R2# set term tcp-estab then accept
-
Defina el término de filtro .default-term Este término acepta el resto del tráfico. Recuerde que los filtros sin estado tienen un término de negación implícito en su extremo.Junos OS El anula este comportamiento al terminar el filtro con una acción de aceptación explícita.default-term La finalización del filtro da como resultado que el archivador acepte el resto del tráfico.
Nota:Para este ejemplo, estamos permitiendo todo el resto del tráfico, pero para su red es posible que desee proteger el motor de enrutamiento. Consulte Protección del motor de enrutamiento para obtener más información.https://www.juniper.net/documentation/us/en/software/junos/routing-policy/topics/example/routing-stateless-firewall-filter-security-accept-traffic-from-trusted-source-configuring.html
[edit firewall family inet filter local_acl] user@R2# set term default-term then accept
-
Configure la interfaz de circuito cerrado y aplique el filtro en la dirección de entrada:
[edit] user@R2# set interfaces lo0 unit 0 family inet filter input local_acl user@R2# set interfaces lo0 unit 0 family inet address 192.168.255.2/32
-
Configure el nombre de host, la interfaz ge-0/0/0, la ruta estática a la dirección de circuito cerrado del dispositivo R1 y habilite el acceso remoto a través de SSH y Telnet:
[edit] user@R2# set system host-name R2 user@R2# set system services ssh root-login allow user@R2# set system services telnet user@R2# set interfaces ge-0/0/0 description "Link from R2 to R1" user@R2# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.2/30 user@R2# set routing-options static route 192.168.255.1/32 next-hop 192.168.1.1
Verificar y confirmar la configuración en el dispositivo R2
Procedimiento paso a paso
Complete los siguientes pasos para verificar y confirmar su configuración candidata en el dispositivo R2:
-
Confirme la configuración del filtro de firewall sin estado con el comando de modo de configuración.
show firewall
Si el resultado del comando no muestra la configuración deseada, repita las instrucciones de este ejemplo para corregir la configuración.[edit] user@R2# show firewall family inet { filter local_acl { term terminal_access { from { source-address { 192.168.1.0/30; } protocol tcp; port [ssh telnet]; } then accept; } term terminal_access_denied { from { protocol tcp; port [ssh telnet]; } then { log; reject; } } term default-term { then accept; } } }
-
Confirme la configuración de la interfaz y filtre la aplicación con el comando de modo de configuración.
show interfaces
Si el resultado del comando no muestra la configuración deseada, repita las instrucciones de este ejemplo para corregir la configuración.[edit] user@R2# show interfaces ge-0/0/0 { description "Link from R2 to R1"; unit 0 { family inet { address 192.168.1.2/30; } } } lo0 { unit 0 { family inet { filter { input local_acl; } address 192.168.255.2/32; } } }
-
Compruebe la ruta estática utilizada para llegar a la dirección de circuito cerrado del dispositivo R1 y compruebe que el acceso Telnet y SSH estén habilitados. Utilice los comandos de modo de configuración y .
show routing-options
show system services
Si el resultado del comando no muestra la configuración deseada, repita las instrucciones de este ejemplo para corregir la configuración.[edit] user@R2# show routing-options static { route 192.168.255.1/32 next-hop 192.168.1.1; } user@R2# show system services ssh { root-login allow; } telnet;
-
Cuando esté satisfecho con la configuración en el dispositivo R2, confirme la configuración candidata.
Consejo:Considere usarlo cuando realice cambios que puedan afectar el acceso remoto a su dispositivo.
commit-confirmed
[edit] user@R2# commit
Comprobar el filtro de firewall sin estado
Confirme que el filtro de firewall para limitar el acceso Telnet y SSH funciona correctamente.
Verificar paquetes aceptados
Propósito
Compruebe que el filtro de firewall permite correctamente SSH y Telnet cuando el tráfico proviene de la subred 192.168.1.0/30 .
Acción
-
Borre el registro del firewall en su enrutador o conmutador.
user@R2> clear firewall log
-
Desde un host en una dirección IP dentro de la subred 192.168.1.0/30 , use un comando para comprobar que puede iniciar sesión en el dispositivo mediante SSH desde una dirección de origen permitida.
ssh 192.168.255.2
Este paquete debe aceptarse, pero la información del encabezado del paquete para este paquete no debe registrarse en el búfer de registro del filtro de firewall en el motor de reenvío de paquetes. Se le pedirá que guarde la clave de host SSH si este es el primer inicio de sesión SSH entre estos dispositivos.userNota:De forma predeterminada, el dispositivo R1 obtendrá el tráfico SSH de la interfaz de salida utilizada para llegar al destino. Como resultado, este tráfico proviene de la dirección 192.168.1.1 asignada a la interfaz ge-0/0/0 del dispositivo R1.
user@R1>ssh 192.168.255.2 Password: Last login: Wed Aug 19 09:23:58 2020 from 192.168.1.1 --- JUNOS 20.2R1.10 Kernel 64-bit JNPR-11.0-20200608.0016468_buil user@R2>
-
Cierre sesión en la CLI en el dispositivo R2 para cerrar la sesión SSH.
user@R2> exit logout Connection to 192.168.255.2 closed. user@R1>
-
Desde un host en una dirección IP de la subred 192.168.1.0/30, utilice el comando para comprobar que puede iniciar sesión en el enrutador o conmutador mediante Telnet desde una dirección de origen permitida.
telnet 192.168.255.2
Este paquete debe aceptarse, pero la información del encabezado del paquete para este paquete no debe registrarse en el búfer de registro del filtro de firewall en el motor de reenvío de paquetes.user@host-A> telnet 192.168.255.2 Trying 192.168.255.2... Connected to 192.168.255.2. Escape character is '^]'. login: user Password: --- JUNOS 20.2R1.10 Kernel 64-bit JNPR-11.0-20200608.0016468_buil user@R2>
-
Cierre sesión en la CLI para cerrar la sesión de Telnet en el dispositivo R2.
user@R2:~ # exit Connection closed by foreign host. root@R1>
-
Utilice el comando para comprobar que el búfer de registro del firewall en el motor de reenvío de paquetes (PFE) del dispositivo R2 no contiene ninguna entrada con una dirección de origen en la subred 192.168.1.0/30 .
show firewall log
user@R2> show firewall log
Verificar paquetes registrados y rechazados
Propósito
Compruebe que el filtro del firewall rechaza correctamente el tráfico SSH y Telnet que no se origina en la subred 192.168.1.0/30 .
Acción
-
Borre el registro del firewall en su enrutador o conmutador.
user@R2> clear firewall log
-
Genere tráfico SSH procedente de la dirección de circuito cerrado del dispositivo R1. La dirección de origen de este tráfico está fuera de la subred permitida 192.168.1.0/30 . Use el comando para comprobar que no puede iniciar sesión en el dispositivo con SSH desde esta dirección de origen.
ssh 192.168.255.2 source 192.168.255.1
Este paquete debe rechazarse y la información del encabezado del paquete debe registrarse en el búfer de registro del filtro del firewall.user@R1 ssh 192.168.255.2 source 192.168.255.1 ssh: connect to host 192.168.255.2 port 22: Connection refused root@R1>
El resultado muestra que se ha rechazado la conexión SSH. Este resultado confirma que el filtro está generando un mensaje de error ICMP y que bloquea correctamente el tráfico SSH cuando se envía desde una dirección de origen no permitida.
-
Genere tráfico Telnet procedente de la dirección de circuito cerrado del dispositivo R1. La dirección de origen de este tráfico está fuera de la subred permitida 192.168.1.0/30 . Utilice el comando para comprobar que no puede iniciar sesión en el dispositivo mediante Telnet desde esta dirección de origen.
telnet 192.168.255.2 source 192.168.255.1
Este paquete debe rechazarse y la información del encabezado del paquete para este paquete debe registrarse en el búfer de registro del filtro de firewall en el PFE.user@R1> telnet 192.168.255.2 source 192.168.255.1 Trying 192.168.255.2... telnet: connect to address 192.168.255.2: Connection refused telnet: Unable to connect to remote host
El resultado muestra que se rechaza la conexión Telnet. Este resultado confirma que el filtro está generando un mensaje de error ICMP y que bloquea correctamente el tráfico Telnet cuando se envía desde una dirección de origen no permitida.
-
Utilice el comando para comprobar que el búfer de registro del firewall en el dispositivo R2 contiene entradas que muestran que se rechazaron los paquetes con una dirección de origen 192.168.255.1.
show firewall log
user@R2> show firewall log Log : Time Filter Action Interface Protocol Src Addr Dest Addr 15:17:11 pfe R ge-0/0/0.0 TCP 192.168.255.1 192.168.255.2 15:12:04 pfe R ge-0/0/0.0 TCP 192.168.255.1 192.168.255.2
La salida confirma que el tráfico de la dirección de origen 192.168.255.1 coincidía con el término del filtro.terminal_access_denied La columna muestra un para indicar que estos paquetes fueron rechazados.
Action
R
También se enumeran la interfaz, el protocolo de transporte y las direcciones de origen y destino. Estos resultados confirman que el filtro de firewall funciona correctamente para este ejemplo.