Saber el top de dominios que envia mas emails en un servidor (Plesk + QMail)

Siempre es útil conocer quienes son los clientes y dominios que dentro de un servidor envian más email y quienes pueden abusar los recursos. Por eso os voy a copypastear los scripts que me encontre en el blog personal de oscar montero:

Por ejemplo para saber  el top de dominios que más envia emails en un servidor (con qmail y plesk) puedes usar:

grep user  /usr/local/psa/var/log/maillog | grep LOGIN | cut -c50-140 | cut -d,
-f 2 | cut -d@ -f 2 |sort|uniq -c|sort -nk 1

Otra forma sería esta:
Continuar leyendo «Saber el top de dominios que envia mas emails en un servidor (Plesk + QMail)»

Instalar dovecot con Qmail

Dovecot es un servidor IMAP y POP ligero y rápido. Vamos a ver como instalarlo en un servidor qmail con vpopmail.

Desde site oficial de dovecot se puede descargar el paquete, una vez descomprimido lo configuramos según el siguiente configure:

./configure --disable-ipv6 --with-mysql \
      --with-sql=yes --with-sql-drivers

Al finalizar el configure tenemos que asegurarnos que ha detectado el vpopmail en las lineas de “user database modules” y “password lookup modules“:

Install prefix …………………. : /usr/local
File offsets …………………… : 64bit
I/O loop method ………………… : epoll
File change notification method ….. : inotify
Building with SSL support ……….. : yes (OpenSSL)
Building with IPv6 support ………. : no
Building with pop3 server ……….. : yes
Building with mail delivery agent .. : yes
Building with GSSAPI support …….. : no
Building with user database modules . : static prefetch passwd passwd-file sql vpopmail nss
Building with password lookup modules : passwd passwd-file shadow checkpassword sql vpopmail
Building with SQL drivers …………: mysql

Continuamos compilando e instalando:

make && make install

Añadimos un usuario para el daemon:

useradd dovecot

A continuación passamos a configurar el daemon con los siguientes ficheros:

  • /usr/local/etc/dovecot.conf:
    mail_location = maildir:/home/vpopmail/domains/%d/%n/Maildir
    
    ssl_disable=yes
    disable_plaintext_auth=no
    
    verbose_proctitle = yes
    first_valid_uid = 89
    last_valid_uid = 89
    
    protocol imap {
    	listen = *:143
    }
    
    auth default {
    
    	passdb vpopmail {
    	}
    
    	userdb vpopmail {
    	}
    }
  • /usr/local/etc/dovecot-sql.conf
    • No aparecen los correos

      dovecot: IMAP(ejemplo@systemsadmins.es): mkdir(/home/systemsadmins.es/ejemplo/Maildir/cur) failed: Permission denied

      Esto puede ser debido a que dovecot lo busca en un path incorrecto. Comprueba que /home/systemsadmins.es/ejemplo/Maildir/cur exista, y si no es así, modifica el parametro mail_location según corresponda.

    • Fallo de autenticación

      dovecot: auth(default): vmysql: sql error[3]: MySQL server has gone away

      Este error aparece quando se ha reiniciado el mysql. Debes reiniciar el dovecot

  • driver=mysql
    connect = host=/tmp/mysql.sock user=vpopmail password=vpopmailpassword dbname=vpopmail
    default_pass_scheme = PLAIN
    password_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user, pw_clear_passwd AS password FROM vpopmail WHERE pw_name = '%n' AND pw_domain = '%d'
    user_query = SELECT pw_dir as home, 64020 AS uid, 64020 AS gid FROM vpopmail WHERE pw_name = '%n' AND pw_domain = '%d'

    Para iniciar el daemon sólo hace falta ejecutar «dovecot» sin parámetros, peró recomendamos su uso combinado con las daemontools. Su fichero runsupervise sería: para el

    #!/bin/bash
    exec /usr/local/sbin/dovecot -F

    Problemas freqüentes de dovecot

    Algunos de sus problemas freqüentes són:

No aparecen los correos

dovecot: IMAP(ejemplo@systemsadmins.es): mkdir(/home/systemsadmins.es/ejemplo/Maildir/cur) failed: Permission denied

Esto puede ser debido a que dovecot lo busca en un path incorrecto. Comprueba que /home/systemsadmins.es/ejemplo/Maildir/cur exista, y si no es así, modifica el parametro mail_location según corresponda.

Fallo de autenticación

dovecot: auth(default): vmysql: sql error[3]: MySQL server has gone away

Este error aparece quando se ha reiniciado el mysql. Debes reiniciar el dovecot

Fuente: http://systemadmin.es

Estadísticas de Qmail en Plesk con Isoqlog

Que es Isoqlog?

Isoqlog es un analizador de logs de MTA escrito en C. Esta desarrollado para trabajar con los logs de qmail, postfix,

sendmail and exim y genera estadísticas en formato HTML.

