Qmail en la Release de OVH : Problemas y soluciones


Introducción

Esta guía describe y analiza en profundidad cómo se ha hecho instalación de Qmail con la distribución Linux Release de OVH y el panel OVHm, aunque puede ser utilizada para el resto de distribuciones Linux.

Si utiliza un alojamiento compartido (GP/Plan) de OVH o un MX plan puede seguir la guía EmailSmtpPop3Imap

En los servidores dedicados preconfigurados, hemos preinstalado un servidor de email qmail: http://www.qmail.org/

En nuestra release, Qmail tiene los patchs siguientes:
  • patch TLS que permite enviar los emails encriptados con SSL
  • patch spamcontrol

También analizamos los principales problemas que pueden darse en el uso normal de Qmail, así como sus posibles soluciones .


Antes de comenzar

El servidor de email es un software que tiene como finalidad aceptar los emails en el puerto 25 via el protocolo SMTP. Para saber como funciona el protocolo SMTP he aqui la URL del RFC http://www.ietf.org/rfc/rfc0821.txt

He aquí un ejemplo de comunicación SMTP en el puerto 25:


$ telnet mx3.ovh.net 25 Resolución de mx3.ovh.net
Trying 213.186.33.73...
Connected to mx3.ovh.net.
Escape character is .
220 Welcome ! You are on server 8 called mx3.ovh.net, spam protected: www.spam-rbl.com ESMTP
HELO ping.ovh.net Nos presentamos
250 Welcome ! You are on server 8 called mx3.ovh.net, spam protected: www.spam-rbl.com

MAIL FROM:<usuario@ovh.net> Dice quien envia el email
250 ok

RCPT TO: dice a quien queremos enviar el email
250 ok aceptación
DATA
354 go ahead
test el cuerpo del email. Normalmente hay que insertar los campos FROM, TO, SUBJECT
.
250 ok 1065864990 qp 27338
QUIT Salir
221 Welcome ! You are on server 8 called mx3.ovh.net, spam protected: www.spam-rbl.com

Connection closed by foreign host.


Las informaciones en DATA deben normalmente ser el e-mail mismo. Es decir, tener la forma de un email:


From: usuario@ovh.net
To: usuario@ovh.net
Subject: test

test




Si el email ha sido aceptado por el servidor mx3.ovh.net se debe:

  • bien porque la IP de donde se ha hecho la conexión ping.ovh.net 213.186.33.13 puede hacer relay de los emails via mx3.ovh.net
  • bien porque mx3.ovh.net es el servidor MX de ovh.net


Relay

La función más habitual de cualquier servidor de email es hacer de relay que consiste en:

  • Aceptar el email y entonces enviar 250 ok después RCPT TO
  • Meter los emails en el spool o la cola
  • Reenviar el email hacia el servidor MX del destinatario.

Es un servidor SMTP el que va a ocuparse sólo de distribuir los emails en internet.
Los proveedores de acceso (terra, orange) proponen este tipo de servidores para enviar los emails de sus usuarios.

  • La primera etapa ha sido presentada en antes de comenzar que consiste simplemente en aceptar el email.

El problema se hace complejo con la gestión de spam mediante alguna de las protecciones presentadas a continuación.
Es el proceso qmail-smtp que se ocupa de esta función.
Su labor es a de saber comunicar con SMTP y saber grabar el email bajo forma de un fichero en el disco duro.

  • La segunda etapa consiste en almacenar el email en los discos esperando la tercera etapa.

  • La tercera etapa utiliza DNS para saber el servidor que gestiona el dominio y se intenta enviar el correo a este servidor.


Para gestionar la función relay (enviar correo), hay que gestionar qué usuarios pueden utilizar esta función.

Si usted permite a todos los usuarios enviar correo, su máquina será utilizada como un servidor relay por los spammers. Existen varios modos de evitarlo:

    • Listas estáticas de IP
    • POP antes de SMTP
    • SMTP auth


Listas estáticas de IP

Para gestionar los accesos de modo estático existe un fichero denominado /etc/tcp.smtp.


# cat /etc/tcp.smtp
127.0.0.:allow,RELAYCLIENT=" "
:allow



Esto quiere decir que:

  • todos los emails que vienen de ip 127.0.0.X son reenviados.
  • todos los emails que vienen de otros ip son aceptados únicamente si el destinatario está configurado en la máquina (ver el servidor MX).


