Admin Authentication y RBAC
Resumen
Por defecto el firewall solo tiene la cuenta local
admin. En una empresa eso no sirve: quieres que cada administrador entre con su propia cuenta del directorio (Active Directory), que su contraseña se valide en el servidor central, que cada uno tenga solo los permisos que necesita y que quede registro de quién hizo qué.
Para lograrlo se combinan cuatro piezas: un Server Profile (cómo hablar con LDAP, RADIUS o TACACS+), un Authentication Profile (qué servidor usar y con qué reglas), opcionalmente una Authentication Sequence (varios perfiles probados en orden) y una cuenta de administrador que apunta a ese perfil. Los permisos se asignan con un rol fijo (Dynamic) o con un Admin Role propio (Role Based), que es lo que se llama RBAC.
Requisitos previos
- Un servidor de autenticación alcanzable desde el firewall (Active Directory/LDAP, RADIUS o TACACS+)
- Los datos del servidor: IP, puerto, Base DN, Bind DN y su contraseña (LDAP); o IP y shared secret (RADIUS/TACACS+)
- Una ruta desde el firewall hasta el servidor. Si el servidor está en la red de gestión, usa la MGT; si no, un Service Route (ver Initial Setup y Management Plane)
- En RADIUS/TACACS+: el firewall registrado como cliente en el servidor, con el mismo secret
- Una cuenta de respaldo local, para no quedarte fuera si el servidor falla
- La hora del firewall sincronizada (NTP)
Conceptos clave
| Pieza | Para qué sirve | Dónde está |
|---|---|---|
| Server Profile | Datos de conexión al servidor | Device > Server Profiles |
| Authentication Profile | Qué método y servidor usar, quién puede entrar (Allow List), lockout | Device > Authentication Profile |
| Authentication Sequence | Lista ordenada de Authentication Profiles; prueba uno tras otro | Device > Authentication Sequence |
| Administrator | La cuenta que entra al firewall | Device > Administrators |
| Admin Role Profile | Permisos finos para un rol personalizado | Device > Admin Roles |
Tipos de administrador (Administrator Type):
- Dynamic: usa roles fijos: Superuser, Superuser (read-only), Device administrator, Device administrator (read-only), Vsys administrator y Vsys administrator (read-only).
- Role Based: usa un Admin Role Profile que tú defines, para dar permisos exactos (por ejemplo, solo ver logs, o solo editar políticas).
Tipos de Authentication Profile más usados: Local Database, LDAP, RADIUS, TACACS+, SAML, Kerberos.
El nombre de la cuenta de administrador debe coincidir con el usuario del servidor (por ejemplo Keith). El firewall no guarda su contraseña: la valida contra el servidor. Por eso, con LDAP, RADIUS o TACACS+ en el Authentication Profile no se pide contraseña local.
Configuración (Ejemplo, Lab PCNSA)
Valores del lab: servidor LDAP 192.168.1.100, dominio ogit.local, usuario Keith. Ver Lab PCNSA (curso).
1. LDAP Server Profile
- Device > Server Profiles > LDAP > Add.
- Profile Name:
Our_LDAP_Sever. - Server List > Add: Name
WinSrvr1, LDAP Server192.168.1.100, Port389. - Type:
active-directory. - Base DN:
DC=ogit,DC=local. - Bind DN:
administrator@ogit.local, y su Password. - Bind Timeout
30, Search Timeout30, Retry Interval60. - Para cifrar la conexión: marca Require SSL/TLS secured connection (y usa el puerto 636). En el lab quedó desactivado.
- OK.
2. Authentication Profile
- Device > Authentication Profile > Add.
- Name:
Use_LDAP. - Pestaña Authentication: Type
LDAP, Server ProfileOur_LDAP_Sever, Login AttributesAMAccountName, User Domainogit.local, Username Modifier%USERINPUT%. - Pestaña Advanced > Allow List: agrega los usuarios o grupos que pueden entrar (
allpara todos). - Opcional, pestaña Advanced: Failed Attempts y Lockout Time para bloquear tras intentos fallidos.
- OK.
Login Attribute según el servidor: sAMAccountName (Active Directory), userPrincipalName (usuario@dominio), uid (OpenLDAP).
Username Modifier: %USERINPUT% (lo que escribe el usuario), %USERINPUT%@%USERDOMAIN% (agrega el dominio), %USERDOMAIN%\%USERINPUT% (dominio\usuario).
3. Administrador
- Device > Administrators > Add.
- Name:
Keith. - Authentication Profile:
Use_LDAP. No se escribe password. - Administrator Type:
Dynamicy rolSuperuser; oRole Basedy el Admin Role Profile. - OK y Commit.
4. Authentication Sequence (varios métodos en orden)
- Crea antes los perfiles que quieras encadenar (por ejemplo
Use_LDAPyUse_Local_DB). Para uno local: Device > Local User Database > Users > Add. - Device > Authentication Sequence > Add.
- Name:
LDAP_then_Local_Seq. - Authentication Profiles > Add y elige los perfiles. Ordénalos con Move Up y Move Down: se prueban de arriba a abajo.
- Device > Administrators > Add (o edita): Authentication Profile
LDAP_then_Local_Seq(la lista muestra perfiles y secuencias). - Commit.
5. Rol personalizado (RBAC)
- Device > Admin Roles > Add.
- Name (ej.
Soporte-Solo-Logs). - Pestañas Web UI, XML API, REST API y Command Line: elige qué puede ver o hacer. Web UI usa interruptores Enable / Read Only / Disable por sección.
- OK. Luego crea el administrador con Administrator Type
Role Basedy este rol.
Ajustes relacionados: Device > Setup > Management > Authentication Settings (Idle Timeout, Failed Attempts, Lockout Time y perfil de autenticación por defecto); Password Profiles y Minimum Password Complexity para cuentas locales; y, con RADIUS o TACACS+, los Vendor-Specific Attributes (por ejemplo PaloAlto-Admin-Role) para asignar el rol desde el servidor.
6. Por CLI
set shared server-profile ldap Our_LDAP_Sever server WinSrvr1 address 192.168.1.100 port 389
set shared server-profile ldap Our_LDAP_Sever ldap-type active-directory base DC=ogit,DC=local bind-dn administrator@ogit.local
set shared authentication-profile Use_LDAP method ldap server-profile Our_LDAP_Sever login-attribute sAMAccountName user-domain ogit.local
set shared authentication-profile Use_LDAP allow-list all
set mgt-config users Keith authentication-profile Use_LDAP
set mgt-config users Keith permissions role-based superuser yes
commit
La contraseña del Bind DN se ingresa mejor por la GUI. Si un comando no coincide con tu versión, usa Tab o ?.
Verificación
Antes de cerrar tu sesión actual, prueba que el nuevo administrador puede autenticarse:
test authentication authentication-profile Use_LDAP username Keith password
El comando pide la contraseña en la siguiente línea.
| Comando o lugar | Qué debes ver | Si no lo ves |
|---|---|---|
test authentication authentication-profile Use_LDAP username Keith password | name "Keith" is in group "all", Succeeded to create a session with LDAP server, Authentication succeeded for user "Keith" | Mira “Errores comunes” según la línea donde se detiene |
show admins all | El administrador y su tipo de acceso mientras está conectado | Si no aparece, no inició sesión |
| Login real en la GUI y por SSH con el nuevo usuario | Entras con el rol esperado | Revisa Allow List, rol y Authentication Profile |
| Monitor > Logs > System | Eventos de autenticación exitosos y fallidos | Si no hay ninguno, el intento no llegó al firewall |
less mp-log authd.log | Detalle de la conversación con el servidor (útil al fallar) | Sal con q |
Sobre la salida del test: si ves Do allow list check before sending out authentication request, el firewall primero verifica el Allow List y luego contacta al servidor. En LDAP, la línea DN sent to LDAP server muestra el usuario que se buscó.
Errores comunes
El test falla antes de contactar al servidor: user is not in allow list
- Causa: el usuario o su grupo no están en el Allow List del Authentication Profile.
- Solución: Device > Authentication Profile > Advanced > Allow List: agrega el usuario o grupo, o
all.
Failed to create a session with LDAP server
- Causa: IP o puerto equivocados, firewall intermedio bloqueando 389/636, o el servicio sale por una interfaz sin ruta.
- Revisa:
ping host 192.168.1.100y la ruta o Service Route usado para LDAP. - Solución: corrige IP o puerto y asegúrate de que el firewall alcance al servidor. Con SSL/TLS, usa el puerto 636 y que el certificado del servidor sea de confianza.
Se conecta al servidor pero la autenticación falla
- Causa: Bind DN o su contraseña incorrectos, Base DN incorrecto, Login Attribute incorrecto o User Domain mal escrito.
- Revisa: que el Bind DN sea una cuenta válida y que en el directorio el usuario esté bajo el Base DN que pusiste.
- Solución: corrige el dato que difiere. Un error típico es usar
uiden un Active Directory (debe sersAMAccountName).
El usuario escribe su nombre y falla, pero el test con dominio funciona
- Causa: el Username Modifier o el User Domain no coinciden con cómo escribe el usuario.
- Solución: usa
%USERINPUT%@%USERDOMAIN%o%USERDOMAIN%\%USERINPUT%según tu directorio.
Creé el administrador y me pide contraseña local
- Causa: la cuenta no tiene Authentication Profile asignado.
- Solución: edita el administrador y selecciona el Authentication Profile o la Authentication Sequence.
Entra pero con permisos que no corresponden
- Causa: se eligió el rol equivocado (Dynamic vs Role Based) o el Admin Role Profile tiene secciones en Read Only o Disable.
- Solución: revisa el rol del administrador y las pestañas del Admin Role Profile (Web UI, XML API, REST API, Command Line).
Con la Authentication Sequence entra con una contraseña inesperada
- Causa: el orden de los perfiles hace que otro perfil lo valide primero (por ejemplo, la base local).
- Solución: reordena con Move Up y Move Down, y deja la cuenta local solo como respaldo al final.
Se bloqueó la cuenta
- Causa: demasiados intentos fallidos con Failed Attempts y Lockout Time configurados.
- Solución: espera el Lockout Time o entra con otra cuenta de superusuario para revisar. Para ajustar, Device > Authentication Profile > Advanced.
RADIUS: Access-Reject o timeout
- Causa: shared secret distinto, el firewall no está dado de alta como cliente en el servidor RADIUS, o el puerto (1812) está bloqueado.
- Solución: corrige el secret y registra la IP de origen que usa el firewall (ojo con los Service Routes).
Perdí acceso al firewall por un error de autenticación
- Causa: el servidor externo no responde y solo había cuentas externas.
- Solución: entra por consola con la cuenta local de respaldo. Por eso conviene siempre tener una cuenta local con contraseña fuerte.