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: Use lógica aditiva con expresiones regulares para especificar privilegios de acceso
Ejemplo: Configurar permisos de usuario con privilegios de acceso para comandos del modo operativo
Privilegios de acceso de usuario
Usted (el administrador del sistema) concede a los usuarios acceso o permisos a comandos y niveles de jerarquía de configuración y instrucciones. Los usuarios pueden ejecutar solo esos comandos y ver y configurar solo aquellas instrucciones para las que tienen privilegios de acceso. También puede usar expresiones regulares extendidas para especificar qué comandos de modo operativo, instrucciones de configuración y jerarquías se permiten o rechazan para los usuarios. Esta práctica impide que los usuarios no autorizados ejecuten comandos sensibles o configuren instrucciones que podrían causar daños en la red.
Descripción general de los niveles de privilegios de acceso
Cada instrucción de configuración y comando de CLI de nivel superior tiene un nivel de privilegios 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 permiso 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 los comandos del modo operativo y del modo de configuración y jerarquías de instrucción que, de otro modo, se permitirían o negarían mediante un nivel de privilegio especificado en la permissions
instrucción.
- Indicadores de permiso de clase de inicio de sesión
- Permitir y denegar comandos individuales y jerarquías de instrucción para clases de inicio de sesión
Indicadores de permiso de clase de inicio de sesión
Utilice indicadores de permiso para conceder a un usuario acceso a los comandos del modo operativo y a los niveles e instrucciones de jerarquía de configuración. Configure indicadores de permisos para la clase de inicio de sesión del usuario en el [edit system login class]
nivel jerárquico. Cuando se especifica un indicador de permisos determinado, el usuario obtiene acceso a los comandos y a los niveles e instrucciones de jerarquía de configuración que corresponden a esa marca. Para conceder acceso a todos los comandos y instrucciones de configuración, utilice el all
indicador de permisos.
Cada comando enumerado representa ese comando y todas las subcomands con ese comando como un prefijo. Cada instrucción de configuración enumerada representa la parte superior de la jerarquía de configuración a la que esa marca concede acceso.
La permissions
instrucción especifica uno o varios de los indicadores de permiso enumerados en Tabla 1. Los indicadores de permiso no son acumulativos. Para cada clase, debe enumerar todos los indicadores de permisos necesarios, incluso view
para mostrar información y configure
entrar en el modo de configuración. Dos formas de permisos controlan el acceso de un usuario a las partes individuales de la configuración:
-
Formulario "sin formato": ofrece capacidad de solo lectura para ese tipo de permiso. Un ejemplo es
interface
. -
-control
formulario: ofrece capacidad de lectura y escritura para ese tipo de permiso. Un ejemplo esinterface-control
.
En el caso de los indicadores de permiso 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 interface
marca de permisos concede acceso de solo lectura al [edit interfaces]
nivel de jerarquía. El -control
formulario de la marca otorga acceso de lectura y escritura a esa configuración. Por ejemplo, la interface-control
marca concede acceso de lectura y escritura al [edit interfaces]
nivel de jerarquía.
Tabla 1 enumera los indicadores de permisos de clase de inicio de sesión que puede configurar incluyendo la permissions
instrucción en el [edit system login class class-name]
nivel de jerarquía.
Los indicadores de permiso conceden un conjunto específico de privilegios de acceso. Cada marca de permisos se muestra con el modo operativo o los comandos del modo de configuración y los niveles e instrucciones de jerarquía de configuración para los que esa marca concede acceso.
Marca de permiso |
Descripción |
---|---|
Puede ver la configuración de acceso en modo operativo o modo de configuración. |
|
Puede ver y configurar la información de acceso en el |
|
Puede ver la información de cuentas de usuario en modo operativo o modo de configuración. |
|
Puede ver la información de cuentas de usuario y configurarla en el |
|
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 (mediante los |
|
Puede entrar en el modo de configuración (mediante el |
|
Puede realizar todas las operaciones a nivel de control, todas las operaciones configuradas con los indicadores de |
|
Puede ver comandos de depuración de campos. Reservado para soporte de depuración. |
|
Puede ver la configuración del filtro de firewall en modo operativo o modo de configuración. |
|
Puede ver y configurar la información del filtro de firewall en el |
|
Puede leer desde y escribir en el medio extraíble. |
|
Puede ver la configuración de toque de flujo en modo operativo o modo de configuración. |
|
Puede ver y configurar información de toque de flujo en el |
|
Puede hacer solicitudes de toque de flujo al enrutador o conmutador. Por ejemplo, un cliente del Protocolo de control de tareas dinámicas (DTCP) debe tener Nota:
La |
|
Puede ver datos del generador de perfiles. |
|
Puede ver la configuración de interfaz en modo operativo y modo de configuración. |
|
Puede ver información de configuración de chasis, clase de servicio (CoS), grupos, opciones de reenvío e información de configuración de interfaces. Puede modificar la configuración en los siguientes niveles jerárquicos:
|
|
Puede realizar mantenimiento del sistema, como iniciar un shell local en el dispositivo y convertirse en el superusuario en el shell (mediante el |
|
Puede acceder a la red mediante el uso de los |
|
Puede ver la configuración de |
|
Puede modificar la configuración de |
|
Puede reiniciar procesos de software mediante el |
|
Puede usar el |
|
Puede ver información general de enrutamiento, protocolo de enrutamiento y política de enrutamiento en el modo de configuración y el modo operativo. |
|
Puede ver y configurar enrutamiento general en el |
|
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 la información de configuración de seguridad en modo operativo y modo de configuración. |
|
Puede ver y configurar información de seguridad en el |
|
Puede iniciar un shell local en el enrutador o conmutador mediante el |
|
Puede ver la información de configuración del Protocolo de administración de red simple (SNMP) en el modo operativo o en el modo de configuración. |
|
Puede ver y modificar la información de configuración snmp en el |
|
Puede ver información a nivel del sistema en modo operativo o modo de configuración. |
|
Puede ver y modificar la información de configuración a nivel de sistema en el |
|
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 usar varios comandos para mostrar los valores y estadísticas específicos del protocolo, la tabla de enrutamiento y los valores y estadísticas actuales de todo el sistema. 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 permiso pueden ver el |
Permitir y denegar comandos individuales y jerarquías de instrucción para clases de inicio de sesión
De forma predeterminada, todos los comandos de CLI de nivel superior y los niveles de jerarquía de configuración tienen niveles de privilegios de acceso asociados. Los usuarios pueden ejecutar solo esos comandos y ver y configurar solo 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 los comandos del modo operativo y del modo de configuración y jerarquías de instrucción que, de otro modo, se permitirían o negarían mediante un nivel de privilegio especificado en la permissions
instrucción.
Las marcas de permiso conceden a un usuario acceso al modo operativo y a los comandos del modo de configuración, así como a los niveles y instrucciones de 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 [edit system login class]
nivel de jerarquía, concede al usuario acceso a los comandos y niveles de jerarquía de configuración correspondientes y a las instrucciones. Para conceder acceso a todos los comandos y instrucciones de configuración, utilice el all
indicador de permisos.
Puede permitir o denegar explícitamente el uso de comandos y instrucciones configurando las allow-commands
instrucciones , deny-commands
allow-configuration
, y deny-configuration
para una clase de inicio de sesión. En las instrucciones, se usan expresiones regulares extendidas para definir qué comandos e instrucciones permitir o denegar para 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. Configure los permisos de usuario para una clase de inicio de sesión para impedir que los usuarios realicen acciones de red no autorizadas. Los usuarios solo pueden ejecutar esos comandos y ver y modificar solo las instrucciones para las que tienen privilegios de acceso. Esta restricción impide que los usuarios no autorizados ejecuten comandos sensibles o configuren instrucciones que podrían causar daños a la red.
Requisitos
No se requiere 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 tienen un nivel de privilegio de acceso asociado. Cuando configure una clase de inicio de sesión, puede permitir o denegar explícitamente el uso del modo operativo y los comandos del modo de configuración y las instrucciones de configuración. Los usuarios pueden ejecutar solo esos comandos y ver y configurar solo aquellas instrucciones para las que tienen privilegios de acceso.
Para definir los privilegios de acceso para cada clase de inicio de sesión, especifique uno o más indicadores de permiso en la permissions
instrucción. Las marcas de permiso conceden a un usuario acceso a comandos, instrucciones y jerarquías. Los indicadores de permiso no son acumulativos. Para cada clase de inicio de sesión, debe enumerar todos los indicadores de permisos necesarios, incluso view
para mostrar información y configure
entrar en el modo de configuración. Al especificar un indicador de permiso específico en la clase de inicio de sesión del usuario, concede al usuario acceso a los comandos, instrucciones y jerarquías correspondientes. Para conceder acceso a todos los comandos y instrucciones de configuración, utilice el all
indicador de permisos. Los indicadores de permiso ofrecen capacidad de solo lectura (formulario "sin formato") y lectura y escritura (formulario que termina en -control) para un tipo de permiso.
Los all
bits de permiso de la clase de inicio de sesión tienen prioridad sobre las expresiones regulares extendidas cuando un usuario emite un rollback
comando con el rollback
indicador de permiso habilitado.
Para configurar niveles de privilegios de acceso de usuario para una clase de inicio de sesión, incluya la permissions
instrucción en el [edit system login class class-name]
nivel de jerarquía, seguida de los indicadores de permisos. Configure varios permisos como una lista separada por espacio que se adjunta 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, utilice la ayuda contextual de la CLI y escriba un signo de interrogación (?) después de la permissions
instrucción:
[edit system login] user@host# set class class-name permissions ?
Configuración
En este ejemplo, se configura la clase de inicio de snmp-admin
sesión. Los usuarios de esta clase de inicio de sesión solo pueden configurar y ver los 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
snmp-admin
clase de inicio de sesión con losconfigure
indicadores ,snmp
ysnmp-control
permisos.[edit system login] user@host# set class snmp-admin permissions [configure snmp snmp-control]
Los indicadores de permisos configurados ofrecen capacidad de lectura (snmp) y lectura y escritura (snmp-control) para SNMP, y este es el único privilegio de acceso permitido para esta clase de inicio de sesión. Todos los demás privilegios de acceso se niegan.
-
Cree las cuentas de usuario que se asignan a la clase de inicio de
snmp-admin
sesión.[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, ingrese el comando para confirmar la show system login
configuración. 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 commit
al modo de configuración.
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 snmp-admin
clase de inicio de sesión puede configurar SNMP.
Acción
En el modo de configuración, configure instrucciones SNMP en el [edit snmp]
nivel jerárquico.
[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 snmp-admin
clase de inicio de sesión puede configurar los parámetros SNMP. El usuario puede configurar estos parámetros porque los indicadores de permiso especificados para esta clase incluyen bits de permiso 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 snmp-admin
clase de inicio de sesión no puede modificar instrucciones de configuración que no son SNMP.
Acción
En el modo de configuración, intente configurar cualquier instrucción que no sea SNMP, como una instrucción en la interfaces
jerarquía.
[edit] user@host# edit interfaces Syntax error, expecting <statement> or <identifier>.
Significado
El usuario de la snmp-admin
clase de inicio de sesión no puede configurar la [edit interfaces]
jerarquía porque los indicadores de permiso especificados para esta clase no lo permiten. En este caso, la CLI emite un mensaje de error.
Expresiones regulares para permitir y negar comandos del modo operativo, instrucciones de configuración y jerarquías
Este tema contiene las siguientes secciones:
- Descripción de las instrucciones permitir y negar
- Descripción de la sintaxis de la instrucción Allow and Deny
- Descripción de la prioridad y la coincidencia de la instrucción Permitir y negar
- Descripción de las reglas de la instrucción Permitir y negar
- 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 expresión regular
Descripción de las instrucciones permitir y negar
Cada jerarquía de instrucción de configuración y comando de CLI de nivel superior tiene un nivel de privilegios de acceso asociado. Cada clase de inicio de sesión puede permitir o denegar explícitamente el uso de los comandos del modo operativo y del modo de configuración, así como de jerarquías e instrucciones de configuración que, de otro modo, serían permitidos o denegados por un nivel de privilegio. Los usuarios pueden ejecutar solo esos comandos y ver y configurar solo aquellas instrucciones para las que tienen privilegios de acceso.
Los privilegios de acceso para cada clase de inicio de sesión están definidos por uno o más indicadores de permiso especificados en la permissions
instrucción en el [edit system login class class-name]
nivel jerárquico. 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 siguientes instrucciones para una clase de inicio de sesión:
-
allow-commands
ydeny-commands
—Permitir o denegar el acceso a los comandos del modo operativo y del modo de configuración. -
allow-configuration
ydeny-configuration
—Permitir o denegar el acceso a jerarquías de configuración específicas.Nota:Estas instrucciones realizan una coincidencia más lenta, con más flexibilidad, especialmente en la coincidencia de comodín. Sin embargo, puede llevar mucho tiempo evaluar todas las instrucciones posibles si se configura un gran número de expresiones regulares de ruta completa o comodín, lo que posiblemente afecte negativamente al rendimiento.
-
allow-commands-regexps
ydeny-commands-regexps
—Permite o niega el acceso a comandos concretos mediante cadenas de expresiones regulares. -
allow-configuration-regexps
ydeny-configuration-regexps
—Permite o niega el acceso a jerarquías de configuración específicas mediante cadenas de expresiones regulares.
Si las configuraciones existentes usan las allow/deny-commands
instrucciones o allow/deny-configuration
, es posible que el uso de las mismas opciones de configuración con las allow/deny-commands-regexps
instrucciones o allow/deny-configuration-regexps
no produzca los mismos resultados. Los métodos de búsqueda y coincidencia difieren en las dos formas de estas instrucciones.
Permitir explícitamente comandos y jerarquías de instrucciones de configuración mediante las allow/deny-*
instrucciones se agrega a los permisos que la permissions
instrucción ya define. Del mismo modo, negar explícitamente los comandos y las jerarquías de instrucciones de configuración mediante las allow/deny-*
instrucciones elimina los permisos que la permissions
instrucción ya define.
Por ejemplo, en la siguiente configuración, el configure
permiso permite a los usuarios de la clase de inicio de sesión entrar en el modo de configuración. Además, la allow-configuration
expresión permite a los usuarios modificar la configuración en el [edit system services]
nivel de jerarquía y confirmarla.
[edit system login class test] user@host# set permissions configure allow-configuration "system services"
De manera similar, en la siguiente configuración, el usuario de clase de inicio de sesión puede realizar todas las operaciones que permite el all
indicador de permisos, excepto que el usuario no puede ver o modificar la configuración en el [edit system services]
nivel de jerarquía:
[edit system login class test] user@host# set permissions all deny-configuration "system services"
Descripción de la sintaxis de la instrucción Allow and Deny
Puede configurar una allow/deny-*
instrucción solo una vez en cada clase de inicio de sesión. Cuando configure una instrucción:
-
Puede configurar tantas expresiones regulares como sea necesario.
-
Las expresiones regulares no son sensibles a mayúsculas y minúsculas
Las allow/deny-commands
declaraciones se excluyen mutuamente con las allow/deny-commands-regexps
instrucciones, y las allow/deny-configuration
declaraciones son mutuamente excluyentes con las allow/deny-configuration-regexps
declaraciones. Por ejemplo, no puede configurar tanto como allow-configuration
allow-configuration-regexps
en la misma clase de inicio de sesión.
Para definir privilegios de acceso a comandos, especifique expresiones regulares extendidas mediante las allow-commands
instrucciones y deny-commands
. Encierre cada expresión independiente completa entre paréntesis ( ), y utilice el símbolo de canalización ( | ) para separar las expresiones. No utilice espacios entre expresiones regulares conectadas con el símbolo de canalización. La expresión completa se adjunta 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 usar anclajes al especificar expresiones regulares complejas con la allow-commands
instrucción. 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 allow-configuration
instrucciones y deny-configuration
. Encierre las rutas completas entre paréntesis ( ), y utilice el símbolo de canal ( | ) para separar las expresiones. No utilice espacios entre expresiones regulares conectadas con el símbolo de canalización. La expresión completa se adjunta 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 allow/deny-commands-regexps
instrucciones o allow/deny-configuration-regexps
, encierre cada expresión entre comillas (" "), y separe las expresiones mediante un espacio. Encierre 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"]
Modificadores como set
, log
y count
no se admiten dentro de la cadena de expresión regular que se va a coincidir. Si usa un modificador, no coincide 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 prioridad y la coincidencia de la instrucción Permitir y negar
De forma predeterminada, las allow-configuration
allow-commands
expresiones y regulares tienen prioridad sobre deny-commands
las deny-configuration
expresiones. Por lo tanto, si configura el mismo comando para las allow-commands
instrucciones y deny-commands
, a continuación, la operación permitir tiene prioridad sobre la operación deny. De manera similar, si configura la misma instrucción para las allow-configuration
instrucciones y deny-configuration
, a continuación, la operación permitir tiene prioridad sobre la operación denegar.
Por ejemplo, la siguiente configuración permite que un usuario de la test
clase de inicio de sesión instale software mediante el request system software add
comando, aunque la deny-commands
instrucción incluya el mismo comando:
[edit system login class test] user@host# set allow-commands "request system software add" user@host# set deny-commands "request system software add"
De manera similar, la siguiente configuración permite que un usuario de la test
prueba de clase de inicio de sesión vea y modifique la [edit system services]
jerarquía de configuración, aunque la deny-configuration
instrucción incluya la misma jerarquía:
[edit system login class test] user@host# set allow-configuration "system services" user@host# set deny-configuration "system services"
Si las allow-commands
instrucciones and deny-commands
tienen dos variantes diferentes de un comando, siempre se ejecuta la coincidencia más larga. La siguiente configuración permite que un usuario de la test
clase de inicio de sesión ejecute el commit synchronize
comando, pero no el commit
comando. Esto se debe a commit synchronize
que es la coincidencia más larga entre commit
y commit synchronize
, y se especifica para 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 test
clase de inicio de sesión ejecute el commit
comando, pero no el commit synchronize
comando. Esto se debe a commit synchronize
que es la coincidencia más larga entre commit
y commit synchronize
, y se especifica para 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 *-regexps
instrucciones es que las deny-commands-regexps
deny-configuration-regexps
expresiones y regulares tienen prioridad sobre allow-commands-regexps
y allow-configuration-regexps
las expresiones. Puede configurar la regex-additive-logic
instrucción en el [edit system]
nivel de jerarquía para que las allow-configuration-regexps
expresiones regulares tengan prioridad sobre las deny-configuration-regexps
instrucciones. La configuración de la instrucción le permite denegar jerarquías de configuración en un nivel superior y, luego, solo permitir el acceso del usuario a sub jerarquías específicas.
Descripción de las reglas de la instrucción Permitir y negar
Las allow/deny-commands
instrucciones , allow/deny-configuration
, allow/deny-commands-regexps
y allow/deny-configuration-regexps
tienen prioridad sobre los permisos de la clase de inicio de sesión. Cuando configure estas instrucciones, se aplican las siguientes reglas:
-
Las expresiones regulares para
allow-commands
edeny-commands
instrucciones también pueden incluir loscommit
comandos ,rollback
load
,save
,status
, yupdate
. -
Los
all
bits de permiso de la clase de inicio de sesión tienen prioridad sobre las expresiones regulares extendidas cuando un usuario emite elrollback
comando con larollback
marca de permiso habilitada. -
Los usuarios no pueden emitir el
load override
comando al especificar una expresión regular extendida. Los usuarios solo pueden emitir losmerge
comandos ,replace
ypatch
de configuración. -
Puede usar el carácter comodín * al denotar expresiones regulares. Sin embargo, debe usarla como parte de una expresión regular. No puede usar
[ * ]
ni[ .* ]
como la única expresión. Además, no puede configurar laallow-configuration
instrucción con una expresión como(interfaces (description (|.*))
, porque esto evalúa comoallow-configuration .*
.
Descripción de las diferencias para las instrucciones *-regexps
En esta sección se describen las diferencias entre las allow/deny-configuration
instrucciones y las instrucciones allow/deny-configuration-regexps
.
Las allow/deny-configuration-regexps
instrucciones dividen la expresión regular en tokens y coinciden con cada pieza con cada parte de la ruta completa de la configuración especificada, mientras que las allow/deny-configuration
instrucciones coinciden con la cadena completa. Para allow/deny-configuration-regexps
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. Esta sintaxis proporciona una coincidencia muy rápida, pero ofrece menos flexibilidad. Para especificar expresiones de comodín, debe configurar comodín para cada token de la cadena delimitada por el espacio que desea hacer coincidir, 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
options
es la única expresión coincide con el primer token de la instrucción.[edit system] login { class test { permissions configure; allow-configuration-regexps .*options; } }
La configuración anterior coincide con las siguientes instrucciones:
-
establecer la condición conditionde opciones de política dynamic-db
-
establecer opciones de enrutamiento de ruta static-route estática de salto siguiente next-hop
-
establecer opciones de eventos generar-intervalo de tiempo de evento eventseconds
La configuración anterior no coincide con las siguientes instrucciones:
-
opciones de host de nombre de sistema
-
opciones de descripción de interfaces interface-name
-
-
Expresión regular que coincide con tres tokens mediante allow-configuration-regexps
En este ejemplo, se muestra que
ssh
es la única expresión coincide con el tercer token de la instrucción.[edit system] login { class test { permissions configure; allow-configuration-regexps ".* .* .*ssh"; } }
En el ejemplo anterior, los tres tokens incluyen
.*
,.*
y.*ssh
, respectivamente.La configuración anterior coincide con las siguientes instrucciones:
-
sistema de nombre de hostname host-ssh
-
servicios de sistema ssh
-
servicios del sistema outbound-ssh
La configuración anterior no coincide con la siguiente instrucción:
-
descripción de interfaces interface-namessh
-
Es más fácil usar la instrucción para restringir el deny-configuration
acceso a la configuración que usar la deny-configuration-regexps
instrucción. Tabla 2 Muestra el uso de las deny-configuration
instrucciones y deny-configuration-regexps
en diferentes configuraciones para lograr el mismo resultado de restringir el acceso a una configuración determinada.
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 niega 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 niegan las siguientes instrucciones de configuración:
|
Aunque las allow/deny-configuration
instrucciones también son útiles cuando se desea una configuración simple, las allow/deny-configuration-regexps
instrucciones proporcionan un mejor rendimiento y superan la ambigüedad que existía al combinar expresiones en las allow/deny-configuration
instrucciones.
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, así como instrucciones de configuración y jerarquías se permiten o rechazan para ciertos usuarios. Estas expresiones regulares se especifican localmente en las allow/deny-commands
instrucciones , allow/deny-configuration
allow/deny-commands-regexps
y allow/deny-configuration-regexps
en el [edit system login class class-name]
nivel jerárquico. Estas expresiones regulares se especifican de forma remota mediante la especificación de los atributos TACACS+ o RADIUS específicos del proveedor de Juniper Networks en la configuración del servidor de autorización. Cuando configure parámetros de autorización local y remotamente, el dispositivo fusiona 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 allow-commands-regexps
instrucciones y deny-commands-regexps
se admiten para la autorización de TACACS+.
Cuando se especifican varias expresiones regulares en una configuración local mediante las allow-commands
instrucciones , deny-commands
, allow-configuration
o deny-configuration
, se configuran las expresiones regulares entre paréntesis y las separa mediante el símbolo de canalización. Encierra la expresión completa entre comillas dobles. Por ejemplo, puede especificar varios allow-commands
parámetros con la siguiente sintaxis:
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 allow-commands-regexps
instrucciones , deny-commands-regexps
, allow-configuration-regexps
o deny-configuration-regexps
, se configuran las expresiones regulares entre comillas dobles y las separa mediante el operador de espacio. Encierre 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",
De manera similar, 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 el uso de expresiones regulares.
Configuración local |
Configuración de TACACS+ remoto |
---|---|
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, mediante la emisión de los tres comandos siguientes:
xml-mode
ynetconf
.need-trailer
-
Cuando utilice la
deny-configuration = ".*"
instrucción, debe permitir todas las configuraciones deseadas mediante laallow-configuration
instrucción. Sin embargo, esta configuración puede afectar el límite permitido del búfer de expresiones regulares para laallow-configuration
instrucción. 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 ejemplos siguientes. Es posible que una expresión regular con sintaxis no válida no produzca los resultados deseados, incluso si la configuración se ha cometido sin ningún error.
Debe especificar expresiones regulares para los comandos y las instrucciones de configuración de la misma manera que se ejecuta el comando o instrucción completo. Tabla 4 enumera las expresiones regulares para configurar privilegios de acceso para las [edit interfaces]
jerarquías de instrucción y[edit vlans]
.
Declaración |
Expresión regular |
Notas de configuración |
---|---|---|
[edit interfaces] El [edit] user@host# set interfaces interface-name unit interface-unit-number |
La Como resultado, la expresión regular necesaria para denegar la [edit system login class class-name] user@host# set permissions configure user@host# set deny-configuration "interfaces .* unit .*" |
|
[edit vlans] El [edit] user@host# set vlans vlan-name vlan-id vlan-id |
Aquí, la Como resultado, la expresión regular necesaria para permitir la configuración debe especificar toda la [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 expresión regular comunes que puede usar para permitir o denegar los modos operativos 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 canalización. Cada término debe ser una expresión independiente completa entre paréntesis ( ), sin espacios entre la canalización 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 a solo los comandos especificados en la |
^ |
Al principio de una expresión, usada para indicar dónde comienza el comando, donde puede haber alguna 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 interfaz. La Para el primer filtro, los comandos especificados incluyen los |
$ |
Carácter al final de un comando. Se utiliza para indicar 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 interfaces en modo de configuración. Los usuarios también pueden ver la configuración de la interfaz con el comando de |
[ ] |
Rango de letras o dígitos. Para separar el inicio 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 a nivel de operador. Estos usuarios también tienen acceso para configurar interfaces dentro del rango especificado de nombre de interfaz y número de unidad (del 0 al 9). |
( ) |
Un grupo de comandos que indica una expresión completa e independiente que se va a evaluar. A continuación, se evalúa el resultado como parte de la expresión general. Los paréntesis se deben usar junto con los operadores de tuberías, como se explica. |
[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 superusuario y tienen acceso a los comandos especificados en la |
* |
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, se niega el acceso a la configuración a los usuarios asignados a la clase de inicio de sesión de prueba cuyo nombre de usuario de inicio de sesión comienza por |
+ |
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, se niega el acceso a la configuración a los usuarios asignados a la clase de inicio de sesión de prueba cuyo nombre de usuario de inicio de sesión comienza por |
. |
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, se niega el acceso a la configuración a los usuarios asignados a la clase de inicio de sesión de prueba cuyo nombre de usuario de inicio de sesión comienza por |
.* |
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, se niega el acceso a la configuración a los usuarios asignados a la clase de inicio de sesión de prueba cuyo nombre de usuario de inicio de sesión comienza por De manera similar, la Nota:
|
No !
se admite el operador de expresión regular.
Ejemplos de expresión regular
Tabla 6 enumera las expresiones regulares utilizadas para permitir opciones de configuración en dos jerarquías de configuración y[edit system ntp server]
[edit protocols rip]
—como ejemplo para especificar expresiones regulares.
Tabla 6 no proporciona una lista completa de todas las expresiones y palabras clave regulares para todas las jerarquías y instrucciones de configuración. Las expresiones regulares enumeradas en la tabla solo se validan para las [edit system ntp server]
jerarquías de instrucción y [edit protocols rip]
.
Jerarquía de la instrucción |
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 de 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 .*" ] |
|
|
métricas 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 permiso
allow-configuration
ydeny-configuration
declaraciones
Los indicadores de permiso definen los límites más grandes de lo que una persona o clase de inicio de sesión puede acceder y controlar. Las allow-configuration
instrucciones y deny-configuration
contienen una o más expresiones regulares que permiten o niegan jerarquías y instrucciones de configuración específicas. Las allow-configuration
instrucciones y deny-configuration
tienen prioridad sobre los indicadores de permiso y le dan al administrador un control más fino sobre exactamente las jerarquías y instrucciones que el usuario puede ver y configurar.
En este tema se explica cómo definir instrucciones y deny-configuration
privilegios de acceso mostrando allow-configuration
ejemplos de configuraciones de clase de inicio de sesión que utilizan estas instrucciones. Los ejemplos del 1 al 3 crean clases de inicio de sesión que permiten a los usuarios acceder a todos los comandos e instrucciones, excepto los definidos en la deny-configuration
instrucción.
Observe que el bit de permiso y la marca de permiso se utilizan 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 instrucciones, dentro de cualquier clase de inicio de sesión cuyo nombre comience por "m":
-
Establezca los permisos de la 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
deny-configuration
instrucción.[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 [edit system login class]
niveles de jerarquía:[edit system services]
-
Establezca los permisos de la 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
deny-configuration
instrucción:[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 usar las allow-configuration
instrucciones y deny-configuration
para determinar permisos inversos entre sí para el [edit system services]
nivel de jerarquía.
Ejemplo 4
Para crear una clase de inicio de sesión que permita al usuario tener privilegios de configuración completos solo en el [edit system services]
nivel jerárquico:
-
Establezca los permisos de la 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
allow-configuration
instrucción:[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 [edit system services]
nivel de jerarquía:
-
Establezca los permisos de la 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
deny-configuration
instrucción.[edit system login class all-except-system-services] user@host# set deny-configuration "system services"
Ejemplo: Use lógica aditiva con expresiones regulares para especificar privilegios de acceso
En este ejemplo, se muestra cómo usar lógica aditiva cuando se usan expresiones regulares para configurar privilegios de acceso a la configuración.
Requisitos
En este ejemplo, se usa 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 se les permite acceder a los usuarios de una clase de inicio de sesión. 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 otras instancias de enrutamiento o en otros niveles de configuración. Las expresiones regulares se definen configurando las allow-configuration-regexps
instrucciones y deny-configuration-regexps
para una clase de inicio de sesión.
De forma predeterminada, la deny-configuration-regexps
instrucción tiene prioridad sobre la allow-configuration-regexps
instrucción. Si aparece una jerarquía de configuración en una deny-configuration-regexps
instrucción para una clase de inicio de sesión, no es visible para los usuarios de esa clase, independientemente del contenido de la allow-configuration-regexps
instrucción. Si una jerarquía de configuración no aparece en una deny-configuration-regexps
instrucción, es visible para los usuarios de esa clase si aparece en una allow-configuration-regexps
instrucción.
Puede cambiar este comportamiento predeterminado habilitando la lógica aditiva para las *-configuration-regexps
instrucciones. Cuando se habilita la lógica aditiva, la allow-configuration-regexps
instrucción tiene prioridad sobre la deny-configuration-regexps
instrucción.
Por lo tanto, si la instrucción niega el deny-configuration-regexps
acceso a todas las jerarquías de configuración en un nivel dado (protocolos .*) pero la instrucción permite el allow-configuration-regexps
acceso a una sub-jerarquía (protocolos bgp .*), el dispositivo niega de forma predeterminada el acceso a las jerarquías para los usuarios de esa clase de inicio de sesión porque la deny-configuration-regexps
instrucción tiene prioridad. Sin embargo, si habilita la lógica aditiva, el dispositivo permite el acceso a la sub jerarquía especificada para los usuarios de esa clase de inicio de sesión, ya que la allow-configuration-regexps
prioridad tiene en este caso.
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
deny-configuration-regexps
instrucción y deniegue explícitamente el acceso a las jerarquías de configuración.[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
allow-configuration-regexps
instrucción y defina expresiones regulares para que se permitan las jerarquías específicas.[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
allow-configuration-regexps
expresiones regulares ydeny-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
allow-configuration-regexps
instrucción, pero no tienen acceso a las otras jerarquías especificadas en ladeny-configuration-regexps
instrucción.
Cuando configure la regex-additive-logic
instrucción, el cambio de comportamiento se aplica a todas las allow-configuration-regexps
instrucciones deny-configuration-regexps
presentes en todas las clases de inicio de sesión. Si habilita la lógica aditiva, debe evaluar las instrucciones existentes para cualquier impacto y actualizar las expresiones regulares en 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 lógica aditiva para darle 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 CUST-VRF-
; por ejemplo, CUST-VRF-1
, CUST-VRF-25
, CUST-VRF-100
, etc. El ejemplo también incluye una expresión regular que impide la configuración de cualquier 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 deny-configuration-regexps
instrucción tiene prioridad y la configuración anterior impide que los usuarios de la clase de inicio de sesión configuren cualquier instancia de enrutamiento, independientemente del nombre.
Sin embargo, si configura la siguiente instrucción, la allow-configuration-regexps
instrucción tiene prioridad. Por lo tanto, los usuarios pueden configurar instancias de enrutamiento cuyos nombres comienzan por CUST-VRF-
, pero los usuarios no pueden configurar ninguna otra instancia de enrutamiento.
[edit system] user@host# set regex-additive-logic
Permitir solo la configuración de 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 [edit protocols]
configuración de los pares del BGP:
[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 cualquier jerarquía en [edit protocols]
.
Sin embargo, si configura la siguiente instrucción, los usuarios de la clase de inicio de sesión pueden realizar cambios en los pares del BGP, pero 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 establecido 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 una username.
-
Inicie sesión como asignado username con la nueva clase de inicio de sesión.
-
Intente configurar los niveles de jerarquía permitidos.
-
Debería poder configurar instrucciones en los niveles de jerarquía permitidos.
-
Los niveles de jerarquía denegados no deben ser visibles.
-
Cualquier expresión permitida o denegada debe tener prioridad sobre cualquier permiso otorgado con la
permissions
instrucción.
-
Ejemplo: Configurar permisos de usuario con privilegios de acceso para comandos del 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 solo pueden ejecutar los comandos para los que tienen acceso. Esto impide que los usuarios no autorizados ejecuten comandos sensibles que podrían causar daños a la red.
Requisitos
En este ejemplo, se utilizan los siguientes componentes de hardware y software:
-
Un dispositivo 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 muestra una topología simple, en la que 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: Class1, Class2 y Class3. Cada clase define los privilegios de acceso para el usuario mediante la configuración de la instrucción y la permissions
definición de expresiones regulares extendidas mediante las allow-commands
instrucciones y deny-commands
.
El propósito de cada clase de inicio de sesión es el siguiente:
-
Class1— Define los privilegios de acceso para el usuario únicamente con la
allow-commands
instrucción. Esta clase de inicio de sesión proporciona permisos de usuario a nivel de operador y autorización para reiniciar el dispositivo. -
Class2— Define los privilegios de acceso para el usuario únicamente con la
deny-commands
instrucción. Esta clase de inicio de sesión proporciona permisos de usuario a nivel de operador y niega el acceso aset
los comandos. -
Class3— Define los privilegios de acceso para el usuario con las
allow-commands
instrucciones ydeny-commands
. Esta clase de inicio de sesión proporciona permisos de usuario a nivel de superusuario y autorización para acceder a las interfaces y ver la información del dispositivo. También niega el acceso a losedit
comandos yconfigure
.
El enrutador R1 tiene tres usuarios diferentes, User1, User2 y User3 asignados a las clases de inicio de sesión de 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 [edit]
nivel de jerarquía y, luego, ingrese commit
en el modo de configuración.
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 el que R1 intenta autenticar al usuario. En este ejemplo, la autenticación del servidor TACACS+ es primero, seguida por la autenticación del servidor RADIUS y, luego, 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 de contabilidad 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 allow-commands
instrucción:
-
Configure la clase de inicio de sesión de Class1 y asigne permisos de usuario a nivel de operador.
[edit system login] user@R1# set class Class1 permissions [clear network reset trace view]
-
Configure la
allow-commands
expresión regular para permitir que los usuarios de la clase reinicien el dispositivo.[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 de 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 deny-commands
instrucción:
-
Configure la clase de inicio de sesión de Class2 y asigne permisos de usuario a nivel de operador.
[edit system login] user@R1# set class Class1 permissions [clear network reset trace view]
-
Configure la
deny-commands
expresión regular para evitar que los usuarios de la clase ejecutenset
comandos.[edit system login] user@R1# set class Class1 deny-commands "set"
-
Configure la cuenta de usuario para la clase de inicio de sesión de 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 mediante las allow-commands
instrucciones y deny-commands
:
-
Configure la clase de inicio de sesión de Class3 y asigne permisos a nivel de superusuario.
[edit system login] user@R1# set class Class3 permissions all
-
Configure la
deny-commands
expresión regular para evitar que los usuarios de la clase ejecuten comandos.[edit system login] user@R1# set class Class3 deny-commands ".*"
-
Configure la
allow-commands
expresión regular para permitir que los usuarios entren en el modo de configuración.[edit system login] user@R1# set class Class3 allow-commands configure
-
Configure la cuenta de usuario para la clase de inicio de sesión de 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, ingrese el comando para confirmar la show system
configuración. 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 como el nombre de usuario asignado con la nueva clase de inicio de sesión y confirme que la configuración funciona correctamente.
- Verificación de la configuración de Class1
- Verificar la configuración de Class2
- Verificar la configuración de Class3
Verificación de la configuración de Class1
Propósito
Compruebe que los permisos y los comandos permitidos en la clase de inicio de sesión de Class1 funcionen.
Acción
En el modo operativo, ejecute el show system users
comando.
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 request system reboot
comando.
User1@R1> request system ? Possible completions: reboot Reboot the system
Significado
La clase de inicio de sesión de Class1 a la que se asigna User1 tiene permisos de usuario a nivel de operador y permite a los usuarios de la clase ejecutar el request system reboot
comando.
La clase de inicio de sesión de operador predefinida tiene los siguientes indicadores de permiso especificados:
clear— Puede usar
clear
comandos para borrar (eliminar) información que el dispositivo aprende de la red y almacena en varias bases de datos de red.network— Puede acceder a la red mediante los
ping
comandos ,ssh
,telnet
ytraceroute
.reset— Puede reiniciar los procesos de software mediante el
restart
comando.trace— Puede ver la configuración del archivo de seguimiento y configurar las propiedades del archivo de seguimiento.
view— Puede usar varios comandos para mostrar estadísticas y valores específicos del protocolo, tabla de enrutamiento y valores actuales de todo el sistema. No se puede ver la configuración secreta.
Para la clase de inicio de sesión de Class1, además de los permisos de usuario mencionados anteriormente, User1 puede ejecutar el request system reboot
comando. El primer resultado muestra los permisos de vista como operador y el segundo resultado muestra que el único request system
comando que User1 puede ejecutar como operador es el request system reboot
comando.
Verificar la configuración de Class2
Propósito
Compruebe que los permisos y los comandos permitidos para la clase de inicio de sesión de Class2 funcionen.
Acción
En el modo operativo, ejecute el ping
comando.
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 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 símbolo de CLI, ejecute cualquier comando set.
User2@R1> set ^ unknown command.
Significado
La clase de inicio de sesión de Class2 a la que se asigna User2 tiene permisos de usuario a nivel de operador y niega el acceso a todos los set
comandos.
Las marcas de permiso especificadas para la clase de inicio de sesión de operador predefinida son las mismas que las especificadas para Class1.
Verificar la configuración de Class3
Propósito
Compruebe que los permisos y los comandos permitidos para la clase de inicio de sesión de Class3 funcionen.
Acción
En el modo operativo, compruebe los comandos disponibles.
User3@R1> ? Possible completions: configure Manipulate software configuration information
Acceda al modo de configuración.
User3@R1> configure Entering configuration mode [edit] User3@R1#
Significado
La clase de inicio de sesión de Class3 a la que se asigna User3 tiene permisos de superusuario (todos), pero esta clase solo permite a los usuarios ejecutar el configure
comando. La clase niega el acceso a todos los demás comandos del modo operativo. Dado que las expresiones regulares especificadas en las allow/deny-commands
instrucciones tienen prioridad sobre los permisos de usuario, User3 en R1 solo tiene acceso al modo de configuración y se le niega el acceso a todos los demás comandos del modo operativo.
Ejemplo: Configurar permisos de usuario con privilegios de acceso para jerarquías y instrucciones de configuración
En este ejemplo, se muestra cómo configurar clases de inicio de sesión personalizadas y cómo asignar privilegios de acceso a jerarquías de configuración específicas. Los usuarios de la clase de inicio de sesión pueden ver y modificar solo las jerarquías y instrucciones de configuración a las que tienen acceso. Esto impide que los usuarios no autorizados modifiquen las configuraciones de los dispositivos que podrían causar daños en la red.
Requisitos
En este ejemplo, se utilizan los siguientes componentes de hardware y software:
-
Un dispositivo 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 muestra una topología simple, en la que 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: Class1 y Class2. Cada clase define los privilegios de acceso para el usuario configurando la permissions
instrucción y definiendo expresiones regulares extendidas mediante el uso de las allow-configuration
instrucciones , deny-configuration
, allow-configuration-regexps
y deny-configuration-regexps
.
El propósito de cada clase de inicio de sesión es el siguiente:
-
Class1— Define privilegios de acceso para el usuario con las
allow-configuration
instrucciones ydeny-configuration
. Esta clase de inicio de sesión proporciona acceso para configurar solo la[edit interfaces]
jerarquía y niega todos los demás accesos en el dispositivo. Para ello, los permisos de usuario incluyenconfigure
proporcionar acceso a la configuración. Además, laallow-configuration
instrucción permite el acceso a la configuración de las interfaces y la instrucción niega eldeny-configuration
acceso a todas las demás jerarquías de configuración. Dado que la instrucción allow tiene prioridad sobre la instrucción deny, los usuarios asignados a la clase de inicio de sesión de Class1 solo pueden tener acceso al[edit interfaces]
nivel de jerarquía. -
Class2— Define privilegios de acceso para el usuario con las
allow-configuration-regexps
instrucciones ydeny-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 jerárquicos para interfaces. También niega el acceso a los[edit system]
niveles de jerarquía y[edit protocols]
.
El enrutador R1 tiene dos usuarios, User1 y User2, asignados a las clases de inicio de sesión de 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 [edit]
nivel de jerarquía y, luego, ingrese commit
en el modo de configuración.
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 el que R1 intenta autenticar al usuario. En este ejemplo, la autenticación del servidor TACACS+ es primero, seguida por la autenticación del servidor RADIUS y, luego, 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 de contabilidad 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 allow-configuration
instrucciones y deny-configuration
:
-
Configure la clase de inicio de sesión de Class1 con
configure
permisos.[edit system login] user@R1# set class Class1 permissions configure
-
Configure la
allow-configuration
expresión regular para permitir que los usuarios de la clase vean y modifiquen parte del[edit interfaces]
nivel de jerarquía.[edit system login] user@R1# set class Class1 allow-configuration "interfaces .* unit .*"
-
Configure la
deny-configuration
expresión regular para denegar el acceso a todas las jerarquías de configuración.[edit system login] user@R1# set class Class1 deny-configuration .*
-
Configure la cuenta de usuario para la clase de inicio de sesión de 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 allow-configuration-regexps
instrucciones y 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
allow-configuration-regexps
expresión regular para permitir que los usuarios de la clase tengan acceso a varias jerarquías bajo el[edit interfaces]
nivel de jerarquía.[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
deny-configuration-regexps
expresión regular para evitar que los usuarios de la clase vean o modifiquen la configuración en los[edit system]
niveles de jerarquía y[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 de 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, ingrese el comando para confirmar la show system
configuración. 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 como 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 de 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 configure
permisos de usuario, como se vio en la primera salida. Además, en el modo de configuración, User1 tiene acceso al interfaces
nivel de jerarquía, pero solo al nivel de jerarquía, como se ve en la segunda salida.
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 interfaces
configuración.
[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 system
jerarquías de configuración y protocols
.
User2@R1# edit system ^ Syntax error, expecting <statement> or <identifier>. User2@R1# edit protocols ^ Syntax error, expecting <statement> or <identifier>.
Significado
User2 tiene permisos para configurar interfaces en R1, pero el usuario no tiene permiso para ver o modificar los [edit system]
niveles de [edit protocols]
jerarquía.
allow-commands-regexps
instrucciones y deny-commands-regexps
se admiten para la autorización de TACACS+.