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

PiezaPara qué sirveDónde está
Server ProfileDatos de conexión al servidorDevice > Server Profiles
Authentication ProfileQué método y servidor usar, quién puede entrar (Allow List), lockoutDevice > Authentication Profile
Authentication SequenceLista ordenada de Authentication Profiles; prueba uno tras otroDevice > Authentication Sequence
AdministratorLa cuenta que entra al firewallDevice > Administrators
Admin Role ProfilePermisos finos para un rol personalizadoDevice > 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

  1. Device > Server Profiles > LDAP > Add.
  2. Profile Name: Our_LDAP_Sever.
  3. Server List > Add: Name WinSrvr1, LDAP Server 192.168.1.100, Port 389.
  4. Type: active-directory.
  5. Base DN: DC=ogit,DC=local.
  6. Bind DN: administrator@ogit.local, y su Password.
  7. Bind Timeout 30, Search Timeout 30, Retry Interval 60.
  8. Para cifrar la conexión: marca Require SSL/TLS secured connection (y usa el puerto 636). En el lab quedó desactivado.
  9. OK.

2. Authentication Profile

  1. Device > Authentication Profile > Add.
  2. Name: Use_LDAP.
  3. Pestaña Authentication: Type LDAP, Server Profile Our_LDAP_Sever, Login Attribute sAMAccountName, User Domain ogit.local, Username Modifier %USERINPUT%.
  4. Pestaña Advanced > Allow List: agrega los usuarios o grupos que pueden entrar (all para todos).
  5. Opcional, pestaña Advanced: Failed Attempts y Lockout Time para bloquear tras intentos fallidos.
  6. 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

  1. Device > Administrators > Add.
  2. Name: Keith.
  3. Authentication Profile: Use_LDAP. No se escribe password.
  4. Administrator Type: Dynamic y rol Superuser; o Role Based y el Admin Role Profile.
  5. OK y Commit.

4. Authentication Sequence (varios métodos en orden)

  1. Crea antes los perfiles que quieras encadenar (por ejemplo Use_LDAP y Use_Local_DB). Para uno local: Device > Local User Database > Users > Add.
  2. Device > Authentication Sequence > Add.
  3. Name: LDAP_then_Local_Seq.
  4. Authentication Profiles > Add y elige los perfiles. Ordénalos con Move Up y Move Down: se prueban de arriba a abajo.
  5. Device > Administrators > Add (o edita): Authentication Profile LDAP_then_Local_Seq (la lista muestra perfiles y secuencias).
  6. Commit.

5. Rol personalizado (RBAC)

  1. Device > Admin Roles > Add.
  2. Name (ej. Soporte-Solo-Logs).
  3. 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.
  4. OK. Luego crea el administrador con Administrator Type Role Based y 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 lugarQué debes verSi no lo ves
test authentication authentication-profile Use_LDAP username Keith passwordname "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 allEl administrador y su tipo de acceso mientras está conectadoSi no aparece, no inició sesión
Login real en la GUI y por SSH con el nuevo usuarioEntras con el rol esperadoRevisa Allow List, rol y Authentication Profile
Monitor > Logs > SystemEventos de autenticación exitosos y fallidosSi no hay ninguno, el intento no llegó al firewall
less mp-log authd.logDetalle 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.100 y 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 uid en un Active Directory (debe ser sAMAccountName).

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.