Ejemplo: Configurar un filtro para bloquear el acceso telnet y SSH
Requisitos
Necesita dos dispositivos que se ejecuten Junos OS con un vínculo de red compartido. Sin 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 a la consola al dispositivo R2.
Nuestro equipo de pruebas de contenido validó y actualizó 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 el tráfico destinado al dispositivo local se vea afectado. Aplique el filtro 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 un prefijo IP específico, utilice la
source-addresscondición de coincidencia IPv4 aplicada en la dirección de entrada. -
Para hacer coincidir paquetes destinados al puerto Telnet y los puertos SSH, utilice la
protocol tcpcondición de coincidencia combinada conport telnetlas condiciones de coincidencia a eport sshIPv4 aplicadas en la dirección de entrada.
Topología de ejemplo
Figura 1 muestra la topología de prueba para este ejemplo. El filtro de firewall se aplica al dispositivo R2, lo que lo convierte en el dispositivo en prueba (DUT). Los dispositivos R1 y R2 comparten un vínculo al que se le asigna 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, ya que un protocolo de puerta de enlace interior no está configurado en este ejemplo básico.
Configuración
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 Uso del editor de CLI en 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. Recomendamos que tenga acceso a la consola al configurar este ejemplo. Si es necesario, puede usar el dispositivo R1 como host de salto para lanzar una sesión SSH a R2 después de aplicar el filtro. Alternativamente, considere modificar el filtro de muestra para permitir también que la subred IP asignada a la máquina que utilice tenga acceso 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 [edit] nivel jerárquico. Asegúrese de emitir un commitmodo de configuración para activar los cambios.
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 [edit] nivel de jerarquía. Asegúrese de emitir un commit modo de configuración para activar los cambios.
Considere su uso commit-confirmed cuando realice cambios que puedan afectar el acceso remoto a su dispositivo. Activación de una configuración de Junos OS pero que requiere 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 configura 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 la configuración de candidato en el dispositivo R1:
-
Confirme la configuración de interfaz con el comando del modo de
show interfacesconfiguración. Si el resultado del comando no muestra la configuración deseada, repita las instrucciones en 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; } } } -
Verifique 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 del
show routing-optionsmodo yshow system servicesde configuración. Si el resultado del comando no muestra la configuración deseada, repita las instrucciones en 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 en el dispositivo R1, confirme la configuración del candidato.
[edit] user@R1# commit
Configurar el dispositivo R2
Procedimiento paso a paso
Complete los pasos siguientes para configurar el dispositivo R2. Se comienza por definir el filtro de firewall sin estado que bloquea selectivamente el acceso Telnet y SSH:
-
Posicione en la
edit firewall family inet filterlocal_acl jerarquía:[edit] user@R2# edit firewall family inet filter local_acl
-
Defina el término terminal_accessde filtro . 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 terminal_access_deniedde filtro . Este término rechaza SSH y Telnet de todas las demás direcciones de origen. Este término se configura para registrar coincidencias con el término y para generar una respuesta inalcanzable 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 del filtro.
Consejo:Puede usar la acción para suprimir la
discardgeneración de mensajes de error ICMP de vuelta al origen. Consulte Acciones de terminación del filtro de firewall para obtener más información.[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 tcp-estabde filtro . Este término permite el acceso saliente a Internet para admitir conexiones a la nube de Juniper Mist (tcp-established es una condición de coincidencia de campo de bits, tcp-flags "(ack | rst)"que indica una sesión TCP establecida, pero no el primer paquete de una conexión TCP):
[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 default-termde filtro . Este término acepta el resto del tráfico. Recuerde que Junos OS los filtros sin estado tienen un término implícito de denegación al final. El default-term anula este comportamiento al finalizar el filtro con una acción de aceptar explícita. La finalización del filtro da como resultado que el otro tráfico sea aceptado por el filer.
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.
[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 comprobar y confirmar la configuración de candidato en el dispositivo R2:
-
Confirme la configuración del filtro de firewall sin estado con el comando del modo de
show firewallconfiguración. Si el resultado del comando no muestra la configuración deseada, repita las instrucciones en 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 la aplicación de filtro con el comando del modo de
show interfacesconfiguración. Si el resultado del comando no muestra la configuración deseada, repita las instrucciones en 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; } } } -
Verifique la ruta estática utilizada para llegar a la dirección de circuito cerrado del dispositivo R1 y verifique que el acceso Telnet y SSH estén habilitados. Utilice los comandos del
show routing-optionsmodo yshow system servicesde configuración. Si el resultado del comando no muestra la configuración deseada, repita las instrucciones en 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 del candidato.
Consejo:Considere su uso
commit-confirmedcuando realice cambios que puedan afectar el acceso remoto a su dispositivo.[edit] user@R2# commit
Verificar 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
Verifique que el filtro de firewall permite correctamente SSH y Telnet cuando el tráfico se obtiene de la subred 192.168.1.0/30 .
Acción
-
Desactive el registro del firewall en el 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 , utilice un
ssh 192.168.255.2comando para comprobar que puede iniciar sesión en el dispositivo mediante SSH desde una dirección de origen permitida. Este paquete debe aceptarse, pero la información del encabezado del paquete no se debe registrar 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 user estos dispositivos.Nota:De forma predeterminada, el dispositivo R1 extraerá 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 de 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 dentro de la subred 192.168.1.0/30 , utilice el
telnet 192.168.255.2comando para comprobar que puede iniciar sesión en su enrutador o conmutador con Telnet desde una dirección de origen permitida. Este paquete debe aceptarse, pero la información del encabezado del paquete no se debe registrar 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
show firewall logcomando 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 .user@R2> show firewall log
Verificar paquetes registrados y rechazados
Propósito
Verifique que el filtro de firewall rechaza correctamente el tráfico SSH y Telnet que no se origina en la subred 192.168.1.0/30 .
Acción
-
Desactive el registro del firewall en el 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 fuente de este tráfico está fuera de la subred permitida 192.168.1.0/30 . Utilice el
ssh 192.168.255.2 source 192.168.255.1comando para comprobar que no puede iniciar sesión en el dispositivo mediante SSH desde esta dirección de origen. Este paquete debe rechazarse y la información del encabezado del paquete debe registrarse en el búfer de registro del filtro de 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 la conexión SSH se rechaza. 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 permitido.
-
Genere tráfico telnet procedente de la dirección de circuito cerrado del dispositivo R1. La dirección fuente de este tráfico está fuera de la subred permitida 192.168.1.0/30 . Utilice el
telnet 192.168.255.2 source 192.168.255.1comando para comprobar que no puede iniciar sesión en el dispositivo con Telnet desde esta dirección de origen. Este paquete debe rechazarse y la información del encabezado del paquete se debe registrar 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 la conexión Telnet se rechaza. 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 permitido.
-
Utilice el
show firewall logcomando para comprobar que el búfer de registro del firewall en el dispositivo R2 contiene entradas que muestran que se rechazaron paquetes con una dirección de origen de 192.168.255.1.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
El resultado confirma que el tráfico de la dirección de origen 192.168.255.1 coincide con el término del terminal_access_denied filtro. La
Actioncolumna muestra unaRpara indicar que estos paquetes se rechazaron. 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.
