# Pandora Imap

# Introducción

**Ver**. 12-07-2022

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 o agente

# 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: 471px; height: 70px;"><tbody><tr style="height: 35px;"><td style="width: 234px; height: 35px;">**Sistemas donde se ha probado**</td><td style="width: 237px; height: 35px;">Fedora

</td></tr><tr style="height: 35px;"><td style="width: 234px; height: 35px;">**Sistemas donde debería funcionar**</td><td style="width: 237px; height: 35px;">Cualquier sistema linux

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

# Pre requisitos

- Tener el **Data Server** de Pandora FMS habilitado
- Tener el **Plugin Server** de Pandora FMS habilitado
- Tener instalado **python3**
- Instalar las siguientes **librerías** de **python**

<div id="bkmrk-imap_tools"><div>**imap\_tools**</div><div></div></div>```
pip install imap_tools
```

<div id="bkmrk-o-en-python3%C2%A0">o en python3 </div><div id="bkmrk-"></div>```
pip3 install imap_tools
```

**Cryptocode**

```
pip install cryptocode
```

o en python3

```
pip3 install cryptocode
```

<div id="bkmrk--0"><div></div></div>

# Parámetros

<table border="1" id="bkmrk-par%C3%A1metro-descripci%C3%B3" style="height: 464px;"><tbody><tr style="height: 29px;"><td style="width: 135.094px; height: 29px;">--server</td><td style="width: 490.141px; height: 29px;">Ejemplo: <div><div>outlook.office365.com</div></div></td></tr><tr style="height: 29px;"><td style="width: 135.094px; height: 29px;">--user</td><td style="width: 490.141px; height: 29px;">Correo electrónico del usuario</td></tr><tr style="height: 29px;"><td style="width: 135.094px; height: 29px;">--password</td><td style="width: 490.141px; height: 29px;">Contraseña del usuario</td></tr><tr style="height: 29px;"><td style="width: 135.094px; height: 29px;">--list</td><td style="width: 490.141px; height: 29px;">Para listar todos los mailbox </td></tr><tr style="height: 29px;"><td style="width: 135.094px; height: 29px;">--mailbox</td><td style="width: 490.141px; height: 29px;">Para elegir mailbox en la que filtrar (Inbox por defecto)</td></tr><tr style="height: 29px;"><td style="width: 135.094px; height: 29px;">--subject</td><td style="width: 490.141px; height: 29px;">Para filtrar palabra o frase en el subject.</td></tr><tr style="height: 29px;"><td style="width: 135.094px; height: 29px;">--from\_mail</td><td style="width: 490.141px; height: 29px;">Para filtrar por correo electrónico</td></tr><tr style="height: 29px;"><td style="width: 135.094px; height: 29px;">--date</td><td style="width: 490.141px; height: 29px;">Para filtrar a partir de determinada fecha (ejemplo: '2020,1,1')</td></tr><tr style="height: 29px;"><td style="width: 135.094px; height: 29px;">--body</td><td style="width: 490.141px; height: 29px;">Para filtrar por una palabra en el body</td></tr><tr style="height: 29px;"><td style="height: 29px; width: 135.094px;">--mail\_list</td><td style="height: 29px; width: 490.141px;">Para crear un nuevo módulo con una lista de los mails que coinciden.</td></tr><tr style="height: 29px;"><td style="height: 29px; width: 135.094px;">--tentacle\_port</td><td style="height: 29px; width: 490.141px;">Puerto de tentacle en caso de querer mandar los datos de esta manera</td></tr><tr style="height: 29px;"><td style="height: 29px; width: 135.094px;">--tentacle\_address</td><td style="height: 29px; width: 490.141px;">Dirección de tentacle en caso de que quiera mandar los datos de esta manera</td></tr><tr style="height: 29px;"><td style="height: 29px; width: 135.094px;">--agent\_name</td><td style="height: 29px; width: 490.141px;">Nombre del agente que contendrá los módulos</td></tr><tr style="height: 29px;"><td style="height: 29px; width: 135.094px;">-g,--group</td><td style="height: 29px; width: 490.141px;">Grupo de destino en pandora</td></tr><tr style="height: 29px;"><td style="height: 29px; width: 135.094px;">--data\_dir</td><td style="height: 29px; width: 490.141px;">Dirección de destino de los datos</td></tr><tr style="height: 29px;"><td style="height: 29px; width: 135.094px;">--as\_agent\_plugin</td><td style="height: 29px; width: 490.141px;">Modo agente al activarse con un 1</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`

`--body`

`--from_mail`

`--date`

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

subject + body

subject + body + from\_mail

subject + body + from\_mail + date

Se pueden seleccionar mails de cualquier mailbox (inbox por defecto), para ver un listado de las mailbox del correo se puede usar el parámetro `--list 1`

<p class="callout warning">El user y el password solo será necesarios introducirlos la primera vez, en una ejecución manual, luego se creará un archivo que guardará las credenciales encriptadas y el plugin las leerá de este archivo.</p>

``

```
python3 pandora_imap.py --server <server> --user <user> --password <password> --list 1
```

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

```
python3 pandora_imap.py --server <server> --user <user> --password <password> --subject <subject> --body <body> --as_agent_plugin 1
```

**Ejemplo ejecución manual**

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

**Ejemplo menú ayuda**

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

**Ejemplo usando todos los filtros**

[![image-1658928418619.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-07/scaled-1680-/image-1658928418619.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-07/image-1658928418619.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:

```
python3 </path_pandora_imap>
```

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

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

<p class="callout warning">Recuerda que debes ejecutar el plugin manualmente con user y password por primera vez para que se cree un fichero imap\_credenciales.txt que guardará las creedenciales encriptadas.</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, (--user, --password deberán ser introducidos en una primera ejecución manual solo la primera vez) y al menos uno de los parámetros utilizados para filtrar.

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

**--SERVER**

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

**--SUBJECT**

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

**--BODY**

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

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.

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

Una vez hecho esto, damos a crear.

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

# Modulos generados por el plugin

El plugin creara 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.

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

 **Vista modulo lista**

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