Primeros pasos con Fortigate API

En esta nueva entrada, voy a documentar los primeros pasos para hacer llamadas a la API de un firewall Fortigate.

La API que incluyen los firewalls de Fortinet puede resultarnos muy útil de cara a automatizar procesos y/o facilitar la modificación masiva de datos.

Crear usuario API Fortigate

El primer paso del proceso será crear un usuario con acceso a la API de nuestro firewall Fortigate, debemos ir al menú de la GUI:

  • Accedemos al menu System -> Administrators y pulsamos en Create New -> REST API Admin.
  • Indicamos los datos que se nos solicita en el formulario. Es recomendable crear un nuevo Administrator Profile con el fin de limitar el usuario a los módulos que necesite, así como su capacidad de cambios (solo lectura y/o escritura).
Crear nuevo usuario API REST en Fortigate

Una vez creado el usuario se nos mostrara la clave API. Es necesario apuntarse ese código ya que solo es posible verlo una vez, como indica el mensaje de advertencia. En caso que la olvidemos, solo nos permitirá crear un código nuevo, invalidando el anterior.

API Key del usuario API REST en Fortigate

Como hacer llamadas a la API de Fortigate

Para realizar una explicación sencilla, vamos a hacer llamadas mediante la herramienta CURL.

La mejor manera de saber que necesitamos consultar a la API es desde los propios menús de la GUI del propio Fortigate. Dentro de cada configuración, podremos observar un botón llamado API Preview donde nos mostrara como seria la llamada API dentro de ese modulo.

Ver API Preview en WebFilter de Fortigate
Ver URL para llamada en API Preview en WebFilter de Fortigate

Viendo como será esa llamada, podemos intuir parte de la configuración.

Una vez tenemos claro a que modulo de Fortigate queremos consultar los datos, vamos a hacer la llamada con el siguiente comando:

curl -X GET -H "Authorization: Bearer bn4w9kNsrqztNmNy60Gs4b3Ny1rbn3" http://172.23.115.8/api/v2/cmdb/webfilter/profile

En el comando de ejemplo, los parámetros serian los siguientes:

  • -X GET –> El tipo de llamada. GET para extraer datos y PUT para modificarlos.
  • -H Authorization: Bearer API_KEY -> Aqui incluimos las cabeceras (headers) para autenticar. El formato es el mostrado: Authorization + Bearer + la clave API del usuario que hemos creado.
  • url –> URL de la llamada a la API.


Ejecutando el comando, nos listara toda la información relativa al modulo de WebFilter del Fortigate, listando todos los perfiles de este modulo.

Podemos añadir algunos filtros para dar formato a al resultado de la llamada. Este formato se puede realizar indicando «/?format=«, he indicando los campos que queremos mostrar. En este ejemplo, vamos a mostrar solo el campo name y el campo comment.

Conclusiones

Como habéis podido observar, hacer llamadas a la API no es complicado pero la documentación que hay actualmente, en internet, de la API de Fortigate es bastante limitada. Existe documentación oficial pero debemos pagar o ser invitados para tener acceso, por lo que se hace complicado su acceso. Esperemos que, en el futuro, esta documentación este incluida en el portal de soporte.

En próximas entradas, os compartiré algún programa en Python que he ido desarrollando para automatizar algunos de los procesos que realizo en los equipos que administro.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.