Por tanto puede añadir una IP de su elección (por ejemplo su tiene un IP fijo de su empresa o IP fijo de adsl) y compilar tcp.smtp


# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp



Las modificaciones hechas son de esa forma actualizadas en el fichero /etc/tcp.smtp.cdb que se utiliza por el servidor smtp.

No necesita reinstalar el servidor smtp.

El fichero se lee en cada conexión SMTP.

En el caso de proveedores de acceso, las clases ip son insertadas en los servidores smtp que permite a los clientes del proveedor de acceso utilizar automáticamente el servidor smtp de relay sin necesidad de otro tipo de configuración.


Parches avanzados para Qmail

POP antes de SMTP

La opción open-smtp o pop-smtp consiste en utilizar el servidor de pop3/impa para identificarlo en el servidor pop3.

El hecho de utilizar login y contraseña permite estar seguro de que se trata de una persona de confianza y por tanto permitirle relay.

Durante la operación de pop3/imap el servidor pop3 registra la IP de conexión, lo actualiza en /etc/tcp.smtp y compila /etc/tcp.smtp.cdb


# cd /etc/vpopmail/
# ls -l
total 696
-rw-r-r- 1 vpopmail vchkpw 25 fév 24 2003 inc_deps
-rw-r-r- 1 vpopmail vchkpw 32 fév 24 2003 lib_deps
-rw-r-r- 1 root root 700229 oct 11 13:22 open-smtp
-rw-r-r- 1 root root 0 oct 11 13:22 open-smtp.lock


Todos los ip temporales ese alamcenan en open-smtp:


# head -n 5 open-smtp
213.41.188.249:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029581749
213.41.184.98:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029782162
213.41.184.135:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029880909
213.41.186.107:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029960881
213.41.186.122:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1030146813



La última cifra es la hora en segundos desde 1970 y permite saber cuando la IP ha utilizado el pop3/imap por última vez.

Y esto por tanto permite a otro script [/home/vpopmail/bin/clearopensmtp] ver todos los mensajes e IPs de más de 3 horas y retirarlos de la cola [/etc/tcp.smtp] para que entren en error.


El comando estará en el crontab, de la forma :

# cat /etc/crontab
[...]
40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null
[...]




Importante :

En un crontab se debe utilizar e indicar el usuario y así introducir :
40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null


y no sólo :
40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null




Estado de la cola de smtp

Ya de paso vemos que en esta máquina el fichero open-smtp es particularmente grande.


# wc -l /etc/vpopmail/open-smtp
11859 /etc/vpopmail/open-smtp



El valor 11859 es mucho, ejecutamos clearopensmtp :


# cd /etc/vpopmail/
# ls -l open-smtp
-rw-r--r-- 1 root root 700229 oct 11 13:29 open-smtp
# /home/vpopmail/bin/clearopensmtp
# ls -l open-smtp
-rw-r--r-- 1 vpopmail vchkpw 529 oct 11 13:29 open-smtp
# wc -l open-smtp
open-n-smtp
# cp /etc/crontab /etc/crontab.OLD
# pico /etc/crontab
# /etc/rc.d/init.d/crond restart
Stop crond : [ OK ]
Start crond : [ OK ]
# diff -u /etc/crontab.OLD /etc/crontab
- /etc/crontab.OLD Sat Oct 11 13:31:15 2003
+ /etc/crontab Sat Oct 11 13:31:24 2003

42 4 1 * * root run-parts /etc/cron.monthly

# vpopmail
-40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null
+40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null



Es mejor. Los permisos de open-smtp también han cambiado, lo cual no es grave.


SMTP auth

Para no obligar a utilizar POP antes de poder enviar los emails podemos añadir a Qmail el parche smtp-auth.

Este patch permite enviar a través de una conexión smtp, una autenticación con un login y contraseña de una cuenta pop. Sólo entonces permite el envío de los emails.

Veamos el procedimiento de conexión en este caso:

Nota: No merece la pena cargar a la inversa las cadenas enviadas para conocer las contraseñas. Todas las cadenas son falsas.



# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is .
220 Welcome ! You are on server 1 called mx1.ovh.net, spam protected: www.spam-rbl.com ESMTP
EHLO ping.ovh.net
250-Welcome ! You are on server 1 called mx1.ovh.net, spam protected: www.spam-rbl.com
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250-STARTTLS
250-8BITMIME
250 SIZE 10000000
AUTH LOGIN
334 VXNlcm5hbWU6
cG9zdG1gregreRlciVtbC5vdmgubmV0
334 UGFzc3dvcmQ6
errrob3Zo
235 ok, go ahead (#2.0.0)
MAIL FROM:<oles@ovh.net>
250 ok
RCPT TO:<oles@ovh.net>
250 ok
DATA
354 go ahead
truc
.
250 ok 1065758232 qp 5296
QUIT
221 Welcome ! You are on server 1 called mx1.ovh.net, spam protected: www.spam-rbl.com

Connection closed by foreign host.


Explicación

Vemos que en lugar de HELO, enviamos EHLO lo que permite utilizar los comandos avanzados de ESMTP descritos en http://www.ietf.org/rfc/rfc2821.txt


El servidor responde a EHLO con todas las opciones que acepta, es decir:


250-AUTH LOGIN CRAM-MD5 PLAIN se trata de smtp-auth
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING definido el tipo de diálogo
250-STARTTLS ssl o tls o conexión encriptada
250-8BITMIME acepción de los email de 8bits y no 7bit como smtp
250 SIZE 10000000 la talla máxima del email es de10Mb



El login y contraseña se envian en base64.

La instalación de este patch es compleja y necesita algunos trucos. Contacte con el soporte si tiene algún problema.



Qmail-relay OSD

Si tiene el servidor pop3/imap muy cargado con mas de 3000-4000 conexiones/hora, le aconsejamos utilizar el patch OSD (Open-Smtp-Dir) que puede encontrar en:

ftp://ftp.ovh.net/made-in-ovh/vpopmail

Este patch ha sido realizado por OVH y consiste en no utilizar el fichero open-smtp con el sistema de lock (bloqueo de IP).
Si muchas personas se conectan al servidor pop3/imap deberan esperar cada uno su turno para tener acceso al fichero para registrar la IP que ralentiza el servidor.

En vez de eso, hemos tenido la idea de utilizar un directorio con registro de ficheros con el número de IP y un tamaño nulo.

A cada nueva conexión actualizamos la fecha del fichero y un tmpwatch elimina los ficheros de mas de tres horas. Otro script actualiza /etc/tcp.smtp cada segundo.


Qmail-relay remote

También puede especificar IP de las máquinas destinatarias directamente en la configuración de Qmail.

Esto es muy util cuando por ejemplo el servidor MX no está accesible (como por ejemplo caramail.com).

En ese caso, podemos indicar al servidor de utilizar un servidor SMTP especial, cuyo papel es el de reenviar los emails únicamente para un dominio dado (en este caso caramail.com).

El proceso destinado a ello es qmail-remote que se ocupa de conectar los servidores elegidos mediante el puerto 25 y reenviar los emails.


# cat /var/qmail/control/smtproutes
caramail.com:213.186.33.9



Asi, todos los emails hacia caramail serán dirigidos hacia 213.186.33.9 que se ocupará de la distribución de emails hacia caramail.com.

Así evitaremos tener un spool de email demasiado importante y descargaremos los servidores.

Por supuesto es necesario que 213.186.33.9 acepte los emails a partir del email desde el que se reenvian los emails, pero confiamos en la buena configuración de los servidores. No hace falta reiniciar el servidor después de esta modificación.



Cola de recepción

Para ver el estado del spool:


# /var/qmail/bin/qmail-qstat
queue
messages in queue: 360
messages in queue but not yet preprocessed: 0



Esto quiere decir que hay 360 emails que el servidor de email ha enviado ya una vez visiblemente, sea porque el destinatario no existe, sea porque el servidor MX del destinatario no funciona correctamente.

Hay que señalar que existen a menudo problemas de tiempo de respuesta del servidor de relay cuando hay muchos emails en el spool.

Qmail es verdaderamente demasiado largo con mas de 25000 emails en el spool. En ese caso, la preparación del email se hace mas y mas larga y aumenta la presencia de mensajes como messages in queue but not yet preprocessed.

Para ver los emails:


# /var/qmail/bin/qmail-qread | grep remote | grep -v done
remote dr_adams@sm66.com
remote 66-2434019-directway.com?amysummers@trailerr.trailblazernews.com
remote 2245031-5-reply@msgbnc.tgtrewards.net
remote response@sleekzine.com
remote larhondabeirne@hushmail.com
...


¿Por qué están ahí esos emails? Puede ser debido a que :

  • el servidor de relay ha aceptado el relay (reenviar), pero el destinatario no existe RCPT TO
  • el servidor de relay ha aceptado el relay (reenviar), pero el servidor MX del destinatario no existe
  • el servidor de relay ha aceptado el relay (reenviar), pero el servidor MX del destinatario no funciona
  • el servidor MX ha aceptado el email pero la cuenta pop3 local no existe y entonces intentamos reenviar el email hacia el emisor con el error, pero:
  • el destinatario no existe (MAIL FROM del email inicial)
  • el servidor MX del destinatario no existe.


Es qmail-send quien se ocupa de la gestión de la cola para todo qmail. Su rol es de mirar los ficheros que qmail-smtp ha dejado y distribuirlos.

Puede elegir entre una distribución local (en el caso en el que el destinatario se encuentre en la misma máquina, es decir el servidor MX del email y existe una cuenta pop3/imap por ejemplo en la máquina remoto (distante: es decir, reenviar el email al destinatario del email).

La tercera etapa consiste en enviar el email al destinatario. Por tanto el email está tomado de spool para saber quien es el destinatario.

Qmail busca los servidores MX del dominio. Después se conecta en el puerto 25 para enviar el email. Esta operación es la misma que al principio.

Podemos tener varios MX en un dominio con el mismo peso o diferente.
En ese caso, el servidor SMTP intenta inicialmente conectarse al servidor MX con un menor peso. Si 2 MX tiene el mismo peso, entonces es este el que será utilizado en primer lugar.

A nivel de erores, vea la sección error.

Cada operación de relay es grabada en el encabezamiento del email (header).

Podemos ver quien, desde donde y por medio de que servidor de email se ha enviado el email:


Delivered-To: ovh.net-60gp@ovh.net
Received: (qmail 15496 invoked by uid 505); 11 Oct 2003 09:22:30 -0000
Received: from unknown (HELO 200-102-028-198.fnsce7005.dsl.brasiltelecom.net.br) (200.102.28.198)
by mx4.ovh.net with SMTP; 11 Oct 2003 09:22:28 -0000


La lectura se hace de abajo a arriba. Vemos que el email se ha emitido de 200.102.28.198 que se ha conectado a mx4.ovh.net y que el email ha llegado a la cuenta 60gp@ovh.net.


Ver los logs, encabezamientos y spam-tags

Para ver el funcionamiento de su servidor email puede ver los logs.
Por defecto, usted tiene los logs únicamente de la tercera etapa:


# tail -f /var/log/qmail/current
@400000003f87e06f3172d234 end msg 195408
@400000003f87e07005d90c24 delivery 3534821: deferral: Sorry,_I_wasn't_able_to_establish_an_SMTP_connection._(#4.4.1)/
@400000003f87e07005d91fac status: local 0/15 remote 1/120
@400000003f87e0740c22b274 new msg 195408
@400000003f87e0740c22be2c info msg 195408: bytes 1580 from <loubfeenah@wanadoo.fr> qp 30987 uid 503
@400000003f87e0740c7fb6f4 starting delivery 3534823: msg 195408 to local hfifi-geefnie.com-studio@hiffi-gefenie.com
@400000003f87e0740c7fc694 status: local 1/15 remote 1/120
@400000003f87e0741c7b34d4 delivery 3534823: success: did_0+0+1/
@400000003f87e0741c7b4474 status: local 0/15 remote 1/120
@400000003f87e0741c7b485c end msg 195408



  • status: local 0/15 remote 1/120 quiere que sobre la distribución spool->local (las cuentas pop3) qmail utiliza 0 conexiones sobre 15 y de spool->remote (la tercera etapa) 1 sobre 120

Atención: si el fichero espera un cierto tamaño habrá que rehacer tail para tener los logs.


También puede utilizar el comando tail -F que reabre el fichero


Recepción de correo

Los emails deben llegar al servidor MX destinatario en algún momento. Es decir, el que va a almacenar el email en espera de una consulta mediante pop3 o imap.

Qmail como servidor MX

En ese caso, el servidor email acepta el email y hace exactamente los mismo que en el caso de envío.

Es la tercera etapa la que cambia. En la tercera etapa el proceso qmail-sent ha detectado que el destinatario existe en el servidor.

Recordemos que el proceso qmail-sent que se ocupa en la segunda etapa de gestionar el spool. Se encarga pues de reinicar las listas de todos los dominios que se encuentran en el servidor.

Estas listas están en:


# ls -l /var/qmail/users/assign
-rw-r--r-- 1 root root 24546 oct 9 10:32 /var/qmail/users/assign




NO modifique alegremente estos ficheros. Tienen una forma especial y hay siempre un fichero cdb que hace falta compilar.


# head -n 4 /var/qmail/users/assign
+00-00l0-00l00l-0-0.com-:00-00l0-00l00l-0-0.com:508:503:/home/vpopmail/domains/00-00l0-00l00l-0-0.com:-::
+00h01.com-:00h01.com:508:503:/home/vpopmail/domains/00h01.com:-::
+01emarket.com-:01emarket.com:508:503:/home/vpopmail/domains/01emarket.com:-::



Por tanto, si el destinatario se encuentra en el servidor qmail-sent utiliza qmail-local para distribuir el email en local en el directorio correcto.

Dentro debe haber un fichero .qmail-default o es vpopmail quien se encarga de distribución del email con todo el sistema de redirecciones, alias, mailing list, catch all y las cuentas pop3 con una gestión de quota.

Configuración del servidor MX

En la distribución OVH hemos seleccionado Vpopmail como sistema de recepción.

Dispone de información sobre ello en la guía: VpopmailYAdministracion


Configurar Qmail

Tamaño máximo del fichero

Para asignar un tamaño máximo de fichero debe introducirse en SSH el comando :

# echo "10000000" > /var/qmail/control/databytes



Todos los emails que tienen un tamaño mayor a 10 MB serán rechazados.


Tiempo de vida del email en el spool


# echo "846000" > /var/qmail/control/queuelifetime



Si el email permanece en el spool durante 10 días y no ha sido reenviado, entonces vuelve en forma de doble error hacia la cuenta postmaster del servidor. Si el fichero no existe, el email es devuelto al cabo de 5 días.

Rechazar los emails con un cierto MAIL FROM

En el diálogo SMTP, el servidor responsable comunica un MAIL FROM único para cada servidor.

ATENCION /!\ : El campo MAIL FROM no tien nada que ver con el campo From: de un mensaje de correo.



# echo "spammer@spam" > /var/qmail/control/badmailfrom



Podemos rechazar ciertos MAIL FROM que evitará la recepción de todos los mensajes que vengan de un mismo servidor, si sabemos a ciencia cierta que es un servidor que nos bombardea con SPAM o con virus.


Modificar el puerto SMTP

El puerto por defecto de SMTP es el 25. Para cambiarlo es necesario modificar la línea de ejecución de SMTP en el fichero de inicio.

En la Release 2, el fichero de inicio está en : /etc/init.d/qmail

Editamos el fichero y modificamos la línea :


tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 smtp \


por la línea

tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 puerto_deseado \



Reiniciamos qmail y se montará en el puerto indicado :


# /etc/init.d/qmail restart



Vaciar completamente una cuenta POP

Si una de las cuentas de un dominio está saturada, podemos vaciarla completamente a través de SSH.

La secuencia de comandos es la siguiente:



# cd /home/vpopmail/domains/mi_dominio.com/mi_cuenta/Maildir/

# rm -rf new/*
# rm -rf cur
# mkdir cur

# chown -R vpopmail.vchkpw cur
# chmod -R 755 cur


Substituimos mi_dominio.com y mi_cuenta por el dominio y la cuenta afectados.


Al final del proceso, la cuenta estará vacía y todos los mensajes habrán desaparecido.



Errores


Sorry,_I_wasn't_able_to_establish_an_SMTP_connection

El servidor no ha podido establecer una conexión SMTP.
Las causas pueden ser múltiples.
Vamos a ver ejemplos prácticos de las más habituales.

Ejemplo 1

Intentamos enviar a dr_adams@sm66.com

Lo primero es saber qué servidor MX tiene el dominio sm66.com, así que preguntamos al servicio DNS.


# dig sm66.com mx

; <<>> DiG 9.2.1 <<>> sm66.com mx

;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32527
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;sm66.com. IN MX

;; ANSWER SECTION:
sm66.com. 86400 IN MX 10 mail.sm66.com

;; Query time: 396 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Oct 11 12:09:00 2003
;; MSG SIZE rcvd: 47



Si se utiliza djbdns, podemos usar directamente dnsmx


# dnsmx sm66.com
10 mail.sm66.com



El servidor de correo que gestiona todos los mensajes hacia @sm66.com es por tanto mail.sm66.com

Vamos a intentar enviar el correo a esa máquina:

# telnet mail.sm66.com 25
Trying 66.239.204.101...
Connected to mail.sm66.com.
Escape character is ''`]'.
421 newd1.sm66.com out of connection slots
Connection closed by foreign host.



Como se puede ver, el servidor no funciona correctamente. Podemos ver el mensaje de error (es todo un detalle):out of connection slots

Lo que nos hace pensar que hay demasiadas conexiones de correo en ese momento Qmail va a intentar de enviar el correo más tarde.


Ejemplo 2

Otro ejemplo. Hay un error al enviar un correo a 66-2434019-directway.com?amysummers@trailerr.trailblazernews.com

La dirección misma ya se asemeja a un email de spam. Vamos a comprobarlo:


# dnsmx trailerr.trailblazernews.com
10 stdin-mv-01.trailblazernews.com
# telnet stdin-mv-01.trailblazernews.com 25
Trying 206.131.244.8...
# telnet: connect to address 206.131.244.8: Connetion refused



El servidor MX está conectado y accesible, pero no hay un demonio SMTP que esté funcionando, así que no se puede hacer una conexión al puerto 25.


# ping stdin-mv-01.trailblazernews.com
PING stdin-mv-01.trailblazernews.com (206.131.244.8) from xxxxxxx : 56(84) bytes of data.
64 bytes from news1mv.trailblazernews.com (206.131.244.8): icmp_seq=0 ttl=240 time=83.048 msec
64 bytes from news1mv.trailblazernews.com (206.131.244.8): icmp_seq=1 ttl=240 time=81.381 msec

stdin-mv-01.trailblazernews.com ping statistics
3 packets transmitted, 2 packets received, 33% packet loss
round-trip min/avg/max/mdev = 81.381/82.214/83.048/0.881 ms


# telnet stdin-mv-01.trailblazernews.com
Trying 206.131.244.8...
Connected to stdin-mv-01.trailblazernews.com.
Escape character is '.]'.
Red Hat Linux release 7.2 (Enigma)
Kernel 2.4.7-10 on an i686
login:
Login incorrect

login:
Login incorrect

login:
Login incorrect

login:
Connection closed by foreign host.



La conexión en el puerto del telnet es posible, pero lógicamente, nos solicita una contraseña.


Ejemplo 3

Otro ejemplo más: response@sleekzine.com

Repetimos el procedimiento:

# dnsmx sleekzine.com
20 mail2.sleekzine.com
30 mail3.sleekzine.com
10 mail1.sleekzine.com



En este caso hay tres servidores MX diferentes con un peso para cada servidor.

Qmail intentará enviarlo en primer lugar a mail1.sleekzine.com que tiene el peso más débil.
Si no obtiene respuesta lo intentará con mail2.sleekzine.com y por último con mail3.sleekzine.com


# telnet mail1.sleekzine.com 25

Trying 216.93.189.135...
telnet: Unable to connect to remote host: Connection timed out
# telnet mail1.sleekzine.com 25
Trying 216.93.189.135...
telnet: Unable to connect to remote host: Connection timed out
# telnet mail3.sleekzine.com 25
Trying 216.93.189.133...
telnet: Unable to connect to remote host: Connection refused



Si miramos lo que hace Qmail en un caso así:

# echo "test" | mail -s "test" response@sleekzine.com
# ps auxw
...
qmailr 7066 0.0 0.5 2568 736 ? S 15:04 0:00 qmail-remote sleekzine.com root@nsxxxx.ovh.net response@sleekzine.com
...
# tail -f /var/log/qmail/current
@400000003f880003024f7034 new msg 66208
@400000003f880003024fbe54 info msg 66208: bytes 229 from <root@nsxxxx.ovh.net> qp 7065 uid 0
@400000003f88000303f530f4 starting delivery 67496: msg 66208 to remote response@sleekzine.com
@400000003f88000303f5447c status: local 0/10 remote 1/20
@400000003f88003f221f1d74 delivery 67496: deferral: Sorry,_I_wasn't_able_to_establish_an_SMTP_connection._(#4.4.1)/
@400000003f88003f221f30fc status: local 0/10 remote 0/20





553 sorry, that domain isn't allowed to be relayed thru this MTA

En este caso el servidor no tiene un destino para esa dirección. Esto quiere decir que:
- La IP de la conexión no está en /etc/tcp.smtp (sección relay)
- El destinatario no tiene cuenta en la máquina (sección mx)


$ telnet mx1.ovh.net 25
Trying 213.186.33.29...
Connected to mx1.ovh.net.
Escape character is '.]'.
220 Welcome ! You are on server 2 called mx1.ovh.net, spam protected: www.spam-rbl.com ESMTP
HELO ping.ovh.net
250 Welcome ! You are on server 2 called mx1.ovh.net, spam protected: www.spam-rbl.com
MAIL FROM:<usuario@ovh.net>
250 ok
RCPT TO:<mongr@wanadoo.es>
553 sorry, that domain isn't allowed to be relayed thru this MTA (#5.7.1)
QUIT
221 Welcome ! You are on server 2 called mx1.ovh.net, spam protected: www.spam-rbl.com
Connection closed by foreign host.



En este caso podemos adivinar fácilmente que el dominio wanadoo.es no está gestionado por mx1.ovh.net, se trata simplemente de un problema de relay.

La IP de la conexión no está declarada en la sección /etc/tcp.smtp (ver la sección relay).

Si el servidor gestiona el nombre de dominio y se obtiene este error, debe verificar que el dominio está declarado en /var/qmail/bin/assign y si antes de iniciar qmail-send se han cerrados todas las instancias anteriores mediante:


# killall -HUP qmail-send



Si no hay varias instancias del servidor, puede haber una declaración falsa en el DNS: se ha indicado un servidor de correo que no tiene nada que ver con el dominio y que por tanto, al recibir un correo de un dominio que no conoce, arroja este error.


qmail_has_prog_delivery_but_has_x_bit_set._(#4.7.0)

Este error refleja que el directorio /home/vpopmail tiene elementos con el permiso de ejecución activado, algo totalmente incorrecto (chmod 700 en lugar de un chmod 600 en un .qmail-alias)

Puede usar un script de bash para corregir esos errores de manera fácil:

#!/bin/sh
cd /home/vpopmail/domains
chown -R vpopmail.vchkpw .
for file in `find . `
do
if [ -d $file ]
then
chmod 700 $file
else
chmod 600 $file
fi
done





553 sorry, that domain isn't in my list of allowed rcpthosts

Esto quiere decir simplemente que su dominio no está configurado en /var/qmail/control/rcpthosts


Por ejemplo el dominio test.com se ha instalado pero se ha borrado accidentalmente de /var/qmail/control/rcpthosts.

Cuando se envía un correo a postmaster@test.com sucede lo siguiente:


$ telnet nsXXXX.ovh.net 25
Trying 213.186.XX.XX...
Connected to nsXXXX.ovh.net.
Escape character is '.]'.
220 nsXXXX.ovh.net ESMTP
HELO ping.ovh.net
250 nsXXXX.ovh.net
MAIL FROM:<usuario@ovh.net>
250 ok
RCPT TO:<postmaster@test.com>
553 sorry, that domain isn't allowed to be relayed thru this MTA (#5.7.1)
QUIT
Connection closed by foreign host
$



Más información
: QmailAdmin :: La gestión de los emails con qmailadmin.
: ColaQMailLlena :: Reiniciar el directorio de la cola de mensajes.
: InstallQmailAntiSpam :: el filtrado por blacklist con Spam-RLB.com.

: VpopmailYAdministracion :: La administración de Vpopmail.
: OvhmDisociarMailsYAlias :: Como gestionar de manera separada los emails de dos dominios cuando uno es un alias de otro.