# Exchange mail filter

# Introducción

**Ver**. 15-02-2024

Plugin con el que se pueden filtrar correos y el número de correos que coinciden con los filtros utilizados.

**Tipo**: Plug-in de servidor.

# Matriz de compatibilidad

<table border="1" id="bkmrk-sistemas-donde-se-ha" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; width: 564px; height: 70px;"><tbody><tr style="height: 35px;"><td style="width: 234px; height: 35px;">**Sistemas donde se ha probado**</td><td style="width: 330px; height: 35px;">exchange 2016, exchange online

</td></tr><tr style="height: 35px;"><td style="width: 234px; height: 35px;">**Sistemas donde debería funcionar**</td><td style="width: 330px; height: 35px;">Cualquier versión de exchange

</td></tr></tbody></table>

# Pre requisitos

- Tener el **Data Server** de Pandora FMS habilitado
- Tener el **Plugin Server** de Pandora FMS habilitado
- Autenticación OAuth para exchange online

<p class="callout info">**Pasos para habilitar OAuth en exchange online:**  
</p>

- **Registro de Aplicación en Azure AD:**
    
    
    - Inicia sesión en el [Portal de Aplicaciones de Azure](https://portal.azure.com/).
    - Navega a Azure Active Directory &gt; Registros de aplicaciones &gt; Nueva aplicación de registro.
    - Completa los detalles de la aplicación (nombre, tipo de cuenta, URI de redireccionamiento, etc.).
- **Configuración de Permisos:**
    
    
    - Después de registrar la aplicación, ve a "Permisos de API" y asigna el permisos necesarios para Exchange Online (full\_access\_as\_ap).
- **Obtención de Credenciales de Aplicación:**
    
    
    - En la sección de "Credenciales" de la aplicación, crea una nueva clave secreta y utiliza esta, el tenant id y client id de la aplicación para autenticar con el plugin.

# Parámetros

<table border="1" id="bkmrk-par%C3%A1metro-descripci%C3%B3" style="height: 769.313px; width: 77.284%;"><tbody><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--server</td><td style="width: 78.296%; height: 29.7969px;">Nombre del servidor</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--smpt\_address</td><td style="width: 78.296%; height: 29.7969px;">Dirección de correo</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--user</td><td style="width: 78.296%; height: 29.7969px;">Usuario de exchange</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--client\_id</td><td style="width: 78.296%; height: 29.7969px;">Client id</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--tenant\_id</td><td style="width: 78.296%; height: 29.7969px;">Tenant id</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--secret</td><td style="width: 78.296%; height: 29.7969px;">secret</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--password</td><td style="width: 78.296%; height: 29.7969px;">Contraseña del usuario</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--smtp\_address</td><td style="width: 78.296%; height: 29.7969px;">Cuenta del usuario del que se filtraran correos.</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--subject</td><td style="width: 78.296%; height: 29.7969px;">Para filtrar palabra o frase en el subject.</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--sender</td><td style="width: 78.296%; height: 29.7969px;">Para filtrar por correo electrónico</td></tr><tr style="height: 63.3906px;"><td style="width: 21.5842%; height: 63.3906px;">--date\_start</td><td style="width: 78.296%; height: 63.3906px;">Para filtrar a partir de determinada fecha, se usa como fecha de inicio.Cada fecha debe ir separada por un guión y entrecomillada, con el siguiente formato: 'año-mes-día-hora-minuto'. ejemplo: '2021-1-12-0-0'.</td></tr><tr style="height: 63.3906px;"><td style="width: 21.5842%; height: 63.3906px;">--date\_end</td><td style="width: 78.296%; height: 63.3906px;">Para filtrar a partir de determinada fecha, se usa como fecha final.Cada fecha debe ir separada por un guión y entrecomillada, con el siguiente formato: 'año-mes-día-hora-minuto'. ejemplo: '2021-1-12-0-0'.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; width: 21.5842%;">--mail\_list</td><td style="height: 29.7969px; width: 78.296%;">Para crear un nuevo módulo con una lista de los mails que coinciden.</td></tr><tr><td style="width: 21.5842%;">--transfer\_modo</td><td style="width: 78.296%;">Modo de transferencia</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; width: 21.5842%;">--tentacle\_port</td><td style="height: 29.7969px; width: 78.296%;">Puerto de tentacle en caso de querer mandar los datos de esta manera</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px; width: 21.5842%;">--tentacle\_address</td><td style="height: 46.5938px; width: 78.296%;">Dirección de tentacle en caso de que quiera mandar los datos de esta manera</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; width: 21.5842%;">--agent\_prefix</td><td style="height: 29.7969px; width: 78.296%;">Nombre del agente que contendrá los módulos</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--module\_prefix</td><td style="width: 78.296%; height: 29.7969px;">Para añadir un prefijo al módulo, "Exchange" es el prefijo por defecto.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; width: 21.5842%;">--group</td><td style="height: 29.7969px; width: 78.296%;">Grupo de destino en pandora</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--interval</td><td style="width: 78.296%; height: 29.7969px;">Intervalo de creación de tiempo para el agente</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--temporal</td><td style="width: 78.296%; height: 29.7969px;">Directorio temporal de ficheros.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; width: 21.5842%;">--data\_dir</td><td style="height: 29.7969px; width: 78.296%;">Dirección de destino de los datos</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--log\_file</td><td style="width: 78.296%; height: 29.7969px;">Ruta del fichero de logs</td></tr><tr style="height: 29.7969px;"><td style="width: 21.5842%; height: 29.7969px;">--auth</td><td style="width: 78.296%; height: 29.7969px;">Modo de autenticación. Las dos opciones posibles son 0Auth y basic. La autenticación basic esta deprecada en exchange online.</td></tr></tbody></table>

# Ejecución manual

El plugin crea un agente con dos módulos por cada ejecución, uno con el número de emails que coinciden con el filtrado y otro con el listado de estos emails. Los parámetros de filtrado son los siguientes:

`--subject`

`--sender`

`--date_start`

`--date_end`

Se puede filtrar por cualquiera de estos o se pueden combinar de la siguiente forma:

subject + sender

subject + sender + date\_start-date\_end

**Ejemplo ejecución manual**

```
./exchange_mail \
--auth <oauth> \
--server <server> \
--smtp_address <smtp_address> \
--client_id <client_id> \
--tenant_id <tenant_id> \
--secret <secret> \
[--user <user>] \
[--password <password>] \
[--subject <subject>] \
[--sender <sender>] \
[--date_start <date_start>] \
[--date_end <date_end>] \
[--mail_list <mail_list>] \
[--module_prefix <module_prefix>] \
[--agent_prefix <agent_prefix>] \
[--group <group>] \
[--interval <interval>] \
[--temporal <temporal>] \
[--data_dir <data_dir>] \
[--transfer_mode <transfer_mode>] \
[--tentacle_client <tentacle_client>] \
[--tentacle_opts <tentacle_opts>] \
[--tentacle_port <tentacle_port>] \
[--tentacle_address <tentacle_address>] \
[--log_file <log_file>]
```

**Ejemplo menú ayuda**

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/scaled-1680-/pLkimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-02/pLkimage.png)

