Pandora office 365

Está definido como un plugin de servidor, que genera un agente con cada servicio
disponible de office 365 y el estado de sus features.

Introducción

Está definido como un plugin de servidor, que genera un agente con cada servicio disponible de office 365 y el estado de sus features.

Matriz de compatibilidad

Desarrollado en python 3.8. Se distribuye el binario compilado que no requiere dependencias extra.

Pre requisitos

Sistema
Al ser un binario no necesita dependencias específicas para la ejecución del mismo.

En el entorno de Pandora
Se requiere que el plugin server esté habilitado

Permisos Generales

General graph para autenticar

image-1652093564003.png

Para acceder al service health y sacar los modulos

image-1652093640523.png

Permisos logs

image-1652093728668.png

Y los siguientes elementos de autenticación:
● TenentID
● ClientID
● Secret

Configuración

El plugin se ejecuta definiendo los parámetros correspondientes:

usage: pandora_o365 [-h] -c CLIENTID -t TENANTID -s SECRET [-a AGENT_NAME]
                    [-p PREFIX] [-g GROUP] [-i INTERVAL] [-d DATA_IN] [-l]
                    [-n] [--tentacle_address TENTACLE_ADDRESS]
                    [--tentacle_port TENTACLE_PORT] [--tmp TMP]

Pandora Office365 Status plugin ver. 3.0

optional arguments:
  -h, --help            show this help message and exit
  -c CLIENTID, --clientid CLIENTID
                        Authentication O365 client id
  -t TENANTID, --tenantid TENANTID
                        Authentication O365 Tenant id
  -s SECRET, --secret SECRET
                        Authentication O365 Secret
  -a AGENT_NAME, --agent_name AGENT_NAME
                        Defined agent_name , default: pandora_o365
  -p PREFIX, --prefix PREFIX
                        Prefix for agent names, default O365
  -g GROUP, --group GROUP
                        Pandora agent group, default unknown
  -i INTERVAL, --interval INTERVAL
                        Agent interval in seconds, default: 300
  -d DATA_IN, --data_in DATA_IN
                        Pandora server datain directory, default:
                        /var/spool/pandora/data_in/
  -l, --logs            Get incidents messages to Pandora log collector
  -n, --nodata          Ignores module data (usefull for log retreaving only)
  --tentacle_address TENTACLE_ADDRESS
                        Define tentacle address for remote execution,
                        Default=none
  --tentacle_port TENTACLE_PORT
                        Define tentacle port for remote execution,
                        Default=41121
  --tmp TMP             Pandora temporary file directory for remote execution
                        only, default: /tmp/

Los campos obligatorios son los campos de autenticación: clientid, tenantid y secret.

Si se ejecuta sólo con los campos requeridos se obtendrán los datos de los Agentes/módulos correspondiente a cada servicio.
Campos Opcionales:

AGENT_NAME: Nombre del agente que contendrá los módulos de los servicios, por defecto es pandora_o365.

PREFIX: Prefijo para los agentes generados por la ejecución del plugin por defecto es O365

GROUP: Grupo al que se marcará en los XMls para asignar los agentes en Pandora. Este grupo debe existir en el entorno, de lo contrario los agentes se asignan al grupo por defecto: unknown

INTERVAL: Intervalo definido para cada agente creado por defecto 300 segundos, debe ser igual o superior al intervalo de ejecución del plugin.

DATAIN: Ubicación del directorio data in del entorno de Pandora FMS, por defecto /var/spool/pandora/data_in

TMP: Directorio temporal donde se almacenan los datos antes de copiarse al data in. Por defecto /tmp

LOGS: Habilita la captura de logs de los mensajes de incidencia de o365 y los envía al colector de logs de pandora. (El colector de logs debe estar configurado en el entorno). Por defecto deshabilitado.

NODATA: Ignora los datos de agentes y módulos, útil si se quiere ejecutar el plugin solo para recolectar los logs. Por defecto deshabilitado

UTF8 : Utiliza utf8, se pone a 0 si el shell no está en valores utf8 será en bytes crudos, por defecto: 1

TENTACLE_ADRESS: Ip del server de tentacle al que mandar los datos.

TENTACLE_PORT: Puerto de tentacle, por defecto es el 41121.

Ejecución manual

Ejecución del plugin:

Versión binaria:

./pandora_o365 -c <client-id> -t <tenant-id> -s <secret>

 

Opcionalmente se pueden definir parámetros opcionales como la ubicación del directorio data_in (-d), un prefijo para el nombre de los agentes generados (-p), el intervalo de tiempo definido para el agente (-i) y el grupo al que se asignan los agentes (-g).

./pandora_o365 -c <client-id> -t <tenant-id> -s <secret> -d <data-in directory> -p <prefix> -i <interval> -g <group-game> -l

Módulos generados por el plugin

El plugin creará un agente con el nombre que nosotros configuremos con el parámetro -a, que dispondrá de un módulo de status y otro de active issues por cada servicio.

Por ejemplo :

O365_Bookings_active_issues
O365_Bookings_status
O365_cloudappsecurity_active_issues
O365_cloudappsecurity_status
O365_DynamicsAX_active_issues
O365_DynamicsAX_status
O365_DynamicsCRM_active_issues
O365_DynamicsCRM_status
O365_Exchange_active_issues
O365_Exchange_status
O365_Forms_active_issues
O365_Forms_status
O365_Intune_active_issues
O365_Intune_status
O365_kaizalamessagingservices_active_issues
O365_kaizalamessagingservices_status
O365_Lync_active_issues
O365_Lync_status
O365_MicrosoftFlowM365_active_issues
O365_MicrosoftFlowM365_status
O365_MicrosoftFlow_active_issues
O365_MicrosoftFlow_status
O365_microsoftteams_active_issues
O365_microsoftteams_status
O365_MobileDeviceManagement_active_issues
O365_MobileDeviceManagement_status
O365_O365Client_active_issues
O365_O365Client_status
O365_officeonline_active_issues
O365_officeonline_status
O365_OneDriveForBusiness_active_issues
O365_OneDriveForBusiness_status
O365_OrgLiveID_active_issues
O365_OrgLiveID_status
O365_OSDPPlatform_active_issues
O365_OSDPPlatform_status
O365_Planner_active_issues
O365_Planner_status
O365_PowerAppsM365_active_issues
O365_PowerAppsM365_status
O365_PowerApps_active_issues
O365_PowerApps_status
O365_ProjectForTheWeb_active_issues
O365_ProjectForTheWeb_status
O365_ProjectOnline_active_issues
O365_ProjectOnline_status
O365_RMS_active_issues
O365_RMS_status
O365_SharePoint_active_issues
O365_SharePoint_status
O365_StaffHub_active_issues
O365_StaffHub_status
O365_Stream_active_issues
O365_Stream_status
O365_SwayEnterprise_active_issues
O365_SwayEnterprise_status
O365_Viva_active_issues
O365_Viva_status
O365_yammer_active_issues
O365_yammer_status

Ejemplo de la vista de módulos en el agente

image-1652173691850.png