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).

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.

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.


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.