Bueno en mi primer tutorial les mostraba como instalar Piler desde cero. En este, les mostraré como archivar los correos de un servidor de postfix o exim. Además de mostrarles como configurar Piler para obtener más funcionalidades.
1- Configuración del servidor de correo
Una vez configurado Piler, es necesario indicarle al servidor de correo que envíe los mensajes de correos hacia Piler. Veremos cómo hacerlo desde un server con postfix y otro con exim.
1.1- Exim
En este caso existen dos variantes:
a) System Filter
Agregar un filtro que envíe una copia de todos los correos entrantes y salientes a archive@dominio.cu, por ejemplo:
unseen deliver archive@dominio.cu errors_to support@dominio.cu
b) Mediante Routers
En la sección de Routers antes del primero (debajo de «begin routers») agregar:
mailarchive:
debug_print = «R: mailarchive for $local_part@$domain»
driver = manualroute
domains = *
transport = remote_smtp
# piler listening on port 25:
route_list = * «piler.dominio.cu::25»
self = send
unseen
1.2- Postfix (Zimbra 8.7.x y superior) con 2 métodos muy similares:
Primero crearemos el archivo postfix_x-add-envelope-to
nano /opt/zimbra/conf/postfix_x-add-envelope-to
y donde colocaremos dentro el contenido siguiente:
/(.+)/ PREPEND X-Envelope-To: $1
Salvamos. Ctrl+X
a) Editaremos el siguiente fichero:
nano /opt/zimbra/conf/zmconfigd/smtpd_recipient_restrictions.cf
Y añadir la siguiente línea casi al principio del todo, debe quedaros así:
%%contains VAR:zimbraMtaRestriction check_client_access lmdb:/opt/zimbra/conf/postfix_blacklist%% %%contains VAR:zimbraServiceEnabled cbpolicyd^ check_policy_service inet:localhost:%%zimbraCBPolicydBindPort%% check_recipient_access pcre:/opt/zimbra/conf/postfix_x-add-envelope-to <------- Añadir esta línea reject_non_fqdn_recipient
# zmlocalconfig -e postfix_always_bcc=archive@piler.dominio.cu # postconf -e always_bcc=archive@piler.dominio.cu # zmmtactl restart
# zmprov ms mail.dominio.cu zimbraMtaTransportMaps "lmdb:/opt/zimbra/common/conf/transportfile,proxy:ldap:/opt/zimbra/conf/ldap-transport.cf"
// authentication against an ldap directory (disabled by default)
$config['ENABLE_LDAP_AUTH'] = 0;
$config['LDAP_HOST'] = 'ldap.yourdomain.com';
$config['LDAP_HELPER_DN'] = 'cn=....';
$config['LDAP_HELPER_PASSWORD'] = 'xxxxxxx';
$config['LDAP_MAIL_ATTR'] = 'mail';
$config['LDAP_AUDITOR_MEMBER_DN'] = '';
$config['LDAP_ADMIN_MEMBER_DN'] = '';
$config['LDAP_BASE_DN'] = '';
// AD specific settings
//
$config['LDAP_ACCOUNT_OBJECTCLASS'] = 'user';
$config['LDAP_DISTRIBUTIONLIST_OBJECTCLASS'] = 'group';
$config['LDAP_DISTRIBUTIONLIST_ATTR'] = 'member';
$config['LDAP_MAIL_ATTR'] = 'proxyAddresses';
// zimbra specific settings
//$config['LDAP_HELPER_DN'] = 'uid=zimbra,cn=admins,cn=zimbra';
//$config['LDAP_ACCOUNT_OBJECTCLASS'] = 'zimbraAccount';
//$config['LDAP_DISTRIBUTIONLIST_OBJECTCLASS'] = 'zimbraDistributionList';
//$config['LDAP_DISTRIBUTIONLIST_ATTR'] = 'zimbraMailForwardingAddress';
//$config['LDAP_MAIL_ATTR'] = 'mail';
Copiamos todo este contenido en nuestro config-site.php
nano /var/www/piler/config-site.php
Descomentamos la parte de zimbra y ponemos a los 3 bloques nuestra configuración:
// authentication against an ldap directory (disabled by default)
$config['ENABLE_LDAP_AUTH'] = 1; --------------- Activar con 1
$config['LDAP_HOST'] = 'mail.dominio.cu'; -------Poner nuestro server de correo
$config['LDAP_HELPER_DN'] = 'cn=....';
$config['LDAP_HELPER_PASSWORD'] = 'XXXXX'; -----Poner la clave que averiguamos anteriormente
$config['LDAP_MAIL_ATTR'] = 'mail';
$config['LDAP_AUDITOR_MEMBER_DN'] = '';
$config['LDAP_ADMIN_MEMBER_DN'] = '';
$config['LDAP_BASE_DN'] = '';
// AD specific settings
//
$config['LDAP_ACCOUNT_OBJECTCLASS'] = 'user';
$config['LDAP_DISTRIBUTIONLIST_OBJECTCLASS'] = 'group';
$config['LDAP_DISTRIBUTIONLIST_ATTR'] = 'member';
$config['LDAP_MAIL_ATTR'] = 'proxyAddresses';
// zimbra specific settings
$config['LDAP_HELPER_DN'] = 'uid=zimbra,cn=admins,cn=zimbra';
$config['LDAP_ACCOUNT_OBJECTCLASS'] = 'zimbraAccount';
$config['LDAP_DISTRIBUTIONLIST_OBJECTCLASS'] = 'zimbraDistributionList';
$config['LDAP_DISTRIBUTIONLIST_ATTR'] = 'zimbraMailForwardingAddress';
$config['LDAP_MAIL_ATTR'] = 'mail';
En el caso de querer integrarlo contra el LDAP de nuestro AD y no al de zimbra.
// authentication against an ldap directory (disabled by default) $config['ENABLE_LDAP_AUTH'] = 1; $config['LDAP_HOST'] = 'ip del servidor ldap'; $config['LDAP_HELPER_DN'] = 'user@dominio.cu'; $config['LDAP_HELPER_PASSWORD'] = 'contraseña de user@dominio.cu'; $config['LDAP_MAIL_ATTR'] = 'userPrincipalName'; $config['LDAP_BASE_DN'] = 'OU=example,DC=dominio,DC=cu'; $config['LDAP_AUDITOR_MEMBER_DN'] = 'CN=auditor,OU=example,DC=dominio,DC=cu'; $config['LDAP_ADMIN_MEMBER_DN'] = 'CN=admin,OU=example,DC=dominio,DC=cu'; // AD specific settings // $config['LDAP_ACCOUNT_OBJECTCLASS'] = 'user'; $config['LDAP_DISTRIBUTIONLIST_OBJECTCLASS'] = 'group'; $config['LDAP_DISTRIBUTIONLIST_ATTR'] = 'member'; $config['ENABLE_AUDIT'] = 1;
Recargamos el piler
5- Comandos útiles de Piler
5.1- Importar mensajes de correo
a) pilerimport -e <eml file> -m <mbox file> -d <directory>
Permite importar correos .eml desde un archivo mbox o desde un directorio (ej: Maildir)
b) pilerimport -i <imap server> -u <username> -p <password> [-x comma,separated,skiplist]
Permite importar correos desde un servidor IMAP
c) pilerimport -K pop3.yourdomain.com -u jack -p password
Permite importar correos desde un servidor POP3
5.2– Exportar correos
La herramienta ‘pilerexport’ permite exportar mensajes archivados a .eml. Dicha herramienta corre bajo los permisos del usuario ‘piler’ por lo que hay que moverse hacia un directorio donde el dicho usuario tenga permisos de escritura.
a) Exportar todos los correos > 10 KB de Diciembre:
# pilerexport -s 10000 –start-date 2014.12.01 –stop-date 2014.12.31
b) Exportar todos los correos con tamaño entre 100 KB y 2 MB, y (_AND_) los remitentes pueden ser aaa@aaa.fu,bbb@aaa.fu,ccc@ccc.fu y (_AND_) el destinatario es aaa@gmail.com:
# pilerexport -s 100000 -S 2000000 -f aaa@aaa.fu -f bbb@aaa.fu -f ccc@ccc.fu -r aaa@gmail.com
c) Hacer un «backup» diario al directorio actual:
# pilerexport –start-date 2012.01.30 –stop-date 2012.01.30
5.3- Eliminar correos antiguos
Borrar correos antiguos no es una obligación, pero es posible hacer mediante la herramienta ‘pilerpurge.py’:
Primero editaremos nuestro piler.conf
nano /usr/local/etc/piler/piler.conf
Agregamos esto:
queuedir=/var/piler/store
Para borrar los mensajes antiguos:
/usr/local/libexec/piler/pilerpurge.py -v -d -c /usr/local/etc/piler/piler.conf
Me complace anunciar la creación de esta útil herramienta (SquidStats), para el análisis y monitoreo…
La inteligencia artificial está revolucionando las industrias al automatizar tareas, predecir patrones y permitiendo tomar…
Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…
Percona Monitoring and Management (PMM) es una herramienta de código abierto para la supervisión y…
Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…
Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…
View Comments
Buenos días Alex.
Estoy teniendo problemas con la autenticación inicial de admin@local-pilerrocks y con auditor@local, no hay manera que autentique.
Me podrías decir algo?
Saludos
Tengo instalado y configurado el piler para almacenar los mensajes de mi servidor zimbra, pero la autenticación por el ldap no me funciona, he configurado cada cosa como explicas y aún así no me funciona.
Solo hay que editar estas líneas?? :
$config[‘ENABLE_LDAP_AUTH’] = 1;
$config[‘LDAP_HOST’] = ‘zmld01.zimbra.io’; ———:}> mi servidor zimbra
$config[‘LDAP_HELPER_PASSWORD’] = ‘XXXXXX’;————>la contraseña obtenida con el comando mencionado al principio del artículo.
Saludos
Respuesta para todos la cuenta archive si existe en piler. Puede que muchos no entendieran que queria decir con archive@piler.dominio.cu
piler.dominio.cu es el nombre DNS del servidor de piler que uds crearon. Yo solo invente un nombre uds deben usar el real de uds.OJO yo puse 2 metodos de hacer lo mismo no es hagan los 2 seguidos...si usan el 1ero ya no necesitan hacer el corto
Buenas Alexander,
Excelente post, si me pudieras ayudar, estoy teniendo inconvenientes al momento de querer direccionar todos los correos a la cuenta del servidor Piler
Todos mis correos van a un relay host superior, por lo cual debo configurar un mapa de transporte como indicas en el tutorial Pero al momento de ejecutar el comando:
zmprov ma archive@piler.test.com +zimbraMailTransport smtp:piler.test.com
Tengo el siguiente error.
ERROR: acount.NO_SUCH_ACCOUNT(no such account: archive@piler.test.com)
Esta cuenta existe en el servidor Piler
Desde ya muchas gracias
Saludos
Alexander en la parte de integrar el piler con el servidor samba4-ldap (en mi caso externo) sería lo mismo? pues tengo esa dudilla, yo tengo la sincronización a mi samba4 por ssl 3269 y halo los usuarios con un script bash que me sincroniza automáticamente entre los 2 servers cada x tiempo...cuando pongo la parte de: "Crear un fichero transporte" esto sería igual para un ldap externo pues me da error al final en el envio de los correos dentro de mi propio dominio...como si se perdiese por estas lineas 1.1 y la opción 1.2 me dice cuando la ejecuto:
zmprov ma archive@piler.dominio.cu +zimbraMailTransport smtp:piler.dominio.cu:25
ERROR: account.NO_SUCH_ACCOUNT (no such account: archive@piler.cmg.hidro.cu)
quisiera alguna sugerencia para arreglar esto...
saludos
estas usando el comando literalmente como lo puse y no es asi..deben interpretar las cosas..yo no puedo adivinar q nombre de server uds le pondran a su mailpiler...por lo q uso uno generico...como piler.dominio.cu
en tu caso el comando seria:
zmprov ma archive@piler.cmg.hidro.cu +zimbraMailTransport smtp:piler.cmg.hidro.cu:25
Debes usar tus datos, no usar mi ejemplo...los tutoriales se hacen siempre con ejemplos q debes extrapolar a tu entorno
alex out
Esto es lo que sale, siempre, en el mail.log
Nov 5 00:05:01 piler piler: INDEXER INFO: indexing delta1 started
Nov 5 00:05:01 piler piler: INDEXER INFO: indexing delta1 finished
Nov 5 00:05:06 piler piler: INDEXER INFO: merging delta to dailydelta started
Nov 5 00:05:06 piler piler: INDEXER INFO: merging delta to dailydelta finished
**************************
Nov 5 09:05:06 piler piler: INDEXER INFO: merging delta to dailydelta started
Nov 5 09:05:07 piler piler: INDEXER INFO: merging delta to dailydelta finished
Nov 5 09:15:01 piler piler: INDEXER INFO: indexing att1 started
Nov 5 09:15:01 piler piler: INDEXER INFO: indexing att1 finished
Nov 5 09:19:33 piler piler-webui[480]: username=admin@local, event='logged in', ipaddr=10.176.0.99
Nov 5 09:19:34 piler piler[631]: connection from 10.176.0.13
Nov 5 09:24:33 piler piler[628]: connection from 10.176.0.13
Nov 5 09:29:34 piler piler[632]: connection from 10.176.0.13
Nov 5 09:34:34 piler piler[633]: connection from 10.176.0.13
Nov 5 09:35:01 piler piler: INDEXER INFO: indexing delta1 started
Nov 5 09:35:01 piler piler: INDEXER INFO: indexing delta1 finished
Nov 5 09:35:06 piler piler: INDEXER INFO: merging delta to dailydelta started
Nov 5 09:35:06 piler piler: INDEXER INFO: merging delta to dailydelta finished
Nov 5 09:39:34 piler piler[627]: connection from 10.176.0.13
Nov 5 09:40:24 piler piler[634]: connection from 10.176.0.13
Nov 5 09:40:33 piler piler[626]: connection from 10.176.0.13
Nov 5 09:45:01 piler piler: INDEXER INFO: indexing att1 started
Nov 5 09:45:01 piler piler: INDEXER INFO: indexing att1 finished
Nov 5 09:45:33 piler piler[625]: connection from 10.176.0.13
Nov 5 09:45:45 piler piler[630]: connection from 10.176.0.13
Nov 5 09:50:45 piler piler[629]: connection from 10.176.0.13
segui siempre las opciones a) de la guia, el log de zimbra es este:
Nov 5 09:39:32 ZMail postfix/smtp[15839]: 31F76183749: to=, relay=127.0.0.1[127.0.0.1]:10024, delay=32, delays=0.15/0/0.01/31, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as AA45A18398B)
en la web del piler vemos:
Estado de SMTP:
piler: OK
smarthost: OK
con ngrep -X -e port 25 and host 10.176.0.3 vemos:
interface: ens33 (10.176.0.0/255.255.255.0)
filter: (ip or ip6) and ( port 25 and host 10.176.0.3 )
#
T 10.176.0.13:37130 -> 10.176.0.3:25 [S]
#
T 10.176.0.3:25 -> 10.176.0.13:37130 [AS]
#
T 10.176.0.13:37130 -> 10.176.0.3:25 [A]
#
T 10.176.0.3:25 -> 10.176.0.13:37130 [AP]
220-zmail.desoft.cu ESMTP Postfix..
#
T 10.176.0.13:37130 -> 10.176.0.3:25 [A]
#
T 10.176.0.13:37130 -> 10.176.0.3:25 [AP]
QUIT..
#
T 10.176.0.13:37130 -> 10.176.0.3:25 [AF]
#
T 10.176.0.3:25 -> 10.176.0.13:37130 [A]
#
T 10.176.0.3:25 -> 10.176.0.13:37130 [AP]
220 zmail.desoft.cu ESMTP Postfix..
#
T 10.176.0.13:37130 -> 10.176.0.3:25 [R]
exit
15 received, 0 dropped
10.176.0.13 es el ip (cambiado x supuesto) del piler y el 10.176.0.3 es el de mi zimbra 8.7
me fije que en la guia de jorge hay un + en vez de un * aqui: /(.*)/ prepend X-Envelope-To: $1. hice el cambio y sin resultados. me demore pq estaba corriendo varias pruebas (DNS, FIREWALLs etc) pero nada, todo esta bien.
El piler demora por defecto unos 30 mints en indexar los mensajes que le llegan, espera un rato y revisa. Si despues de un tiempo prudencial no te los indexa, postea por aqui el log del piler a ver donde esta tu error.
Buenas tardes, amigo he seguido su tutorial, y en los logs como ve:
Oct 4 13:45:10 ZMail postfix/smtp[6576]: E813A1838E5: to=, relay=127.0.0.1[127.0.0.1]:10032, delay=12, delays=0.05/0/0/12, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6E1AF18397F)
se envia, pero nunca llega a mi server de pilerm. pudiera ayudarme con esto? darme algunas ideas sobre la posible causa.
Esto debe funcionar bien en iredmail, ya lo comprobare después.
/etc/postfix/main.cf:
smtpd_recipient_restrictions = reject_non_fqdn_recipient, ..., \
check_recipient_access pcre:$config_directory/x-add-envelope-to, ...
always_bcc = archive@piler.yourdomain.com
/etc/postfix/x-add-envelope-to:
/(.*)/ prepend X-Envelope-To: $1
Comencé con el tutorial anterior pero me quedo atascado acá ya que utilizo iredmail. Y el tutorial no cubre iredmail, alguien me dice otro post donde pueda continuar e implementar mailpiler en iredmail ?