# rm-rf.es

clamdscan: corrupt or unknown clamd scanner error or memory/resource/

Este error me he encontrado en un servidor con qmail + qmail-scanner, el error exactamente era el siguiente:

Sep 23 12:54:05 delta X-Antivirus-xxx.xx-1.25-st-qms:  [xxxxxxxxtx.cxmx22x6x2x5x0x3x2x57] clamdscan: corrupt  or unknown clamd scanner error or memory/resource/perms problem -  exit status 512/

Por otro lado el log de clamd nos daba más pistas sobre como solucionar el error:

ERROR: Socket file /tmp/clamd.socket exists. Either remove it, or configure a different one.

Así de fácil ha sido, eliminamos el socket y reiniciamos clamd:

rm -f  /tmp/clamd.socket && /etc/init.d/clamd restart

Gestionar cola de correo de Qmail con qmHandle

qmHandle es una herramienta (script) escrita en perl que sirve para manejar la cola de correo de Qmail.
La última versión puede ser descargada aquí, paso a describir las distintas opciones de las que dispone:

Utilización:

qmhandle <opción>

Opciones:

  -a    : Enviar todos los mensajes pendientes de la cola
  -l     :  Listar las colas de correo
  -L    : Listar cola de correo local
  -R   : Listar cola de correo remota
  -s    : Mostrar por pantalla estadísticas
  -mN : Mostrar mensaje N
  -dN  : Borrar mensaje N
  -Stext : Borrar todos los mensajes cuyo asunto contenga "text"
  -D     : Borrar todos los correos de la cola (remota y local)
  -V     : Sacar versión por pantalla
  -c     : Resultados con colores
  -N     : Listar solo números (identificadores) de mensaje

Reparar cola de Qmail con queue-repair

Muchos de nosotros hemos tenido alguna vez que lidiar con problemas en la cola de correo de Qmail, ya sea una cola corrupta, llena u otro tipo de problema.

Queue-repair es una herramienta que nos permite reparar la cola de correo, o recrear su estructura completamente entre otras cosas.

Los requerimientos de esta herramienta son Python 1.5.2 o superior y lógicamente Qmail.
La documentación de queue-repair está disponible en este enlace, vamos a repasarla un poco:

Instalación:

  1. Descarga la herramienta.
  2. Descomprimir.
  3. tar xzf queue-repair-version.tar.gz
  4. Copiar los contenidos donde deseemos.
  5. mkdir /usr/local/lib/queue-repair
    cp -a queue-repair-version/* /usr/local/lib/queue-repair/
    

El modo de uso es el siguiente (recordad parar qmail antes de empezar):

queue_repair.py [options] [conf-qmail]

Y algunas de sus opciones son:

  • –test / -t : Ejecutar en modo de pruebas, nos mostará los errores y las posibles soluciones sin modificar nada.
  • –repair / -r : Ejecutar en modo de reparación, tratará de reparar todos los errores que encuentre, pero las carpetas de cola de correo deben seguir existiendo (queue, queue/mess, queue/info, etc).
  • –create / -c : Qmail tratará de arreglar todos los problemas que encuentre, y recreará las carpetas y estructura que considere necesario.
  • –split N / -s N :P or defecto su valor es 23, es el número de subdirectorios que tendrá la cola de correo, en los cuales se almacenarán los mensajes pendientes (realmente es algo más complejo, no obstante el valor por defecto siempre me ha venido bien).
  • –bigtodo / -b : Para qmails parcheados con el parche big-todo. También sirve para convertir la cola a big-todo (será necesario recompilar para que funcione con el parche).
  • –no-bigtodo / -n: Será qmail quien averigue si utilizamos o no el parche big-todo.También sirve para convertir la cola a no-bigtodo (será necesario recompilar para que funcione sin el parche).

El modo más común de reparar o recrear una cola de correo es el siguiente:

Crear una cola de correo ficticia, lo cual nos servirá para comprobar que la herramienta hace su tarea de forma correcta sin poner en peligro el servicio:

./queue_repair.py -c -s 23 --no-bigtodo .

Con este último comando, debería haber creado la estructura de carpetas de forma correcta en la ubicación que le hayamos indicado:

drwx------ 2 qmails qmail 4096 mar 25 17:39 bounce
drwx------ 25 qmails qmail 4096 mar 25 17:39 info
drwx------ 2 qmailq qmail 4096 mar 25 17:39 intd
drwx------ 25 qmails qmail 4096 mar 25 17:39 local
drwxr-x--- 2 qmailq qmail 4096 mar 25 17:39 lock
drwxr-x--- 25 qmailq qmail 4096 mar 25 17:39 mess
drwx------ 2 qmailq qmail 4096 mar 25 17:39 pid
drwx------ 25 qmails qmail 4096 mar 25 17:39 remote
drwxr-x--- 2 qmailq qmail 4096 mar 25 17:39 todo

Ahora ya podemos recrear la cola de correo verdadera, suponemos que qmail se encuentra en /var/qmail, es donde recrearemos la cola de correo (es recomendable eliminar o mover la cola antes, es la carpeta queue):

cp -Rp /var/qmail/queue /var/qmail/queue.bak
rm -rf queue
./queue_repair.py -c -s 23 --no-bigtodo /var/qmail

Una vez finalizado, reiniciamos qMail y revisamos los logs para verificar que todo es correcto, recordad revisar la documentación para información más detallada.

Arquitectura de qmail

Arquitectura qMail

Gracias a una serie de diagramas, podemos estudiar y comprender la arquitectura y funcionamiento de este MTA, el cual es uno de los más potentes, pero también mas complejos.

Básicamente los diagramas muestran los programas que forman qmail, y el modo en el que interactuan.

The big qmail picture formato GIF:

[ 1 | 2 | 3 | 4 ]

The big qmail picture formato PPS:

The big qmail picture

The big qmail picture tamaño A4:

PS / PDF (color) / PS / PDF (blanco y negro)