Ejemplo: Control de acceso de administración en dispositivos de red de Juniper
Nuestro equipo de pruebas de contenido ha validado y actualizado este ejemplo.
En este ejemplo, se muestra cómo limitar el acceso de administración a los dispositivos de Juniper Networking en función de un conjunto específico de direcciones IP permitidas. Este tipo de funcionalidad suele denominarse lista de control de acceso (ACL) y se implementa como un filtro de firewall sin estado en Junos OS.
Requisitos
Un dispositivo de red de Juniper conectado a una red de administración. Para ayudar a validar la configuración, debe haber al menos otro dispositivo con acceso a la red de administración que pueda iniciar conexiones SSH o Telnet con el dispositivo sometido a prueba (DUT). No se requiere ninguna configuración especial más allá de la inicialización básica del dispositivo (interfaz de administración y ruta estática relacionada, servicios del sistema, cuentas de inicio de sesión de usuario, etc.) antes de configurar este ejemplo.
Descripción general
Puede configurar un filtro de firewall para limitar las direcciones IP que pueden administrar un dispositivo. Este filtro de firewall debe incluir un término para denegar todo el tráfico, excepto las direcciones IP que pueden administrar el dispositivo. Debe aplicar el filtro de firewall a la interfaz de circuito cerrado (lo0) para asegurarse de que solo se filtra el tráfico de administración, es decir, el tráfico enviado al propio dispositivo.
Ejemplo de topología
Figura 1 muestra la topología de este ejemplo. El dispositivo R1 sirve como puerta de enlace predeterminada para la red de administración que tiene asignada la subred 172.16.0.0/24. Se aplica el filtro que limita el acceso de administración al dispositivo R2, convirtiéndolo en el DUT en este ejemplo. La estación de trabajo remota está autorizada para gestionar el DUT y se le ha asignado la dirección 10.0.0.1/32.
En este ejemplo:
Configure una lista de prefijos denominada manager-ip. Esta lista define el conjunto de direcciones IP que pueden administrar el dispositivo. En este ejemplo, la lista incluye la propia subred de administración (172.16.0.0/24) y la dirección IP de un usuario remoto autorizado (10.0.0.1/32).
Configure un filtro limit-mgmt-access de firewall que rechace todas las direcciones de origen excepto el conjunto específico de direcciones definido en la manager-ip lista de prefijos. Esto garantiza que solo las direcciones IP enumeradas en la lista de prefijos puedan administrar el dispositivo.
Aplique el limit-mgmt-access filtro a la interfaz de circuito cerrado. Cada vez que un paquete dirigido al dispositivo local llega a cualquier interfaz, la interfaz de circuito cerrado aplica el filtro limit-mgmt-access para limitar el acceso de administración solo a las direcciones permitidas.
Configurar una lista de direcciones IP para restringir el acceso de administración a un dispositivo
Procedimiento
Configuración rápida de CLI
Para configurar rápidamente este ejemplo, edite los siguientes comandos según sea necesario y péguelos en la CLI del dispositivo R2 en el nivel de [edit]
jerarquía. Para completar, la configuración incluye comandos para configurar SSH (para no usuarios) y los servicios del sistema Telnet. También proporciona la configuración de la interfaz de administración y la ruta estática relacionada. Estos comandos no son necesarios si el dispositivo ya tiene configurada esta funcionalidad.
Telnet no admite el inicio de sesión raíz en dispositivos de Juniper Networks. El inicio de sesión SSH para el usuario raíz no está configurado en este ejemplo. El dispositivo debe tener un usuario no root configurado para permitir el inicio de sesión remoto. Como alternativa, puede agregar el argumento a la instrucción para permitir el root-login allow
system services ssh
inicio de sesión del usuario raíz mediante SSH.
Asegúrese de emitir un commit
modo de configuración desde para activar los cambios.
Al aplicar un filtro que restrinja el acceso al dispositivo, considere la posibilidad de utilizar commit confirmed
. Esta opción revierte automáticamente la configuración si no puede emitir otra confirmación en el tiempo especificado.
set system services ssh set system services telnet set interfaces fxp0 unit 0 family inet address 172.16.0.253/24 set interfaces lo0 unit 0 family inet address 192.168.255.2/32 set routing-options static route 0.0.0.0/0 next-hop 172.16.0.254 no-readvertise set policy-options prefix-list manager-ip 172.16.0.0/24 set policy-options prefix-list manager-ip 10.0.0.1/32 set firewall filter limit-mgmt-access term block_non_manager from source-address 0.0.0.0/0 set firewall filter limit-mgmt-access term block_non_manager from source-prefix-list manager-ip except set firewall filter limit-mgmt-access term block_non_manager from protocol tcp set firewall filter limit-mgmt-access term block_non_manager from destination-port ssh set firewall filter limit-mgmt-access term block_non_manager from destination-port telnet set firewall filter limit-mgmt-access term block_non_manager then log set firewall filter limit-mgmt-access term block_non_manager then discard set firewall filter limit-mgmt-access term accept_everything_else then accept set interfaces lo0 unit 0 family inet filter input limit-mgmt-access
Procedimiento paso a paso
Los pasos siguientes requieren que navegue por varios niveles en la jerarquía de configuración. Para obtener instrucciones sobre cómo hacer eso, consulte Uso del editor de CLI en el modo de configuración de la Guía del usuario de CLI.
Configure las interfaces de administración y de circuito cerrado y asegúrese de que los servicios del sistema Telnet y SSH estén habilitados.
[edit] user@R2# set interfaces fxp0 unit 0 family inet address 172.16.0.253/24 user@R2# set interfaces lo0 unit 0 family inet address 192.168.255.2/32 user@R2# set routing-options static route 0.0.0.0/0 next-hop 172.16.0.254 no-readvertise user@R2# set system services ssh user@R2# set system services telnet
Defina el conjunto de direcciones de host permitidas en la lista de prefijos. Esta lista incluye prefijos para la subred de administración y para una única estación de administración remota autorizada.
[edit policy-options] user@R2# set prefix-list manager-ip 172.16.0.0/24 user@R2# set prefix-list manager-ip 10.0.0.1/32
Se hace referencia a la lista de prefijos en el filtro de firewall. El uso de una lista de prefijos facilita la actualización de las direcciones a las que se permite acceder al dispositivo. Esto se debe a que solo es necesario actualizar la lista de prefijos. No es necesario realizar ninguna edición en el propio filtro del firewall al agregar o quitar prefijos permitidos.
Configure un filtro de firewall para denegar el tráfico Telnet y SSH de todas las direcciones IP excepto las definidas en la lista de prefijos.
[edit firewall filter limit-mgmt-access] user@R2# set term block_non_manager from source-address 0.0.0.0/0 user@R2# set term block_non_manager from source-prefix-list manager-ip except user@R2# set term block_non_manager from protocol tcp user@R2# set term block_non_manager from destination-port ssh user@R2# set term block_non_manager from destination-port telnet user@R2# set term block_non_manager then discard
Tenga en cuenta el uso del
except
modificador de acción. El primer término coincide en todas las direcciones de origen posibles. El siguiente término invierte la coincidencia para las direcciones de origen en la lista de prefijos especificada. El resultado es que el tráfico de administración destinado al protocolo y los puertos especificados solo se acepta cuando el tráfico proviene de una dirección de la lista. Se descarta el tráfico de todos los demás prefijos de origen a la misma combinación de protocolo y puertos. En este ejemplo, se agrega una acción de registro para ayudar en la depuración y verificación de filtros.Configure un término predeterminado para aceptar el resto del tráfico. Esto garantiza que otros servicios y protocolos, por ejemplo, pings, BGP u OSPF, no se vean afectados por el filtro.
Consejo:El filtro de ejemplo es permisivo por diseño. Puede representar una amenaza para la seguridad, dado que acepta explícitamente todo el tráfico que no ha sido rechazado o descartado por los términos de filtro anteriores. Puede configurar un filtro de seguridad más fuerte enumerando explícitamente todos los protocolos y servicios que deben aceptarse, terminando el filtro con un término de denegación de todo, ya sea implícita o explícitamente, para filtrar todo el resto del tráfico. El inconveniente de un filtro restrictivo es que debe editarse cada vez que se agrega o elimina un servicio compatible.
[edit firewall filter imit-mgmt-access] user@R2# set term accept_everything_else then accept
Aplique el filtro de firewall sin estado a la interfaz de circuito cerrado como filtro de entrada. El tráfico enviado desde el dispositivo local no se filtra en este ejemplo.
[edit interfaces lo0 unit 0 ] user@R2# set family inet filter input limit-mgmt-access
Resultados
Confirme su trabajo introduciendo los siguientes show configuration
comandos desde el modo de configuración. Si el resultado no muestra la configuración deseada, repita las instrucciones de configuración en este ejemplo para corregirla.
user@R2# show policy-options prefix-list manager-ip { 172.16.0.0/24; 10.0.0.1/32; }
user@R2# show firewall filter limit-mgmt-access { term block_non_manager { from { source-address { 0.0.0.0/0; } source-prefix-list { manager-ip except; } protocol tcp; destination-port [ ssh telnet ]; } then { log; discard; } } term accept_everything_else { then accept; } }
user@R2# show interfaces fxp0 { unit 0 { family inet { address 172.16.0.253/24; } } } lo0 { unit 0 { family inet { filter { input limit-mgmt-access; } address 192.168.255.2/32; } } }
user@R2# show routing-options static { route 0.0.0.0/0 { next-hop 172.16.0.254; no-readvertise; } }
user@R2# show system services ssh; telnet;
Cuando esté satisfecho con su trabajo, ingrese commit
desde el modo de configuración.
Al aplicar un filtro que restrinja el acceso al dispositivo, considere la posibilidad de utilizar commit confirmed
. Esta opción revierte automáticamente la configuración si no puede emitir otra confirmación en el tiempo especificado.
Comprobar el filtro de firewall sin estado
Confirme que el filtro de firewall para limitar el acceso de administración 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 172.16.0.0/24 o del prefijo de host 10.0.0.1 asociado a la estación de administración remota.
Acción
Borre el registro del firewall en su enrutador o conmutador.
user@R2> clear firewall log
Desde un host conectado a la subred 172.16.0.0/24, como el dispositivo R1, use el
ssh 172.16.0.253
comando para iniciar una conexión con el DUT. De forma predeterminada, el dispositivo R1 obtiene su tráfico de la interfaz de salida utilizada para llegar al destino. Como resultado, el tráfico de prueba proviene de la dirección 172.16.0.254 de R1. Este tráfico no coincide con el block_non_manager término de filtro debido al modificador de acción para lasexcept
direcciones que coinciden con la lista de prefijos a la que se hace referencia. Este tráfico coincide con el término de filtro, accept_everything_else lo que hace que se acepteNota:Se le pedirá que guarde la clave de host SSH si este es el primer inicio de sesión SSH entre user estos dispositivos.
user@R1>ssh user@172.16.0.253 Password: Last login: Tue Sep 8 09:46:58 2020 from 10.107.199.39 --- JUNOS 20.2R1.10 Kernel 64-bit XEN JNPR-11.0-20200608.0016468_buil user@R2>
Cierre la sesión de la CLI en el dispositivo R2 para cerrar la sesión SSH.
user@R2> exit logout Connection to 172.16.0.253 closed. user@R1>
Nota:Repita este paso con el
telnet
comando. La conexión Telnet debería tener éxito.Utilice el
show firewall log
comando en el dispositivo R2 para comprobar que el búfer de registro del firewall en el dispositivo R2 no contiene entradas con una dirección de origen en la subred 172.16.0.0/24. Esto significa que la información del encabezado del paquete para este tráfico no se registra en el registro de filtro del firewall. En este ejemplo, solo se registra el tráfico que coincide con el block_non_manager término.user@R2> show firewall log user@R2>
Significado
El resultado confirma que se aceptan conexiones SSH (y Telnet) cuando provienen de la red de administración. También muestra que los paquetes que no coinciden con el block_non_manager término no se registran. Se esperan los mismos resultados si el tráfico SSH o Telnet es generado por la estación de administración remota a la que se asigna la dirección 10.0.0.1.
Verificar paquetes registrados y rechazados
Propósito
Compruebe que el filtro de firewall descarta correctamente el tráfico SSH y Telnet que no se origina en uno de los prefijos de la manager-ip lista de prefijos.
Acción
Generar tráfico SSH procedente de una dirección que no se especifica en la lista de manager-ip prefijos. Puede obtener la sesión desde la dirección de circuito cerrado del dispositivo R1 para simular una IP no autorizada. Como alternativa, inicie la conexión desde cualquier dispositivo remoto que no esté conectado a la subred de administración y al que no se le haya asignado una dirección IP de 10.0.0.1. Los paquetes para esta sesión SSH deben descartarse y la información del encabezado del paquete debe registrarse en el búfer de registro del filtro del firewall.
Nota:No debe esperar ningún mensaje de error o respuesta. Se agota el tiempo de espera del intento de conexión. Esto se debe a que el filtro de ejemplo utiliza una
discard
acción en lugar de unareject
.user@unauthorized-remote-host ssh user@172.16.0.253 ssh: connect to host 172.16.0.253 port 22: Connection timed out
El resultado muestra que la conexión SSH no se realiza correctamente. Esto confirma que el filtro bloquea correctamente el tráfico SSH cuando se envía desde una dirección de origen no permitida. Se espera el mismo resultado para las sesiones Telnet iniciadas por cualquier dirección de origen IP no autorizada.
Utilice el
show firewall log
comando para comprobar que el búfer de registro del firewall en el dispositivo R2 ahora contiene entradas para paquetes con una dirección de origen no autorizada.user@R2> show firewall log Log : Time Filter Action Interface Protocol Src Addr Dest Addr 11:35:46 limit-mgmt-access D fxp0.0 TCP 10.0.0.119 172.16.0.253 11:35:14 limit-mgmt-access D fxp0.0 TCP 10.0.0.119 172.16.0.253 11:34:58 limit-mgmt-access D fxp0.0 TCP 10.0.0.119 172.16.0.253
Significado
El resultado confirma que el tráfico de la dirección de origen 10.0.0.119 coincide con un término de registro en el limit-mgmt-access filtro. Recuerde que solo el block_non_manager término tiene una acción de registro en este ejemplo. La Action
columna muestra a D
para indicar que los paquetes se descartaron. Se confirma que la interfaz de entrada para el tráfico filtrado es el puerto fxp0.0
de administración del dispositivo. También se muestran el protocolo TCP
de transporte y las direcciones IP de los paquetes filtrados. Tenga en cuenta que la dirección 10.0.0.119
de origen para este tráfico no aparece en la lista de manager-ip prefijos.
Estos resultados confirman que el filtro de firewall funciona correctamente para este ejemplo.