EN ESTA PÁGINA
Ejemplo: Configurar permisos de usuario con niveles de privilegios de acceso
Cómo definir privilegios de acceso con instrucciones allow-configuration y deny-configuration
Ejemplo: Usar lógica aditiva con expresiones regulares para especificar privilegios de acceso
Ejemplo: Configurar permisos de usuario con privilegios de acceso para comandos de modo operativo
Privilegios de acceso de usuario
Usted (el administrador del sistema) concede a los usuarios acceso o permisos a comandos y niveles e instrucciones de jerarquía de configuración. Los usuarios sólo pueden ejecutar esos comandos y ver y configurar sólo aquellas instrucciones para las que tienen privilegios de acceso. También puede usar expresiones regulares extendidas para especificar qué comandos del modo operativo, instrucciones de configuración y jerarquías están permitidos o denegados para los usuarios. Esta práctica impide que usuarios no autorizados ejecuten comandos confidenciales o configuren instrucciones que puedan dañar la red.
Descripción general de los niveles de privilegios de acceso
Cada comando y declaración de configuración de CLI de nivel superior tiene un nivel de privilegio de acceso asociado. Los usuarios solo pueden ejecutar esos comandos y configurar y ver solo aquellas instrucciones para las que tienen privilegios de acceso. Uno o más indicadores de permisos definen los privilegios de acceso para cada clase de inicio de sesión.
Para cada clase de inicio de sesión, también puede permitir o denegar explícitamente el uso de comandos de modo operativo y modo de configuración y jerarquías de instrucciones que, de otro modo, se permitirían o denegarían mediante un nivel de privilegios especificado en la instrucción.permissions
- Indicadores de permisos de clase de inicio de sesión
- Permitir y denegar comandos individuales y jerarquías de instrucciones para clases de inicio de sesión
Indicadores de permisos de clase de inicio de sesión
Los indicadores de permisos se utilizan para conceder a un usuario acceso a los comandos del modo operativo y a los niveles e instrucciones de jerarquía de configuración. Los indicadores de permisos se configuran para la clase de inicio de sesión del usuario en el nivel jerárquico .[edit system login class]
Cuando se especifica un determinado indicador de permisos, el usuario obtiene acceso a los comandos y a los niveles e instrucciones de jerarquía de configuración que corresponden a ese indicador. Para conceder acceso a todos los comandos e instrucciones de configuración, utilice la marca de permisos.all
Cada comando enumerado representa ese comando y todos los subcomandos con ese comando como prefijo. Cada instrucción de configuración enumerada representa la parte superior de la jerarquía de configuración a la que ese indicador concede acceso.
La instrucción especifica uno o varios de los indicadores de permisos enumerados en .permissions
Tabla 1 Los indicadores de permisos no son acumulativos. Para cada clase, debe enumerar todos los indicadores de permisos necesarios, incluso para mostrar información y entrar en el modo de configuración.view
configure
Dos formas de permisos controlan el acceso de un usuario a las partes individuales de la configuración:
-
Formulario "sin formato": proporciona capacidad de solo lectura para ese tipo de permiso. Un ejemplo es .
interface
-
-control
form: proporciona capacidad de lectura y escritura para ese tipo de permiso. Un ejemplo es .interface-control
Para los indicadores de permisos que conceden acceso a los niveles e instrucciones de jerarquía de configuración, los indicadores de formulario sin formato conceden privilegios de solo lectura a esa configuración. Por ejemplo, la marca de permiso concede acceso de solo lectura al nivel jerárquico .interface
[edit interfaces]
El formulario del indicador concede acceso de lectura y escritura a esa configuración.-control
Por ejemplo, el indicador concede acceso de lectura y escritura al nivel de jerarquía.interface-control
[edit interfaces]
enumera los indicadores de permisos de clase de inicio de sesión que puede configurar incluyendo la instrucción en el nivel de jerarquía.Tabla 1permissions
[edit system login class class-name]
Los indicadores de permisos conceden un conjunto específico de privilegios de acceso. Cada indicador de permisos se muestra con los comandos de modo operativo o modo de configuración y los niveles e instrucciones de jerarquía de configuración para los que ese indicador concede acceso.
Indicador de permiso |
Description |
---|---|
Puede ver la configuración de acceso en modo operativo o en modo de configuración. |
|
Puede ver y configurar la información de acceso en el nivel jerárquico . |
|
Puede ver la información de la cuenta de usuario en modo operativo o modo de configuración. |
|
Puede ver la información de la cuenta de usuario y configurarla en el nivel jerárquico . |
|
Puede acceder a todos los comandos del modo operativo y del modo de configuración. Puede modificar la configuración en todos los niveles de jerarquía de configuración. |
|
Puede borrar (eliminar) información que el dispositivo aprende de la red y almacena en varias bases de datos de red (usando los comandos). |
|
Puede entrar en el modo de configuración (con el comando) y confirmar configuraciones (con el comando). |
|
Puede realizar todas las operaciones de nivel de control, todas las operaciones configuradas con los indicadores de permisos. |
|
Puede ver comandos de depuración de campos. Reservado para soporte de depuración. |
|
Puede ver la configuración del filtro del firewall en modo operativo o en modo de configuración. |
|
Puede ver y configurar la información del filtro del firewall en el nivel jerárquico . |
|
Puede leer y escribir en los medios extraíbles. |
|
Puede ver la configuración flow-tap en modo operativo o en modo de configuración. |
|
Puede ver y configurar información de flujo y pulsación en el nivel jerárquico . |
|
Puede realizar solicitudes de flow-tap al enrutador o conmutador. Por ejemplo, un cliente del Protocolo de control dinámico de tareas (DTCP) debe tener permiso para autenticarse como usuario administrativo. Nota:
La opción no se incluye en el indicador de permisos. |
|
Puede ver los datos del generador de perfiles. |
|
Puede ver la configuración de la interfaz en modo operativo y modo de configuración. |
|
Puede ver el chasis, la clase de servicio (CoS), los grupos, las opciones de reenvío y la información de configuración de las interfaces. Puede modificar la configuración en los siguientes niveles jerárquicos:
|
|
Puede realizar el mantenimiento del sistema, incluido el inicio de un shell local en el dispositivo y convertirse en el superusuario en el shell (usando el comando) y detener y reiniciar el dispositivo (usando los comandos). |
|
Puede tener acceso a la red mediante los comandos , , y . |
|
Puede ver la configuración de creación de reflejo de la sesión. |
|
Puede modificar la configuración de creación de reflejo de la sesión. |
|
Puede reiniciar procesos de software mediante el comando. |
|
Puede utilizar el comando para volver a una configuración confirmada anteriormente. |
|
Puede ver información general de enrutamiento, protocolo de enrutamiento y configuración de políticas de enrutamiento en modo de configuración y modo operativo. |
|
Puede ver y configurar enrutamiento general en el nivel de jerarquía, protocolos de enrutamiento en el nivel de jerarquía e información de políticas de enrutamiento en el nivel de jerarquía. |
|
Puede ver contraseñas y otras claves de autenticación en la configuración. |
|
Puede ver y modificar contraseñas y otras claves de autenticación en la configuración. |
|
Puede ver información de configuración de seguridad en modo operativo y modo de configuración. |
|
Puede ver y configurar la información de seguridad en el nivel jerárquico . |
|
Puede iniciar un shell local en el enrutador o conmutador mediante el comando. |
|
Puede ver la información de configuración del Protocolo simple de administración de redes (SNMP) en modo operativo o en modo de configuración. |
|
Puede ver y modificar la información de configuración de SNMP en el nivel jerárquico . |
|
|
Puede ver la información de configuración del almacenamiento de canal de fibra en el nivel jerárquico . |
|
Puede modificar la información de configuración del almacenamiento del canal de fibra en el nivel jerárquico . |
Puede ver información a nivel de sistema en modo operativo o modo de configuración. |
|
Puede ver y modificar la información de configuración de nivel de sistema en el nivel de jerarquía. |
|
Puede ver la configuración del archivo de seguimiento y configurar las propiedades del archivo de seguimiento. |
|
Puede modificar la configuración del archivo de seguimiento y configurar las propiedades del archivo de seguimiento. |
|
|
Puede ver la configuración unificada del borde en la jerarquía. |
|
Puede modificar la configuración unificada relacionada con el borde en la jerarquía. |
Puede usar varios comandos para mostrar valores y estadísticas actuales de todo el sistema, tabla de enrutamiento y específicos del protocolo. No se puede ver la configuración secreta. |
|
Puede ver toda la configuración, excepto secretos, scripts del sistema y opciones de eventos. Nota:
Solo los usuarios con el permiso pueden ver el script de confirmación, el script de operación o la configuración del script de eventos. |
Permitir y denegar comandos individuales y jerarquías de instrucciones para clases de inicio de sesión
De forma predeterminada, todos los comandos CLI de nivel superior y los niveles de jerarquía de configuración tienen niveles de privilegios de acceso asociados. Los usuarios sólo pueden ejecutar esos comandos y ver y configurar sólo aquellas instrucciones para las que tienen privilegios de acceso. Para cada clase de inicio de sesión, puede permitir y denegar explícitamente el uso de comandos de modo operativo y modo de configuración y jerarquías de instrucciones que, de otro modo, se permitirían o denegarían mediante un nivel de privilegios especificado en la instrucción.permissions
Los indicadores de permisos conceden al usuario acceso a los comandos del modo operativo y del modo de configuración, así como a los niveles e instrucciones de la jerarquía de configuración. Al especificar un indicador de permisos específico en la clase de inicio de sesión del usuario en el nivel jerárquico, se concede al usuario acceso a los comandos e instrucciones de jerarquía de configuración correspondientes.[edit system login class]
Para conceder acceso a todos los comandos e instrucciones de configuración, utilice la marca de permisos.all
Puede permitir o denegar explícitamente el uso de comandos e instrucciones configurando las instrucciones, , y para una clase de inicio de sesión.allow-commands
deny-commands
allow-configuration
deny-configuration
En las instrucciones, se utilizan expresiones regulares extendidas para definir qué comandos e instrucciones permitir o denegar a los usuarios asignados a la clase.
Ejemplo: Configurar permisos de usuario con niveles de privilegios de acceso
En este ejemplo se configuran los permisos de usuario para una clase de inicio de sesión. Los permisos de usuario para una clase de inicio de sesión se configuran para evitar que los usuarios realicen acciones de red no autorizadas. Los usuarios sólo pueden ejecutar esos comandos y ver y modificar sólo aquellas instrucciones para las que tienen privilegios de acceso. Esta restricción impide que usuarios no autorizados ejecuten comandos confidenciales o instrucciones de configuración que puedan dañar la red.
Requisitos
No se necesita ninguna configuración especial más allá de la inicialización del dispositivo antes de configurar este ejemplo.
Descripción general
Cada comando de CLI de nivel superior y cada instrucción de configuración tiene un nivel de privilegio de acceso asociado. Al configurar una clase de inicio de sesión, puede permitir o denegar explícitamente el uso de comandos e instrucciones de configuración y de modo operativo. Los usuarios sólo pueden ejecutar esos comandos y ver y configurar sólo aquellas instrucciones para las que tienen privilegios de acceso.
Los privilegios de acceso para cada clase de inicio de sesión se definen especificando uno o varios indicadores de permisos en la instrucción.permissions
Los indicadores de permisos conceden a un usuario acceso a comandos, instrucciones y jerarquías. Los indicadores de permisos no son acumulativos. Para cada clase de inicio de sesión, debe enumerar todos los indicadores de permisos necesarios, incluso para mostrar información y entrar en el modo de configuración.view
configure
Al especificar un indicador de permiso específico en la clase de inicio de sesión del usuario, se concede al usuario acceso a los comandos, instrucciones y jerarquías correspondientes. Para conceder acceso a todos los comandos e instrucciones de configuración, utilice la marca de permisos.all
Los indicadores de permisos proporcionan capacidad de solo lectura ("simple") y de lectura y escritura (formulario que termina en -control) para un tipo de permiso.
Los bits de permiso de la clase de inicio de sesión tienen prioridad sobre las expresiones regulares extendidas cuando un usuario emite un comando con el indicador de permisos habilitado.all
rollback
rollback
Para configurar los niveles de privilegios de acceso de usuario para una clase de inicio de sesión, incluya la instrucción en el nivel de jerarquía, seguida de los indicadores de permisos.permissions
[edit system login class class-name]
Configure varios permisos como una lista separada por espacios entre corchetes:
[edit system login] user@host# set class class-name permissions permission-flag user@host# set class class-name permissions [flag1 flag2 flag3]
Para ver los permisos disponibles, use la ayuda contextual de la CLI y escriba un signo de interrogación (?) después de la instrucción:permissions
[edit system login] user@host# set class class-name permissions ?
Configuración
En este ejemplo se configura la clase login .snmp-admin
Los usuarios de esta clase de inicio de sesión sólo pueden configurar y ver parámetros SNMP.
Configurar permisos de usuario con niveles de privilegios de acceso
Procedimiento paso a paso
Para configurar los privilegios de acceso para la clase de inicio de sesión:
-
Configure la clase de inicio de sesión con los indicadores , y permisos.
snmp-admin
configure
snmp
snmp-control
[edit system login] user@host# set class snmp-admin permissions [configure snmp snmp-control]
Los indicadores de permisos configurados proporcionan capacidad de lectura (snmp) y de lectura y escritura (snmp-control) para SNMP, y este es el único privilegio de acceso permitido para esta clase de inicio de sesión. Se deniegan todos los demás privilegios de acceso.
-
Cree las cuentas de usuario asignadas a la clase de inicio de sesión.
snmp-admin
[edit system login] user@host# set user snmpuser class snmp-admin authentication plain-text-password New password: Retype new password:
Resultados
En el modo de configuración, confirme la configuración introduciendo el comando.show system login
Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.
user@host# show system login class snmp-admin { permissions [ configure snmp snmp-control ]; } user snmpuser { class snmp-admin; authentication { encrypted-password "$ABC123"; ## SECRET-DATA } }
Después de configurar el dispositivo, ingrese al modo de configuración.commit
Verificación
Inicie sesión con un nombre de usuario asignado a la nueva clase de inicio de sesión y confirme que la configuración funciona correctamente.
Verificar la configuración de SNMP
Propósito
Compruebe que un usuario de la clase login puede configurar SNMP.snmp-admin
Acción
En el modo de configuración, configure las instrucciones SNMP en el nivel de jerarquía.[edit snmp]
[edit snmp] user@host# set name device1 user@host# set description switch1 user@host# set location Lab1 user@host# set contact example.com user@host# commit
Significado
El usuario de la clase login puede configurar parámetros SNMP.snmp-admin
El usuario puede configurar estos parámetros porque los indicadores de permisos especificados para esta clase incluyen bits de permisos snmp (capacidades de lectura) y snmp-control (capacidades de lectura y escritura).
Verificar la configuración que no es SNMP
Propósito
Compruebe que un usuario de la clase login no puede modificar instrucciones de configuración que no sean SNMP.snmp-admin
Acción
En el modo de configuración, intente configurar cualquier instrucción que no sea SNMP, como una instrucción de la jerarquía.interfaces
[edit] user@host# edit interfaces Syntax error, expecting <statement> or <identifier>.
Significado
El usuario de la clase de inicio de sesión no puede configurar la jerarquía porque los indicadores de permisos especificados para esta clase no lo permiten.snmp-admin
[edit interfaces]
En este caso, la CLI emite un mensaje de error.
Expresiones regulares para permitir y denegar comandos de modo operativo, instrucciones de configuración y jerarquías
Este tema contiene las siguientes secciones:
- Descripción de las instrucciones Allow y Deniy
- Descripción de la sintaxis de la instrucción Allow y Deny
- Descripción de la precedencia y coincidencia de instrucciones Allow and Deniy
- Descripción de las reglas de instrucción Permitir y Denegar
- Descripción de las diferencias para las instrucciones *-regexps
- Uso de expresiones regulares en servidores de autorización remotos
- Especificar expresiones regulares
- Operadores de expresiones regulares
- Ejemplos de expresiones regulares
Descripción de las instrucciones Allow y Deniy
Cada jerarquía de instrucciones de configuración y comando CLI de nivel superior tiene asociado un nivel de privilegios de acceso. Cada clase de inicio de sesión puede permitir o denegar explícitamente el uso de comandos de modo operativo y modo de configuración y jerarquías de configuración e instrucciones que de otro modo serían permitidas o denegadas por un nivel de privilegios. Los usuarios sólo pueden ejecutar esos comandos y ver y configurar sólo aquellas instrucciones para las que tienen privilegios de acceso.
Los privilegios de acceso para cada clase de inicio de sesión se definen mediante uno o más indicadores de permisos especificados en la instrucción en el nivel de jerarquía.permissions
[edit system login class class-name]
Además, puede permitir o denegar el uso de comandos y jerarquías de configuración específicos mediante la definición de expresiones regulares extendidas. Puede especificar las expresiones regulares configurando las instrucciones siguientes para una clase de inicio de sesión:
-
y —Permitir o denegar el acceso a los comandos del modo operativo y del modo de configuración.
allow-commands
deny-commands
-
y —Permitir o denegar el acceso a jerarquías de configuración específicas.
allow-configuration
deny-configuration
Nota:Estas instrucciones realizan una coincidencia más lenta, con más flexibilidad, especialmente en la coincidencia de comodines. Sin embargo, puede llevar mucho tiempo evaluar todas las instrucciones posibles si se configura un gran número de expresiones regulares de ruta de acceso completo o expresiones comodín, lo que posiblemente afecte negativamente al rendimiento.
-
y —Permitir o denegar el acceso a comandos concretos mediante cadenas de expresiones regulares.
allow-commands-regexps
deny-commands-regexps
-
y —Permitir o denegar el acceso a jerarquías de configuración específicas mediante cadenas de expresiones regulares.
allow-configuration-regexps
deny-configuration-regexps
Si las configuraciones existentes utilizan las instrucciones o, es posible que el uso de las mismas opciones de configuración con las instrucciones or no produzca los mismos resultados.allow/deny-commands
allow/deny-configuration
allow/deny-commands-regexps
allow/deny-configuration-regexps
Los métodos de búsqueda y coincidencia difieren en las dos formas de estas instrucciones.
Si se permiten explícitamente comandos y jerarquías de instrucciones de configuración mediante las instrucciones, se suman a los permisos que la instrucción ya define.allow/deny-*
permissions
Del mismo modo, la denegación explícita de comandos y jerarquías de instrucciones de configuración mediante las instrucciones quita los permisos que la instrucción ya define.allow/deny-*
permissions
Por ejemplo, en la siguiente configuración, el permiso permite a los usuarios de la clase login entrar en modo de configuración.configure
Además, la expresión permite a los usuarios modificar la configuración en el nivel de jerarquía y confirmarla.allow-configuration
[edit system services]
[edit system login class test] user@host# set permissions configure allow-configuration "system services"
De forma similar, en la siguiente configuración, el usuario de clase de inicio de sesión puede realizar todas las operaciones que permite el indicador de permisos, excepto que el usuario no puede ver ni modificar la configuración en el nivel de jerarquía:all
[edit system services]
[edit system login class test] user@host# set permissions all deny-configuration "system services"
Descripción de la sintaxis de la instrucción Allow y Deny
Sólo puede configurar una instrucción una vez en cada clase de inicio de sesión.allow/deny-*
Al configurar una instrucción:
-
Puede configurar tantas expresiones regulares como sea necesario.
-
Las expresiones regulares no distinguen entre mayúsculas y minúsculas
Las instrucciones son mutuamente excluyentes con las instrucciones, y las declaraciones son mutuamente excluyentes con las declaraciones.allow/deny-commands
allow/deny-commands-regexps
allow/deny-configuration
allow/deny-configuration-regexps
Por ejemplo, no puede configurar ambos y en la misma clase de inicio de sesión.allow-configuration
allow-configuration-regexps
Para definir privilegios de acceso a comandos, especifique expresiones regulares extendidas mediante las instrucciones y .allow-commands
deny-commands
Incluya cada expresión independiente completa entre paréntesis ( ) y utilice el símbolo de barra vertical ( | ) para separar las expresiones. No utilice espacios entre expresiones regulares que estén conectadas con el símbolo de barra vertical. La expresión completa está entre comillas dobles.
allow-commands "(cmd1)|(cmd2)|(cmdn)" allow-configuration "(config1)|(config2)|(confign)"
Por ejemplo:
[edit system login class test] user@host# set allow-commands "(ping .*)|(traceroute .*)|(show .*)|(configure .*)|(edit)|(exit)|(commit)|(rollback .*)"
Debe utilizar anclajes al especificar expresiones regulares complejas con la instrucción.allow-commands
Por ejemplo:
[edit system login] user@host# set class test allow-commands "(^monitor)|(^ping)|(^show)|(^exit)"
Para definir privilegios de acceso a partes de la jerarquía de configuración, especifique expresiones regulares extendidas en las instrucciones y .allow-configuration
deny-configuration
Incluya los trazados completos entre paréntesis ( ) y utilice el símbolo de barra vertical ( | ) para separar las expresiones. No utilice espacios entre expresiones regulares que estén conectadas con el símbolo de barra vertical. La expresión completa está entre comillas dobles.
allow-configuration "(config1)|(config2)|(confign)"
Por ejemplo:
[edit system login class test] user@host# set deny-configuration "(system login class)|(system services)"
Cuando especifique expresiones regulares extendidas mediante las instrucciones o, encierre cada expresión entre comillas (" ") y separe las expresiones con un espacio.allow/deny-commands-regexps
allow/deny-configuration-regexps
Incluya varias expresiones entre corchetes [ ]. Por ejemplo:
[edit system login class test] user@host# set allow-configuration-regexps ["interfaces .* description .*" "interfaces .* unit .* description .*" “interfaces .* unit .* family inet address .*" "interfaces.* disable"]
Los modificadores como , y no se admiten dentro de la cadena de expresión regular que se va a emparejar.set
log
count
Si usa un modificador, no se empareja nada.
Configuración correcta:
[edit system login class test] user@host# set deny-commands protocols
Configuración incorrecta:
[edit system login class test] user@host# set deny-commands "set protocols"
Descripción de la precedencia y coincidencia de instrucciones Allow and Deniy
De forma predeterminada, las expresiones y regular tienen prioridad sobre las expresiones.allow-commands
allow-configuration
deny-commands
deny-configuration
Por lo tanto, si configura el mismo comando para las instrucciones y , la operación allow tiene prioridad sobre la operación deny.allow-commands
deny-commands
Del mismo modo, si configura la misma instrucción para las instrucciones y , la operación allow tiene prioridad sobre la operación de denegación.allow-configuration
deny-configuration
Por ejemplo, la siguiente configuración permite a un usuario de la clase login instalar software mediante el comando, aunque la instrucción incluya el mismo comando:test
request system software add
deny-commands
[edit system login class test] user@host# set allow-commands "request system software add" user@host# set deny-commands "request system software add"
De forma similar, la siguiente configuración permite a un usuario de la prueba de clase login ver y modificar la jerarquía de configuración, aunque la instrucción incluya la misma jerarquía:test
[edit system services]
deny-configuration
[edit system login class test] user@host# set allow-configuration "system services" user@host# set deny-configuration "system services"
Si las instrucciones y tienen dos variantes diferentes de un comando, siempre se ejecuta la coincidencia más larga.allow-commands
deny-commands
La siguiente configuración permite que un usuario de la clase login ejecute el comando pero no el comando.test
commit synchronize
commit
Esto se debe a que es la coincidencia más larga entre y , y se especifica para .commit synchronize
commit
commit synchronize
allow-commands
[edit system login class test] user@host# set allow-commands "commit synchronize" user@host# set deny-commands commit
La siguiente configuración permite que un usuario de la clase login ejecute el comando pero no el comando.test
commit
commit synchronize
Esto se debe a que es la coincidencia más larga entre y , y se especifica para .commit synchronize
commit
commit synchronize
deny-commands
[edit system login class test] user@host# set allow-commands commit user@host# set deny-commands "commit synchronize"
A diferencia de las otras instrucciones, el comportamiento predeterminado de las instrucciones es que las expresiones y regular tienen prioridad sobre las expresiones and.*-regexps
deny-commands-regexps
deny-configuration-regexps
allow-commands-regexps
allow-configuration-regexps
Puede configurar la instrucción en el nivel de jerarquía para forzar que las expresiones regulares tengan prioridad sobre las instrucciones.regex-additive-logic
[edit system]
allow-configuration-regexps
deny-configuration-regexps
La configuración de la instrucción permite denegar las jerarquías de configuración en un nivel superior y, a continuación, sólo permitir el acceso del usuario a subjerarquías específicas.
Descripción de las reglas de instrucción Permitir y Denegar
Las instrucciones, , y tienen prioridad sobre los permisos de clase de inicio de sesión.allow/deny-commands
allow/deny-configuration
allow/deny-commands-regexps
allow/deny-configuration-regexps
Al configurar estas instrucciones, se aplican las siguientes reglas:
-
Las expresiones regulares para las instrucciones y también pueden incluir los comandos , , , , y .
allow-commands
deny-commands
commit
load
rollback
save
status
update
-
Los bits de permiso de la clase de inicio de sesión tienen prioridad sobre las expresiones regulares extendidas cuando un usuario emite el comando con el indicador de permisos habilitado.
all
rollback
rollback
-
Los usuarios no pueden emitir el comando al especificar una expresión regular extendida.
load override
Los usuarios solo pueden emitir los comandos , y configuración.merge
replace
patch
-
Puede utilizar el carácter comodín * al denotar expresiones regulares. Sin embargo, debe usarlo como parte de una expresión regular. No puede usar o como la única expresión.
[ * ]
[ .* ]
Además, no puede configurar la instrucción con una expresión como , porque se evalúa como .allow-configuration
(interfaces (description (|.*))
allow-configuration .*
Descripción de las diferencias para las instrucciones *-regexps
En esta sección se describen las diferencias entre las instrucciones y las instrucciones.allow/deny-configuration
allow/deny-configuration-regexps
Las instrucciones dividen la expresión regular en tokens y hacen coincidir cada pieza con cada parte de la ruta completa de la configuración especificada, mientras que las instrucciones coinciden con la cadena completa.allow/deny-configuration-regexps
allow/deny-configuration
Para las instrucciones, se configura un conjunto de cadenas en el que cada cadena es una expresión regular, con espacios entre los términos de la cadena.allow/deny-configuration-regexps
Esta sintaxis proporciona una coincidencia muy rápida, pero ofrece menos flexibilidad. Para especificar expresiones comodín, debe configurar caracteres comodín para cada token de la cadena delimitada por espacio que desee que coincida, lo que dificulta el uso de expresiones comodín para estas instrucciones.
Por ejemplo:
-
Expresión regular que coincide con un token mediante allow-configuration-regexps
En este ejemplo se muestra que es la única expresión coincidente con el primer token de la instrucción.
options
[edit system] login { class test { permissions configure; allow-configuration-regexps .*options; } }
La configuración anterior coincide con las siguientes instrucciones:
-
set policy-options condition dynamic-dbcondition
-
establecer opciones de enrutamiento ruta estática próximo salto static-routenext-hop
-
establecer opciones de eventos generar intervalo de tiempo de eventos eventseconds
La configuración anterior no coincide con las siguientes instrucciones:
-
system host-name host-options
-
Opciones de descripción de interfaces interface-name
-
-
Expresión regular que hace coincidir tres tokens mediante allow-configuration-regexps
En este ejemplo se muestra que es la única expresión coincidente con el tercer token de la instrucción.
ssh
[edit system] login { class test { permissions configure; allow-configuration-regexps ".* .* .*ssh"; } }
En el ejemplo anterior, los tres tokens incluyen , , y , respectivamente .
.*
.*
.*ssh
La configuración anterior coincide con las siguientes instrucciones:
-
system-host-name hostname-ssh
-
Servicios del sistema SSH
-
Servicios del sistema salientes-SSH
La configuración anterior no coincide con la siguiente instrucción:
-
Descripción de interfaces SSHinterface-name
-
Es más fácil utilizar la instrucción para restringir el acceso a la configuración que utilizar la instrucción. Ilustra el uso de las instrucciones y en diferentes configuraciones para lograr el mismo resultado de restringir el acceso a una configuración determinada. deny-configuration
deny-configuration-regexps
Tabla 2deny-configuration
deny-configuration-regexps
Configuración denegada |
Usando: |
Usando: |
Resultado |
|
[edit system] login { class test { permissions configure; allow-configuration .*; deny-configuration .*xnm-ssl; } } |
[edit system] login { class test { permissions configure; allow-configuration .*; deny-configuration-regexps ".* .* .*-ssl""; } } |
Se deniega la siguiente instrucción de configuración:
|
|
[edit system] login { class test { permissions configure; allow-configuration .*; deny-configuration ".*ssh"; } } |
[edit system] login { class test { permissions configure; allow-configuration .*; deny-configuration-regexps ".*ssh"; deny-configuration-regexps ".* .*ssh"; deny-configuration-regexps ".* .* .*ssh"; } } |
Se deniegan las siguientes instrucciones de configuración:
|
Aunque las instrucciones también son útiles cuando se desea una configuración sencilla, las instrucciones proporcionan un mejor rendimiento y superan la ambigüedad que existía al combinar expresiones en las instrucciones.allow/deny-configuration
allow/deny-configuration-regexps
allow/deny-configuration
Uso de expresiones regulares en servidores de autorización remotos
Puede usar expresiones regulares extendidas para especificar qué comandos de modo operativo y modo de configuración e instrucciones de configuración y jerarquías están permitidos o denegados para determinados usuarios. Estas expresiones regulares se especifican localmente en las instrucciones, y en el nivel jerárquico.allow/deny-commands
allow/deny-configuration
allow/deny-commands-regexps
allow/deny-configuration-regexps
[edit system login class class-name]
Estas expresiones regulares se especifican de forma remota especificando atributos TACACS+ o RADIUS específicos del proveedor de Juniper Networks en la configuración del servidor de autorización. Cuando se configuran los parámetros de autorización tanto local como remotamente, el dispositivo combina las expresiones regulares recibidas durante la autorización TACACS+ o RADIUS con cualquier expresión regular definida en el dispositivo local.
A partir de Junos OS versión 18.1, las instrucciones y se admiten para la autorización TACACS+.allow-commands-regexps
deny-commands-regexps
Cuando se especifican varias expresiones regulares en una configuración local mediante las instrucciones, , , o bien, se configuran las expresiones regulares entre paréntesis y se separan mediante el símbolo de barra vertical.allow-commands
deny-commands
allow-configuration
deny-configuration
Escriba la expresión completa entre comillas dobles. Por ejemplo, puede especificar varios parámetros con la siguiente sintaxis:allow-commands
allow-commands "(cmd1)|(cmd2)|(cmdn)"
El servidor de autorización RADIUS utiliza los siguientes atributos y sintaxis:
Juniper-Allow-Commands += "(cmd1)|(cmd2)|(cmd3)", Juniper-Deny-Commands += "(cmd1)|(cmd2)", Juniper-Allow-Configuration += "(config1)|(config2)", Juniper-Deny-Configuration += "(config1)|(config2)",
El servidor de autorización TACACS+ utiliza los siguientes atributos y sintaxis:
allow-commands = "(cmd1)|(cmd2)|(cmdn)" deny-commands = "(cmd1)|(cmd2)|(cmdn)" allow-configuration = "(config1)|(config2)|(confign)" deny-configuration = "(config1)|(config2)|(confign)"
Cuando se especifican varias expresiones regulares en una configuración local mediante las instrucciones, , , o bien, se configuran las expresiones regulares entre comillas dobles y se separan mediante el operador space.allow-commands-regexps
deny-commands-regexps
allow-configuration-regexps
deny-configuration-regexps
Escriba la expresión completa entre corchetes. Por ejemplo, puede especificar varios parámetros allow-commands con la siguiente sintaxis:
allow-commands-regexps [ "cmd1" "cmd2" "cmdn" ]
El servidor de autorización RADIUS utiliza los siguientes atributos y sintaxis:
Juniper-Allow-Configuration-Regexps += "(config1)|(config2)|(confign)", Juniper-Deny-Configuration-Regexps += "(config1)|(config2)|(confign)",
El servidor de autorización TACACS+ utiliza los siguientes atributos y sintaxis:
allow-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" deny-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" allow-configuration-regexps = "(config1)|(config2)|(confign)" deny-configuration-regexps = "(config1)|(config2)|(confign)"
Los servidores RADIUS y TACACS+ también admiten una sintaxis simplificada en la que se especifica cada expresión individual en una línea independiente. Por ejemplo, la sintaxis simplificada del servidor RADIUS es:
Juniper-Allow-Commands += "cmd1", Juniper-Allow-Commands += "cmd2", Juniper-Allow-Commands += "cmdn",
Del mismo modo, la sintaxis simplificada del servidor TACACS+ es:
allow-commands-regexps1 = "cmd1" allow-commands-regexps2 = "cmd2" allow-commands-regexpsn = "cmdn"
Tabla 3 diferencia la configuración de autorización local y la configuración de autorización del servidor TACACS+ mediante expresiones regulares.
Configuración local |
Configuración remota de TACACS+ |
---|---|
login { class local { permissions configure; allow-commands "(ping .*)|(traceroute .*)|(show .*)|(configure .*)|(edit)|(exit)|(commit)|(rollback .*)"; deny-commands .*; allow-configuration "(interfaces .* unit 0 family ethernet-switching vlan mem.* .*)|(interfaces .* native.* .*)|(interfaces .* unit 0 family ethernet-switching interface-mo.* .*)|(interfaces .* unit .*)|(interfaces .* disable)|(interfaces .* description .*)|(vlans .* vlan-.* .*)" deny-configuration .*; } } |
user = remote { login = username service = junos-exec { allow-commands1 = "ping .*" allow-commands2 = "traceroute .*" allow-commands3 = "show .*" allow-commands4 = "configure" allow-commands5 = "edit" allow-commands6 = "exit" allow-commands7 = "commit" allow-commands8 = ".*xml-mode" allow-commands9 = ".*netconf.*" allow-commands10 = ".*need-trailer" allow-commands11 = "rollback.*" allow-commands12 = "junoscript" deny-commands1 = ".*" allow-configuration1 = "interfaces .* unit 0 family ethernet-switching vlan mem.* .*" allow-configuration2 = "interfaces .* native.* .*" allow-configuration3 = "interfaces .* unit 0 family ethernet-switching interface-mo.* .*" allow-configuration4 = "interfaces .* unit .*" allow-configuration5 = "interfaces .* disable" allow-configuration6 = "interfaces .* description .*" allow-configuration7 = "interfaces .*" allow-configuration8 = "vlans .* vlan-.* .*" deny-configuration1 = ".*" local-user-name = local-username user-permissions = "configure" } } |
-
Debe permitir explícitamente el acceso al modo NETCONF, ya sea local o remotamente, emitiendo los tres comandos siguientes: , , y .
xml-mode
netconf
need-trailer
-
Cuando utilice la instrucción, debe permitir que todas las configuraciones deseadas utilicen la instrucción.
deny-configuration = ".*"
allow-configuration
Sin embargo, esta configuración puede afectar al límite de búfer de expresiones regulares permitidas para la instrucción.allow-configuration
Si se supera este límite, es posible que la configuración permitida no funcione.
Especificar expresiones regulares
Cuando especifique expresiones regulares para comandos e instrucciones de configuración, preste mucha atención a los siguientes ejemplos. Es posible que una expresión regular con sintaxis no válida no produzca los resultados deseados, incluso si la configuración se confirma sin ningún error.
Debe especificar expresiones regulares para los comandos y las instrucciones de configuración de la misma manera que ejecuta el comando o la instrucción completos. enumera las expresiones regulares para configurar privilegios de acceso para las jerarquías de instrucciones y.Tabla 4[edit interfaces]
[edit vlans]
Declaración |
Expresión regular |
Notas de configuración |
---|---|---|
[edit interfaces] El comando para interfaces se ejecuta de la siguiente manera: [edit] user@host# set interfaces interface-name unit interface-unit-number |
La instrucción está incompleta por sí misma y requiere la opción para ejecutarla. Como resultado, la expresión regular necesaria para denegar la configuración debe especificar toda la cadena ejecutable con el operador en lugar de variables de instrucción: [edit system login class class-name] user@host# set permissions configure user@host# set deny-configuration "interfaces .* unit .*" |
|
[edit vlans] El comando para VLAN se ejecuta de la siguiente manera: [edit] user@host# set vlans vlan-name vlan-id vlan-id |
Aquí, la instrucción está incompleta por sí misma y requiere la opción para ejecutarla. Como resultado, la expresión regular necesaria para permitir la configuración debe especificar toda la cadena ejecutable con el operador en lugar de variables de instrucción: [edit system login class class-name] user@host# set permissions configure user@host# set allow-configuration "vlans .* vlan-id .*" |
|
Operadores de expresiones regulares
Tabla 5 enumera los operadores de expresiones regulares comunes que puede usar para permitir o denegar los modos operativo y de configuración.
Las expresiones regulares de comando implementan las expresiones regulares extendidas (modernas), tal como se definen en POSIX 1003.2.
Operador |
Partido |
Ejemplo |
---|---|---|
| |
Uno de dos o más términos separados por la tubería. Cada término debe ser una expresión independiente completa entre paréntesis ( ), sin espacios entre la barra vertical y los paréntesis adyacentes. |
[edit system login class test] user@host# set permissions configure user@host# set allow-commands "(ping)|(traceroute)|(show system alarms)|(show system software)" user@host# set deny-configuration "(access)|(access-profile)|(accounting-options)|(applications)|(apply-groups)|(bridge-domains)|(chassis)|(class-of-service)" Con la configuración anterior, los usuarios asignados a la clase de inicio de sesión de prueba tienen acceso al modo operativo restringido solo a los comandos especificados en la instrucción. |
^ |
Al principio de una expresión, se usa para indicar dónde comienza el comando, donde puede haber cierta ambigüedad. |
[edit system login class test] user@host# set permissions interface user@host# set permissions interface-control user@host# set allow-commands "(^show) (log|interfaces|policer))|(^monitor)" Con la configuración anterior, los usuarios asignados a la clase de inicio de sesión de prueba tienen acceso a la visualización y configuración de la configuración de la interfaz. La instrucción concede acceso a comandos que comienzan con las palabras clave y . Para el primer filtro, los comandos especificados incluyen los comandos , y . |
$ |
Carácter al final de un comando. Se utiliza para denotar un comando que debe coincidir exactamente hasta ese punto. |
[edit system login class test] user@host# set permissions interface user@host# set allow-commands "(show interfaces$)" Con la configuración anterior, los usuarios asignados a la clase de inicio de sesión de prueba pueden ver la configuración de las interfaces en modo de configuración. Los usuarios también pueden ver la configuración de la interfaz con el comando de modo operativo. |
[ ] |
Rango de letras o dígitos. Para separar el principio y el final de un intervalo, utilice un guión ( -). |
[edit system login class test] user@host# set permissions clear user@host# set permissions configure user@host# set permissions network user@host# set permissions trace user@host# set permissions view user@host# set allow-configuration-regexps [ "interfaces [gx]e-.* unit [0-9]* description .*" ] Con la configuración anterior, los usuarios asignados a la clase de inicio de sesión de prueba tienen permisos de usuario de nivel de operador. Estos usuarios también tienen acceso para configurar interfaces dentro del intervalo especificado de nombre de interfaz y número de unidad (0 a 9). |
( ) |
Un grupo de comandos que indican una expresión completa e independiente que se va a evaluar. El resultado se evalúa como parte de la expresión general. Los paréntesis deben usarse junto con los operadores de tuberías, como se explicó. |
[edit system login class test] user@host# set permissions all user@host# set allow-commands "(clear)|(configure)" user@host# deny-commands "(mtrace)|(start)|(delete)" Con la configuración anterior, los usuarios asignados a la clase de inicio de sesión de prueba tienen permisos de nivel de superusuario y tienen acceso a los comandos especificados en la instrucción. |
* |
Cero o más términos. |
[edit system login class test] user@host# set permissions configure user@host# set deny-configuration "(system login class m*)" Con la configuración anterior, a los usuarios asignados a la clase de inicio de sesión de prueba cuyo nombre de usuario de inicio de sesión comienza con se les deniega el acceso a la configuración. |
+ |
Uno o más términos. |
[edit system login class test] user@host# set permissions configure user@host# set deny-configuration "(system login class m+)" Con la configuración anterior, a los usuarios asignados a la clase de inicio de sesión de prueba cuyo nombre de usuario de inicio de sesión comienza con se les deniega el acceso a la configuración. |
. |
Cualquier carácter excepto un espacio " ". |
[edit system login class test] user@host# set permissions configure user@host# set deny-configuration "(system login class m.)" Con la configuración anterior, a los usuarios asignados a la clase de inicio de sesión de prueba cuyo nombre de usuario de inicio de sesión comienza con se les deniega el acceso a la configuración. |
.* |
Todo desde el punto especificado en adelante. |
[edit system login class test] user@host# set permissions configure user@host# set deny-configuration "(system login class m .*)" Con la configuración anterior, a los usuarios asignados a la clase de inicio de sesión de prueba cuyo nombre de usuario de inicio de sesión comienza con se les deniega el acceso a la configuración. Del mismo modo, la instrucción deniega todo acceso a la configuración en el nivel de jerarquía. Nota:
|
No se admite el operador de expresión regular.!
Ejemplos de expresiones regulares
enumera las expresiones regulares utilizadas para permitir opciones de configuración en dos jerarquías de configuración: y —como ejemplo para especificar expresiones regulares.Tabla 6[edit system ntp server]
[edit protocols rip]
Tabla 6 No proporciona una lista completa de todas las expresiones regulares y palabras clave para todas las instrucciones de configuración y jerarquías. Las expresiones regulares enumeradas en la tabla sólo se validan para las jerarquías de instrucciones y .[edit system ntp server]
[edit protocols rip]
Jerarquía de instrucciones |
Expresiones regulares |
Configuración permitida |
Configuración denegada |
---|---|---|---|
|
|||
Clave key-number |
[edit system login class test] set permissions configure set allow-configuration-regexps [ "system ntp server .*" "system ntp server .* key .*" ] set deny-configuration-regexps [ "system ntp server .* version .*" "system ntp server .* prefer" ] |
|
|
Versión version-number |
[edit system login class test] set permissions configure set allow-configuration-regexps [ "system ntp server .*" "system ntp server .* version .*" ] set deny-configuration-regexps [ "system ntp server .* key .*" "system ntp server .* prefer" ] |
|
|
preferir |
[edit system login class test] set permissions configure set allow-configuration-regexps [ "system ntp server .*" "system ntp server .* prefer" ]; set deny-configuration-regexps [ "system ntp server .* key .*" "system ntp server .* version .*" ] |
|
|
|
|||
tamaño del mensaje message-size |
[edit system login class test] set permissions configure set allow-configuration-regexps "protocols rip message-size .*" set deny-configuration-regexps [ "protocols rip metric-in .*" "protocols rip route-timeout .*" "protocols rip update-interval .*" ] |
|
|
entrada métrica metric-in |
[edit system login class test] set permissions configure set allow-configuration-regexps "protocols rip metric-in .*" set deny-configuration-regexps [ "protocols rip message-size .*" "protocols rip route-timeout .*" "protocols rip update-interval .*" ] |
|
|
tiempo de espera de ruta route-timeout |
[edit system login class test] set permissions configure set allow-configuration-regexps "protocols rip route-timeout .*" set deny-configuration-regexps [ "protocols rip metric-in .*" "protocols rip message-size .*" "protocols rip update-interval .*" ] |
|
|
intervalo de actualización update-interval |
[edit system login class test] set permissions configure set allow-configuration-regexps "protocols rip update-interval .*" set deny-configuration-regexps [ "protocols rip metric-in .*" "protocols rip route-timeout .*" "protocols rip message-size .*" ] |
|
|
Cómo definir privilegios de acceso con instrucciones allow-configuration y deny-configuration
Puede definir privilegios de acceso para jerarquías de instrucciones de configuración mediante una combinación de los siguientes tipos de instrucciones:
indicadores de permisos
y declaraciones
allow-configuration
deny-configuration
Las marcas de permisos definen los límites más amplios de lo que una persona o clase de inicio de sesión puede acceder y controlar. Las instrucciones y contienen una o varias expresiones regulares que permiten o niegan jerarquías e instrucciones de configuración específicas.allow-configuration
deny-configuration
Las instrucciones y tienen prioridad sobre los indicadores de permisos y otorgan al administrador un control más preciso sobre exactamente qué jerarquías e instrucciones puede ver y configurar el usuario.allow-configuration
deny-configuration
En este tema se explica cómo definir instrucciones and de privilegios de acceso mostrando ejemplos de configuraciones de clases de inicio de sesión que utilizan estas instrucciones.allow-configuration
deny-configuration
Los ejemplos del 1 al 3 crean clases de inicio de sesión que permiten a los usuarios tener acceso a todos los comandos e instrucciones, excepto a los definidos en la instrucción.deny-configuration
Tenga en cuenta que el bit de permiso y el indicador de permiso se usan indistintamente.
Ejemplo 1
Para crear una clase de inicio de sesión que permita al usuario ejecutar todos los comandos y configurar todo excepto los parámetros telnet:
Ejemplo 2
Para crear una clase de inicio de sesión que permita al usuario ejecutar todos los comandos y configurar todo excepto las instrucciones dentro de cualquier clase de inicio de sesión cuyo nombre comience con "m":
-
Establezca los permisos de clase de inicio de sesión del usuario en .
all
[edit system login] user@host# set class all-except-login-class-m permissions all
-
Incluya la siguiente instrucción.
deny-configuration
[edit system login class all-except-login-class-m] user@host# set deny-configuration "system login class m.*"
Ejemplo 3
Para crear una clase de inicio de sesión que permita al usuario ejecutar todos los comandos y configurar todo excepto los niveles de jerarquía o :[edit system login class]
[edit system services]
-
Establezca los permisos de clase de inicio de sesión del usuario en .
all
[edit system login] user@host# set class all-except-login-class-or-system-services permissions all
-
Incluya la siguiente declaración:
deny-configuration
[edit system login class all-except-login-class-or-system-services] user@host# set deny-configuration "(system login class) | (system services)"
En los ejemplos siguientes se muestra cómo utilizar las instrucciones y para determinar los permisos inversos entre sí para el nivel de jerarquía.allow-configuration
deny-configuration
[edit system services]
Ejemplo 4
Para crear una clase de inicio de sesión que permita al usuario tener privilegios de configuración completos solo en el nivel de jerarquía:[edit system services]
-
Establezca los permisos de clase de inicio de sesión del usuario en .
configure
[edit system login] user@host# set class configure-only-system-services permissions configure
-
Incluya la siguiente declaración:
allow-configuration
[edit system login class configure-only-system-services] user@host# set allow-configuration "system services"
Ejemplo 5
Para crear una clase de inicio de sesión que permita al usuario permisos completos para todos los comandos y todas las jerarquías de configuración, excepto el nivel de jerarquía:[edit system services]
-
Establezca los permisos de clase de inicio de sesión del usuario en .
all
[edit system login] user@host# set class all-except-system-services permissions all
-
Incluya la siguiente instrucción.
deny-configuration
[edit system login class all-except-system-services] user@host# set deny-configuration "system services"
Ejemplo: Usar lógica aditiva con expresiones regulares para especificar privilegios de acceso
En este ejemplo se muestra cómo usar la lógica aditiva cuando se utilizan expresiones regulares para configurar privilegios de acceso a la configuración.
Requisitos
En este ejemplo se utiliza un dispositivo que ejecuta Junos OS versión 16.1 o posterior.
Descripción general
Puede definir expresiones regulares para controlar quién puede realizar cambios en la configuración y qué pueden cambiar. Estas expresiones regulares indican jerarquías de configuración específicas a las que los usuarios de una clase de inicio de sesión pueden acceder. Por ejemplo, puede definir expresiones regulares que permitan a los usuarios modificar un grupo de instancias de enrutamiento y definir expresiones regulares que impidan que los usuarios realicen cambios en cualquier otra instancia de enrutamiento o en otros niveles de configuración. Las expresiones regulares se definen configurando las instrucciones y para una clase de inicio de sesión.allow-configuration-regexps
deny-configuration-regexps
De forma predeterminada, la instrucción tiene prioridad sobre la instrucción.deny-configuration-regexps
allow-configuration-regexps
Si aparece una jerarquía de configuración en una instrucción para una clase de inicio de sesión, no es visible para los usuarios de esa clase, independientemente del contenido de la instrucción.deny-configuration-regexps
allow-configuration-regexps
Si una jerarquía de configuración no aparece en una instrucción, será visible para los usuarios de esa clase si aparece en una instrucción.deny-configuration-regexps
allow-configuration-regexps
Puede cambiar este comportamiento predeterminado habilitando la lógica aditiva para las instrucciones.*-configuration-regexps
Cuando se habilita la lógica aditiva, la instrucción tiene prioridad sobre la instrucción.allow-configuration-regexps
deny-configuration-regexps
Por lo tanto, si la instrucción deniega el acceso a todas las jerarquías de configuración en un nivel dado (protocolos .*) pero la instrucción permite el acceso a una subjerarquía (protocolos bgp .*), entonces de forma predeterminada el dispositivo deniega el acceso a las jerarquías para los usuarios de esa clase de inicio de sesión porque la instrucción tiene prioridad.deny-configuration-regexps
allow-configuration-regexps
deny-configuration-regexps
Sin embargo, si habilita la lógica aditiva, el dispositivo permite el acceso a la subjerarquía especificada para los usuarios de esa clase de inicio de sesión, ya que en este caso tiene prioridad.allow-configuration-regexps
Configuración
Procedimiento paso a paso
Para habilitar la lógica aditiva para permitir explícitamente que los usuarios de una clase de inicio de sesión determinada accedan a una o más jerarquías de configuración individuales:
-
Incluya la instrucción y deniegue explícitamente el acceso a las jerarquías de configuración.
deny-configuration-regexps
[edit system login class class-name] user@host# set deny-configuration-regexps ["regular expression 1" "regular expression 2" "regular expression 3"]
Por ejemplo:
[edit system login class class-name] user@host# set deny-configuration-regexps "protocols .*"
-
Incluya la instrucción y defina expresiones regulares para las jerarquías específicas que se van a permitir.
allow-configuration-regexps
[edit system login class class-name] user@host# set allow-configuration-regexps ["regular expression 1" "regular expression 2" "regular expression 3"]
Por ejemplo:
[edit system login class class-name] user@host# set allow-configuration-regexps ["protocols bgp .*" "protocols ospf .*"]
-
Habilite la lógica aditiva para las expresiones y regulares.
allow-configuration-regexps
deny-configuration-regexps
[edit system] user@host# set regex-additive-logic
-
Asigne la clase de inicio de sesión a uno o más usuarios.
[edit system login] user@host# set user username class class-name
-
Confirme los cambios.
Los usuarios asignados a esta clase de inicio de sesión tienen acceso a las jerarquías de configuración incluidas en la instrucción, pero no tienen acceso a las demás jerarquías especificadas en la instrucción.
allow-configuration-regexps
deny-configuration-regexps
Al configurar la instrucción, el cambio de comportamiento se aplica a todas las instrucciones y presentes en todas las clases de inicio de sesión.regex-additive-logic
allow-configuration-regexps
deny-configuration-regexps
Si habilita la lógica aditiva, debe evaluar las instrucciones existentes para detectar cualquier impacto y actualizar las expresiones regulares de esas instrucciones según corresponda.
Ejemplos
Usar expresiones regulares con lógica aditiva
Propósito
En esta sección se proporcionan ejemplos de expresiones regulares que utilizan la lógica aditiva para proporcionar ideas para crear configuraciones adecuadas para su sistema.
Permitir instancias de enrutamiento específicas
La siguiente clase de inicio de sesión de ejemplo incluye una expresión regular que permite la configuración de instancias de enrutamiento cuyos nombres comienzan por ; por ejemplo, , , , etc.CUST-VRF-
CUST-VRF-1
CUST-VRF-25
CUST-VRF-100
En el ejemplo también se incluye una expresión regular que impide la configuración de ninguna instancia de enrutamiento.
[edit system login class class-name] user@host# set permissions [configure routing-control view view-configuration] user@host# set deny-configuration-regexps "routing-instances .*" user@host# set allow-configuration-regexps "routing-instances CUST-VRF-.* .*"
De forma predeterminada, la instrucción tiene prioridad y la configuración anterior impide que los usuarios de la clase login configuren instancias de enrutamiento, independientemente del nombre.deny-configuration-regexps
Sin embargo, si configura la instrucción siguiente, la instrucción tiene prioridad.allow-configuration-regexps
Por lo tanto, los usuarios pueden configurar instancias de enrutamiento cuyos nombres empiecen por , pero los usuarios no pueden configurar ninguna otra instancia de enrutamiento.CUST-VRF-
[edit system] user@host# set regex-additive-logic
Permitir solo la configuración del par BGP
La siguiente clase de inicio de sesión de ejemplo incluye expresiones regulares que impiden la configuración en el nivel de jerarquía pero permiten la configuración de pares BGP:[edit protocols]
[edit system login class class-name] user@host# set permissions [configure routing-control view view-configuration] user@host# set deny-configuration-regexps "protocols .*" user@host# set allow-configuration-regexps "protocols bgp group *"
De forma predeterminada, la configuración anterior impide que los usuarios de la clase de inicio de sesión realicen cambios en las jerarquías de .[edit protocols]
Sin embargo, si configura la instrucción siguiente, los usuarios de la clase login pueden realizar cambios en los pares BGP, pero los usuarios no pueden configurar otros protocolos u otras instrucciones BGP fuera del nivel de jerarquía permitido.
[edit system] user@host# set regex-additive-logic
Verificación
Para comprobar que ha configurado correctamente los privilegios de acceso:
-
Configure una clase de inicio de sesión y confirme los cambios.
-
Asigne la clase de inicio de sesión a un archivo .username
-
Inicie sesión como se le asignó con la nueva clase de inicio de sesión.username
-
Intente configurar los niveles de jerarquía permitidos.
-
Debe poder configurar instrucciones en los niveles de jerarquía permitidos.
-
Los niveles de jerarquía que se niegan no deben ser visibles.
-
Cualquier expresión permitida o denegada debe tener prioridad sobre cualquier permiso concedido con la instrucción.
permissions
-
Ejemplo: Configurar permisos de usuario con privilegios de acceso para comandos de modo operativo
En este ejemplo se muestra cómo configurar clases de inicio de sesión personalizadas y asignar privilegios de acceso para comandos de modo operativo. Los usuarios de la clase de inicio de sesión sólo pueden ejecutar los comandos para los que tienen acceso. Esto evita que usuarios no autorizados ejecuten comandos confidenciales que podrían causar daños a la red.
Requisitos
En este ejemplo, se utilizan los siguientes componentes de hardware y software:
-
Un dispositivo de Juniper Networks
-
Un servidor TACACS+ (o RADIUS)
Antes de comenzar, establezca una conexión TCP entre el dispositivo y el servidor TACACS+. En el caso del servidor RADIUS, establezca una conexión UDP entre el dispositivo y el servidor RADIUS.
Descripción general y topología
Figura 1 ilustra una topología simple, donde el enrutador R1 es un dispositivo de Juniper Networks y tiene una conexión TCP establecida con un servidor TACACS+.
En este ejemplo se configura R1 con tres clases de inicio de sesión personalizadas: Clase 1, Clase2 y Clase 3. Cada clase define privilegios de acceso para el usuario mediante la configuración de la instrucción y la definición de expresiones regulares extendidas mediante las instrucciones y .permissions
allow-commands
deny-commands
El propósito de cada clase de inicio de sesión es el siguiente:
-
: define privilegios de acceso para el usuario sólo con la instrucción.Class1
allow-commands
Esta clase de inicio de sesión proporciona permisos de usuario a nivel de operador y autorización para reiniciar el dispositivo. -
: define privilegios de acceso para el usuario sólo con la instrucción.Class2
deny-commands
Esta clase de inicio de sesión proporciona permisos de usuario a nivel de operador y deniega el acceso a los comandos.set
-
: define privilegios de acceso para el usuario con las instrucciones y .Class3
allow-commands
deny-commands
Esta clase de inicio de sesión proporciona permisos de usuario de nivel de superusuario y autorización para acceder a las interfaces y ver la información del dispositivo. También deniega el acceso a los comandos y .edit
configure
El enrutador R1 tiene tres usuarios diferentes, User1, User2 y User3, asignados a las clases de inicio de sesión Class1, Class2 y Class3, respectivamente.
Configuración
- Configuración rápida de CLI
- Configurar parámetros de autenticación para el enrutador R1
- Configurar privilegios de acceso con la instrucción allow-commands (Class1)
- Configurar privilegios de acceso con la instrucción deny-commands (Class2)
- Configurar privilegios de acceso con las instrucciones allow-commands y deny-commands (Class3)
- Resultados
Configuración rápida de CLI
Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red, copie y pegue los comandos en la CLI en el nivel de jerarquía y, a continuación, ingrese al modo de configuración.[edit]
commit
R1
set system authentication-order tacplus set system authentication-order radius set system authentication-order password set system radius-server 10.209.1.66 secret "$ABC123" set system tacplus-server 10.209.1.66 secret "$ABC123" set system radius-options enhanced-accounting set system tacplus-options enhanced-accounting set system accounting events login set system accounting events change-log set system accounting events interactive-commands set system accounting traceoptions file auditlog set system accounting traceoptions flag all set system accounting destination tacplus server 10.209.1.66 secret "$ABC123" set system login class Class1 permissions clear set system login class Class1 permissions network set system login class Class1 permissions reset set system login class Class1 permissions trace set system login class Class1 permissions view set system login class Class1 allow-commands "request system reboot" set system login class Class2 permissions clear set system login class Class2 permissions network set system login class Class2 permissions reset set system login class Class2 permissions trace set system login class Class2 permissions view set system login class Class2 deny-commands set set system login class Class3 permissions all set system login class Class3 allow-commands configure set system login class Class3 deny-commands .* set system login user User1 uid 2001 set system login user User1 class Class1 set system login user User1 authentication encrypted-password "$ABC123" set system login user User2 uid 2002 set system login user User2 class Class2 set system login user User2 authentication encrypted-password "$ABC123" set system login user User3 uid 2003 set system login user User3 class Class3 set system login user User3 authentication encrypted-password "$ABC123" set system syslog file messages any any
Configurar parámetros de autenticación para el enrutador R1
Procedimiento paso a paso
Para configurar la autenticación del enrutador R1:
-
Configure el orden en que R1 intenta autenticar al usuario. En este ejemplo, primero se realiza la autenticación del servidor TACACS+, seguida de la autenticación del servidor RADIUS y, a continuación, de la contraseña local.
[edit system] user@R1# set authentication-order tacplus user@R1# set authentication-order radius user@R1# set authentication-order password
-
Configure el servidor TACACS+.
[edit system] user@R1# set tacplus-server 10.209.1.66 secret "$ABC123" user@R1# set tacplus-options enhanced-accounting user@R1# set accounting destination tacplus server 10.209.1.66 secret "$ABC123"
-
Configure el servidor RADIUS.
[edit system] user@R1# set radius-server 10.209.1.66 secret "$ABC123" user@R1# set radius-options enhanced-accounting
-
Configure los parámetros contables de R1.
[edit system] user@R1# set accounting events login user@R1# set accounting events change-log user@R1# set accounting events interactive-commands user@R1# set accounting traceoptions file auditlog user@R1# set accounting traceoptions flag all
Configurar privilegios de acceso con la instrucción allow-commands (Class1)
Procedimiento paso a paso
Para especificar expresiones regulares mediante la instrucción:allow-commands
-
Configure la clase de inicio de sesión Class1 y asigne permisos de usuario de nivel de operador.
[edit system login] user@R1# set class Class1 permissions [clear network reset trace view]
-
Configure la expresión regular para permitir que los usuarios de la clase reinicien el dispositivo.
allow-commands
[edit system login] user@R1# set class Class1 allow-commands "request system reboot"
-
Configure la cuenta de usuario para la clase de inicio de sesión Class1.
[edit system login] user@R1# set user User1 uid 2001 user@R1# set user User1 class Class1 user@R1# set user User1 authentication encrypted-password "$ABC123"
Configurar privilegios de acceso con la instrucción deny-commands (Class2)
Procedimiento paso a paso
Para especificar expresiones regulares mediante la instrucción:deny-commands
-
Configure la clase de inicio de sesión de Class2 y asigne permisos de usuario de nivel de operador.
[edit system login] user@R1# set class Class1 permissions [clear network reset trace view]
-
Configure la expresión regular para impedir que los usuarios de la clase ejecuten comandos.
deny-commands
set
[edit system login] user@R1# set class Class1 deny-commands "set"
-
Configure la cuenta de usuario para la clase de inicio de sesión Class2.
[edit system login] user@R1# set user User2 uid 2002 user@R1# set user User2 class Class2 user@R1# set user User2 authentication encrypted-password "$ABC123"
Configurar privilegios de acceso con las instrucciones allow-commands y deny-commands (Class3)
Procedimiento paso a paso
Para especificar expresiones regulares utilizando las instrucciones y :allow-commands
deny-commands
-
Configure la clase de inicio de sesión de Class3 y asigne permisos de nivel de superusuario.
[edit system login] user@R1# set class Class3 permissions all
-
Configure la expresión regular para impedir que los usuarios de la clase ejecuten comandos.
deny-commands
[edit system login] user@R1# set class Class3 deny-commands ".*"
-
Configure la expresión regular para permitir a los usuarios entrar en el modo de configuración.
allow-commands
[edit system login] user@R1# set class Class3 allow-commands configure
-
Configure la cuenta de usuario para la clase de inicio de sesión Class3.
[edit system login] user@R1# set user User3 uid 2003 user@R1# set user User3 class Class3 user@R1# set user User3 authentication encrypted-password "$ABC123"
Resultados
En el modo de configuración, confirme la configuración introduciendo el comando.show system
Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.
user@R1# show system authentication-order [ tacplus radius password ]; radius-server { 10.209.1.66 secret "$ABC123"; } tacplus-server { 10.209.1.66 secret "$ABC123"; } radius-options { enhanced-accounting; } tacplus-options { enhanced-accounting; } accounting { events [ login change-log interactive-commands ]; traceoptions { file auditlog; flag all; } destination { tacplus { server { 10.209.1.66 secret "$ABC123"; } } } } login { class Class1 { permissions [ clear network reset trace view ]; allow-commands "request system reboot"; } class Class2 { permissions [ clear network reset trace view ]; deny-commands set; } class Class3 { permissions all; allow-commands configure; deny-commands .*; } user User1 { uid 2001; class Class1; authentication { encrypted-password "$ABC123"; } } user User2 { uid 2002; class Class2; authentication { encrypted-password "$ABC123"; } } user User3 { uid 2003; class Class3; authentication { encrypted-password “$ABC123”; } } } syslog { file messages { any any; } }
Verificación
Inicie sesión con el nombre de usuario asignado con la nueva clase de inicio de sesión y confirme que la configuración funciona correctamente.
- Comprobación de la configuración de Class1
- Comprobación de la configuración de Class2
- Comprobación de la configuración de Class3
Comprobación de la configuración de Class1
Propósito
Compruebe que los permisos y comandos permitidos en la clase de inicio de sesión Class1 funcionan.
Acción
En el modo operativo, ejecute el comando.show system users
User1@R1> show system users 12:39PM up 6 days, 23 mins, 6 users, load averages: 0.00, 0.01, 0.00 USER TTY FROM LOGIN@ IDLE WHAT User1 p0 abc.example.net 12:34AM 12:04 cli User2 p1 abc.example.net 12:36AM 12:02 -cli (cli) User3 p2 abc.example.net 10:41AM 11 -cli (cli)
En el modo operativo, ejecute el comando.request system reboot
User1@R1> request system ? Possible completions: reboot Reboot the system
Significado
La clase de inicio de sesión Class1 a la que está asignado User1 tiene permisos de usuario de nivel de operador y permite a los usuarios de la clase ejecutar el comando.request system reboot
La clase de inicio de sesión de operador predefinida tiene los siguientes indicadores de permisos especificados:
: puede usar comandos para borrar (eliminar) la información que el dispositivo aprende de la red y almacena en varias bases de datos de red.clear
clear
: puede acceder a la red mediante los comandos , , y .network
ping
ssh
telnet
traceroute
: puede reiniciar procesos de software mediante el comando.reset
restart
trace: puede ver la configuración del archivo de seguimiento y configurar las propiedades del archivo de seguimiento.
view: puede utilizar varios comandos para mostrar valores y estadísticas actuales de todo el sistema, de la tabla de enrutamiento y específicos del protocolo. No se puede ver la configuración secreta.
Para la clase de inicio de sesión Class1, además de los permisos de usuario mencionados anteriormente, User1 puede ejecutar el comando.request system reboot
El primer resultado muestra los permisos de vista como un operador, y el segundo resultado muestra que el único comando que User1 puede ejecutar como operador es el comando.request system
request system reboot
Comprobación de la configuración de Class2
Propósito
Compruebe que los permisos y comandos permitidos para la clase de inicio de sesión Class2 funcionan.
Acción
En el modo operativo, ejecute el comando.ping
User2@R1> ping 10.209.1.66 ping 10.209.1.66 PING 10.209.1.66 (10.209.1.66): 56 data bytes 64 bytes from 10.209.1.66: icmp_seq=0 ttl=52 time=212.521 ms 64 bytes from 10.209.1.66: icmp_seq=1 ttl=52 time=212.844 ms 64 bytes from 10.209.1.66: icmp_seq=2 ttl=52 time=211.304 ms 64 bytes from 10.209.1.66: icmp_seq=3 ttl=52 time=210.963 ms ^C --- 10.209.1.66 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 210.963/211.908/212.844/0.792 ms
En el indicador de la CLI, compruebe los comandos disponibles.
User2@R1> ? Possible completions: clear Clear information in the system file Perform file operations help Provide help information load Load information from file monitor Show real-time debugging information mtrace Trace multicast path from source to receiver op Invoke an operation script ping Ping remote target quit Exit the management session request Make system-level requests restart Restart software process save Save information to file show Show system information ssh Start secure shell on another host start Start shell telnet Telnet to another host test Perform diagnostic debugging traceroute Trace route to remote host
Desde el indicador de la CLI, ejecute cualquier comando set.
User2@R1> set ^ unknown command.
Significado
La clase de inicio de sesión Class2 a la que está asignado User2 tiene permisos de usuario de nivel de operador y deniega el acceso a todos los comandos.set
Los indicadores de permisos especificados para la clase de inicio de sesión de operador predefinida son los mismos que los especificados para Class1.
Comprobación de la configuración de Class3
Propósito
Compruebe que los permisos y comandos permitidos para la clase de inicio de sesión Class3 funcionan.
Acción
En el modo operativo, compruebe los comandos disponibles.
User3@R1> ? Possible completions: configure Manipulate software configuration information
Ingrese al modo de configuración.
User3@R1> configure Entering configuration mode [edit] User3@R1#
Significado
La clase de inicio de sesión Class3 a la que está asignado User3 tiene permisos de superusuario (todos), pero esta clase solo permite a los usuarios ejecutar el comando.configure
La clase deniega el acceso a todos los demás comandos del modo operativo. Dado que las expresiones regulares especificadas en las instrucciones tienen prioridad sobre los permisos de usuario, Usuario3 en R1 sólo tiene acceso al modo de configuración y se le deniega el acceso a todos los demás comandos del modo operativo.allow/deny-commands
Ejemplo: Configurar permisos de usuario con privilegios de acceso para instrucciones de configuración y jerarquías
En este ejemplo se muestra cómo configurar clases de inicio de sesión personalizadas y asignar privilegios de acceso a jerarquías de configuración específicas. Los usuarios de la clase login sólo pueden ver y modificar las instrucciones de configuración y las jerarquías a las que tienen acceso. Esto evita que usuarios no autorizados modifiquen configuraciones de dispositivos que podrían causar daños a la red.
Requisitos
En este ejemplo, se utilizan los siguientes componentes de hardware y software:
-
Un dispositivo de Juniper Networks
-
Un servidor TACACS+ (o RADIUS)
Antes de comenzar, establezca una conexión TCP entre el dispositivo y el servidor TACACS+. En el caso del servidor RADIUS, establezca una conexión UDP entre el dispositivo y el servidor RADIUS.
Descripción general y topología
Figura 2 ilustra una topología simple, donde el enrutador R1 es un dispositivo de Juniper Networks y tiene una conexión TCP establecida con un servidor TACACS+.
En este ejemplo se configura R1 con dos clases de inicio de sesión personalizadas: Clase1 y Clase2. Cada clase define los privilegios de acceso para el usuario mediante la configuración de la instrucción y la definición de expresiones regulares extendidas mediante las instrucciones , , y .permissions
allow-configuration
deny-configuration
allow-configuration-regexps
deny-configuration-regexps
El propósito de cada clase de inicio de sesión es el siguiente:
-
: define privilegios de acceso para el usuario con las instrucciones y .Class1
allow-configuration
deny-configuration
Esta clase de inicio de sesión proporciona acceso solo para configurar la jerarquía y deniega el resto del acceso en el dispositivo.[edit interfaces]
Para ello, los permisos de usuario incluyen para proporcionar acceso a la configuración.configure
Además, la instrucción permite el acceso a la configuración de interfaces y la instrucción deniega el acceso a todas las demás jerarquías de configuración.allow-configuration
deny-configuration
Dado que la instrucción allow tiene prioridad sobre la instrucción deny, los usuarios asignados a la clase de inicio de sesión Class1 sólo pueden tener acceso al nivel de jerarquía.[edit interfaces]
-
: define privilegios de acceso para el usuario con las instrucciones y .Class2
allow-configuration-regexps
deny-configuration-regexps
Esta clase de inicio de sesión proporciona permisos de usuario a nivel de superusuario y permite explícitamente la configuración en varios niveles de jerarquía para las interfaces. También deniega el acceso a los niveles jerárquico y .[edit system]
[edit protocols]
El enrutador R1 tiene dos usuarios, User1 y User2, asignados a las clases de inicio de sesión Class1 y Class2, respectivamente.
Configuración
- Configuración rápida de CLI
- Configurar parámetros de autenticación para el enrutador R1
- Configurar privilegios de acceso con las instrucciones allow-configuration y deny-configuration (Class1)
- Configurar privilegios de acceso con las instrucciones allow-configuration-regexps y deny-configuration-regexps (Class2)
- Resultados
Configuración rápida de CLI
Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red, copie y pegue los comandos en la CLI en el nivel de jerarquía y, a continuación, ingrese al modo de configuración.[edit]
commit
R1
set system authentication-order tacplus set system authentication-order radius set system authentication-order password set system radius-server 10.209.1.66 secret "$ABC123" set system tacplus-server 10.209.1.66 secret "$ABC123" set system radius-options enhanced-accounting set system tacplus-options enhanced-accounting set system accounting events login set system accounting events change-log set system accounting events interactive-commands set system accounting traceoptions file auditlog set system accounting traceoptions flag all set system accounting destination tacplus server 10.209.1.66 secret "$ABC123" set system login class Class1 permissions configure set system login class Class1 allow-configuration "interfaces .* unit .*" set system login class Class1 deny-configuration .* set system login class Class2 permissions all set system login class Class2 allow-configuration-regexps [ "interfaces .* description .*" "interfaces .* unit .* description .*" "interfaces .* unit .* family inet address .*" "interfaces.* disable" ] set system login class Class2 deny-configuration-regexps [ "system" "protocols" ] set system login user User1 uid 2004 set system login user User1 class Class1 set system login user User1 authentication encrypted-password "$ABC123" set system login user User2 uid 2006 set system login user User2 class Class2 set system login user User2 authentication encrypted-password "$ABC123" set system syslog file messages any any
Configurar parámetros de autenticación para el enrutador R1
Procedimiento paso a paso
Para configurar la autenticación del enrutador R1:
-
Configure el orden en que R1 intenta autenticar al usuario. En este ejemplo, primero se realiza la autenticación del servidor TACACS+, seguida de la autenticación del servidor RADIUS y, a continuación, de la contraseña local.
[edit system] user@R1# set authentication-order tacplus user@R1# set authentication-order radius user@R1# set authentication-order password
-
Configure el servidor TACACS+.
[edit system] user@R1# set tacplus-server 10.209.1.66 secret "$ABC123" user@R1# set tacplus-options enhanced-accounting user@R1# set accounting destination tacplus server 10.209.1.66 secret "$ABC123"
-
Configure el servidor RADIUS.
[edit system] user@R1# set radius-server 10.209.1.66 secret "$ABC123" user@R1# set radius-options enhanced-accounting
-
Configure los parámetros contables R1.
[edit system] user@R1# set accounting events login user@R1# set accounting events change-log user@R1# set accounting events interactive-commands user@R1# set accounting traceoptions file auditlog user@R1# set accounting traceoptions flag all
Configurar privilegios de acceso con las instrucciones allow-configuration y deny-configuration (Class1)
Procedimiento paso a paso
Para especificar expresiones regulares mediante las instrucciones y :allow-configuration
deny-configuration
-
Configure la clase de inicio de sesión Class1 con permisos.
configure
[edit system login] user@R1# set class Class1 permissions configure
-
Configure la expresión regular para permitir a los usuarios de la clase ver y modificar parte del nivel de jerarquía.
allow-configuration
[edit interfaces]
[edit system login] user@R1# set class Class1 allow-configuration "interfaces .* unit .*"
-
Configure la expresión regular para denegar el acceso a todas las jerarquías de configuración.
deny-configuration
[edit system login] user@R1# set class Class1 deny-configuration .*
-
Configure la cuenta de usuario para la clase de inicio de sesión Class1.
[edit system login] user@R1# set user User1 uid 2004 user@R1# set user User1 class Class1 user@R1# set user User1 authentication encrypted-password "$ABC123"
Configurar privilegios de acceso con las instrucciones allow-configuration-regexps y deny-configuration-regexps (Class2)
Procedimiento paso a paso
Para especificar expresiones regulares mediante las instrucciones y :allow-configuration-regexps
deny-configuration-regexps
-
Configure la clase de inicio de sesión de Class2 y asigne permisos de superusuario (todos).
[edit system login] user@R1# set class Class2 permissions all
-
Configure la expresión regular para permitir a los usuarios de la clase tener acceso a varias jerarquías por debajo del nivel de jerarquía.
allow-configuration-regexps
[edit interfaces]
[edit system login] user@R1# set class Class2 allow-configuration-regexps [ "interfaces .* description .*" "interfaces .* unit .* description .*" "interfaces .* unit .* family inet address .*" "interfaces.* disable" ]
-
Configure la expresión regular para impedir que los usuarios de la clase vean o modifiquen la configuración en los niveles de jerarquía y .
deny-configuration-regexps
[edit system]
[edit protocols]
[edit system login] user@R1# set class Class2 deny-configuration-regexps [ "system" "protocols" ]
-
Configure la cuenta de usuario para la clase de inicio de sesión Class2.
[edit system login] user@R1# set user User2 uid 2006 user@R1# set user User2 class Class2 user@R1# set user User2 authentication encrypted-password "$ABC123"
Resultados
En el modo de configuración, confirme la configuración introduciendo el comando.show system
Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.
user@R1# show system authentication-order [ tacplus radius password ]; radius-server { 10.209.1.66 secret "$ABC123"; } tacplus-server { 10.209.1.66 secret "$ABC123"; } radius-options { enhanced-accounting; } tacplus-options { enhanced-accounting; } accounting { events [ login change-log interactive-commands ]; traceoptions { file auditlog; flag all; } destination { tacplus { server { 10.209.1.66 secret "$ABC123"; } } } } login { class Class1 { permissions configure; allow-configuration "interfaces .* unit .*"; deny-configuration .*; } class Class2 { permissions all; allow-configuration-regexps [ "interfaces .* description .*" "interfaces .* unit .* description .*" "interfaces .* unit .* family inet address .*" "interfaces.* disable" ]; deny-configuration-regexps [ "system" "protocols" ]; } user User1 { uid 2001; class Class1; authentication { encrypted-password "$ABC123"; } } user User2 { uid 2002; class Class2; authentication { encrypted-password "$ABC123"; } } } syslog { file messages { any any; } }
Verificación
Inicie sesión con el nombre de usuario asignado con la nueva clase de inicio de sesión y confirme que la configuración funciona correctamente.
Comprobar la configuración de Class1
Propósito
Compruebe que los permisos permitidos en la clase de inicio de sesión Class1 funcionan.
Acción
En el modo operativo, compruebe los comandos disponibles.
User1@R1> ? Possible completions: clear Clear information in the system configure Manipulate software configuration information file Perform file operations help Provide help information load Load information from file op Invoke an operation script quit Exit the management session request Make system-level requests save Save information to file set Set CLI properties, date/time, craft interface message start Start shell test Perform diagnostic debugging
En el modo de configuración, compruebe los permisos de configuración disponibles.
User1@R1# edit ? Possible completions: > interfaces Interface configuration
Significado
User1 tiene permisos de usuario, como se ve en el primer resultado.configure
Además, en el modo de configuración, User1 tiene acceso al nivel de jerarquía, pero solo a ese nivel de jerarquía, como se ve en el segundo resultado.interfaces
Comprobar la configuración de Class2
Propósito
Compruebe que la configuración de Class2 funciona como se esperaba.
Acción
En el modo de configuración, acceda a la configuración.interfaces
[edit interfaces] User2@R1# set ? Possible completions: <interface-name> Interface name + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups ge-0/0/3 Interface name > interface-range Interface ranges configuration > interface-set Logical interface set configuration > traceoptions Interface trace options
En el modo de configuración, acceda a las jerarquías de configuración.system
protocols
User2@R1# edit system ^ Syntax error, expecting <statement> or <identifier>. User2@R1# edit protocols ^ Syntax error, expecting <statement> or <identifier>.
Significado
El usuario2 tiene permisos para configurar interfaces en R1, pero el usuario no tiene permiso para ver o modificar los niveles de jerarquía o .[edit system]
[edit protocols]
Tabla de historial de cambios
La compatibilidad de la función depende de la plataforma y la versión que utilice. Utilice Feature Explorer a fin de determinar si una función es compatible con la plataforma.
allow-commands-regexps
deny-commands-regexps