//www.enderunix.org/isoqlog/isoqlog.gif

Algunas características
Soporte Multi MTA, Multi dominio, estadísticas de envió y de recepción, estadísticas por tiempo, estadísticas por tamaño, traducción a varios idiomas incluido el español. http://www.enderunix.org/isoqlog/output/ Y vea un ejemplo de los resultados que genera.

1) Descargelo

wget http://www.enderunix.org/isoqlog/isoqlog-2.2.1.tar.gz

2) Descomprimalo

tar -zxvf isoqlog-2.1.1.tar.gz
cd isoqlog-2.1.1

3) Compile, instale y limpie

./configure

make
make install
make clean

4) Cree un enlace de rcpthosts (Solo Qmail)

ln -s /var/qmail/control/rcpthosts /usr/local/etc/isoqlog.domains

5) Cree el directorio de salida

mkdir /home/httpd/vhosts/domain.com/httpdocs/mailstats

6) En el directorio de salida copie algunos archivos necesarios

cp -pr /usr/local/share/isoqlog/htmltemp/images /usr/local/share/isoqlog/htmltemp/library mailstats/

7) Configúrelo

cd /usr/local/etc/

7.1) Configuracion general de isoqlog

cp isoqlog.conf-dist isoqlog.conf
vi /usr/local/etc/isoqlog.conf
=================Isoqlog.conf==============================
#Este es mi archivo de configuración /usr/local/etc/isoqlog.conf
logtype = "qmail-syslog" # log type qmai-multilog, qmail-syslog, sendmail, postfix
logstore = "/usr/local/psa/var/log/maillog"
domainsfile = "/usr/local/etc/isoqlog.domains"
outputdir = "/home/httpd/vhosts/domain.com/httpdocs/mailstats"
htmldir = "/usr/local/share/isoqlog/htmltemp"
langfile = "/usr/local/share/isoqlog/lang/spanish"
hostname = "server.domain.com"
maxsender = 100
maxreceiver = 100
maxtotal = 100
maxbyte = 100
======================================

7.1) Configuracion de lista de dominios

cd /usr/local/etc/
cp isoqlog.domains-dist isoqlog.domains
vi /usr/local/etc/isoqlog.domains
===================Isoqlog.domais========
domain1.com
domainz.net
domainzxe.org
====================================

Ejecútelo manualmente

/usr/local/bin/isoqlog

9) Programelo editando su crontab y agregue la siguiente línea (En mi caso lo tengo en prueba cada 59 Minutos)

vi /etc/crontab
*/59 * * * * root /usr/local/bin/isoqlog 1>/dev/null 2>/dev/null

10) Observe que interesante reporte

http://domain.com/mailstats/

Pdt1: Lo probé con ensim y sendmail y funciona solo que la sumas de tamaños generales quedan en 0
Pdt2: Primera version; Puede tener errores; Bienvenidas las mejoras

Regenerar configuración Qmail en PlesK

En ocasiones se produce algún tipo de corrupción en la configuración de qmail, para rehacer la configuración que hace plesk de qmail disponemos de una aplicación muy interesante:

# /usr/local/psa/admin/bin/mchk
Synopsis:
mchk [OPTION]
–without-spam – restore all settings except for SpamAssassin configuration
–with-spam – restore all settings
–spam-only – restore only SpamAssassin settings

Esta utilidad regenera los ficheros de los directorios /var/qmail/control, /var/qmail/users y ademas retoca los propietarios y permisos de todos los archivos de /var/qmail/mailnames. Esto resulta interesante despues de copiar a “pelo” archivos de correo, practica poco recomendable pero que en ocasiones puedes verte obligado a realizar, sobretodo cuando hay alguna catastrofe y estamos reconstruyendo a partir de deshechos.

Hay que tener en cuenta que si el volumen es alto puede tomarse su tiempo, asi que si lo ejecutas en un servidor en producción tomatelo con calma.

Mails en cola con mucha antigüedad con Qmail – QueueLifeTime

Hace poco observé que la cola de mails del servidor Plesk tenía mails antiguos con hasta siete días de antigüedad. Esto es porque pueden haber mails que tienen destinatarios falsos y por tanto, el servidor SMTP no es capaz de entregar el mensaje correctamente, con lo cual, lo pone en cola y espera a entregarlo más tarde. El número de reintentos va con la antigüedad del mail, a más antigüedad, menos reintentos.

Para modificar el valor por defecto del SMTP(Qmail) en relación al tiempo que un mail permanece en espera en el servidor, hemos de crear un archivo y reiniciar el servicio.  Lo aconsejable son 48 horas, 172800 segundos.

# joe /var/qmail/control/queuelifetime

Editamos con el valor 172800 y Ctrl+K+X para guardar. Reiniciamos el servicio.

# /etc/init.d/qmail restart

Para poder ver que todo marcha bien, podemos examinar el log de qmail.

# tail -f /usr/local/psa/var/log/mailog