# Configuración en PandoraFMS

**Instalación manual**

Iremos a servidores &gt; plugins:

[![image-1629974405286.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/scaled-1680-/image-1629974405286.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/image-1629974405286.png)

Pinchamos en añadir:

[![image-1629974430627.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/scaled-1680-/image-1629974430627.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/image-1629974430627.png)

Le ponemos en nombre y la descripción que se prefiera:

[![image-1658834125705.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-07/scaled-1680-/image-1658834125705.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-07/image-1658834125705.png)

Metemos como comando la ejecución con la ruta del plugin:

```
</path_exchange_mail>
```

<p class="callout info align-center">Recuerda que la ruta recomendada para el uso de los plugins de servidor es: /usr/share/pandora\_server/util/plugin/</p>

Y en parámetros del plugin introduciremos estos seguidos de la macro "\_field&lt;N&gt;\_", los obligatorios para que el plugin funcione son --server, --auth, --smtp\_address y dependiendo del metodo de autenticación, user y password en la básica y client\_id, tenant\_id y secret en authenticación OAuth.

<p class="callout warning">Aunque no es obligatorio, es muy recomendable el uso del parámetro --agent\_name , ya que nos permite personalizar el nombre del agente que contendrá los módulos creados.</p>

Una vez hecho esto, daremos a "crear".

Una vez hecho esto, solo queda llamarlo por lo que iremos a la vista de algún agente y crearemos un módulo de complementos:

[![image-1646741530197.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-03/scaled-1680-/image-1646741530197.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-03/image-1646741530197.png)

Le daremos un nombre y en el apartado "plugin" pondremos el que acabamos de configurar

Una vez hecho esto, damos a crear.

Si el modulo se muestra con 1, quiere decir que se esta ejecutando correctamente

# Módulos generados por el plugin

El plugin creara un agente con un módulo llamado "Coincidences\_count" con el número de coincidencias y si se usa el parámetro ```--mail\_list``` también creara un módulo con una lista de coincidencias.