Re: Cómo montar servidor de correo
EMILIGENE@telefonica.net wrote:
Un poco largo, pero ahí va:
# qmailctl stat
/service/qmail-send: up (pid 2353) 101 seconds
/service/qmail-send/log: up (pid 2358) 101 seconds
/service/qmail-smtpd: up (pid 3208) 1 seconds
¡Oooops!, aquí hay un problema. El servicio SMTP no está funcionando.
...
# netstat -ta
tcp 0 0 localhost:32768 *:* LISTEN
tcp 0 0 *:pop3 *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:http *:* LISTEN
tcp 0 0 *:10000 *:* LISTEN
tcp 0 0 *:x11 *:* LISTEN
tcp 0 0 *:ipp *:* LISTEN
tcp 0 0 *:telnet *:* LISTEN
Efectivamente, no hay nadie escuchando en el puerto de SMTP (25).
Según la información que me pasas, aparte del problema con el POP3, tu
servicio SMTP no está funcionando. Esto implica que tu servidor no puede
recibir correos del exterior (de otros servidores o de usuarios
conectados mediante un MUA[1]). Los mensajes enviados localmente dentro
de la máquina funcionan perfectamente ya que no pasan por el servicio SMTP.
# cat /service/qmail-pop3d/run
#!/bin/sh
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -H -l 0 0 110
/var/qmail/bin/qmail-popup \
emiligene.net /bin/checkpassword /var/qmail/bin/qmail-pop3d
Maildir 2>&1
Parece normal, entiendo que la línea que empieza por "/usr/local/bin" y
la siguiente están en una misma línea en el fichero original (o la
primera termina en un backslash). Lo mismo para la que empieza por
"emiligene.net" y la siguiente.
Respecto a este fichero solo sugerirte que compruebes que los programas
softlimit, tcpserver y checkpassword están donde dices que están (te lo
digo por que en mi caso, Debian Woody, están todos en /usr/bin y no en
/usr/local/bin).
# cat /service/qmail-pop3d/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \
/var/log/qmail/pop3d
También tiene buena pinta. Te digo la misma obviedad, comprueba que
setuidgid y multilog están en /usr/local/bin tal y como especifica el
script.
# cat /var/log/qmail/pop3d/current | tai64nlocal
2004-08-12 02:51:03.343408500 tcpserver: status: 0/40
2004-08-12 16:00:58.185989500 tcpserver: status: 0/40
Nada raro, aparte de que no hay ni un solo intento de conexión.
Otra cosa (rara, porque hasta ahora no me había ocurrido): el archivo
/var/log/qmail/smtpd/current
contiene esta línea, repetida cientos de veces (aunque puedo enviar y
recibir correo normalmente):
@40000000411b833828fbe3d4 QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is
unset in
@40000000411b83382907bb14 /var/qmail/supervise/qmail-smtpd/run
Esta es la explicación a porqué tu servicio SMTP no se está ejecutando.
Tienes que solventar este problema antes de continuar. Cuando dices
"puedo enviar y recibir correo normalmente" a qué te refieres. Es
evidente que no puedes enviar correo via SMTP (el servidor SMTP no se
está ejecutando). Si te estudias la "qmail big picture" [2] entenderás
cuál es la función de cada uno de los componentes de un sistema qmail
(por ejemplo, entenderás porqué el SMTP no se utiliza cuando se entrega
correo local al host).
PD: Antes de escribir a la lista, estuve buscando en Google el error,
pero no encontré ninguna pista que me funcionase: apliqué algunas
(modificar /etc/login.defs por ejemplo, para cambiar la variable de
QMAIL_DIR, además de descomentarla)
Bien hecho (por lo de buscar en Google) ;-)
Respecto a la variable QMAIL_DIR, ¿qué pinta en este fregado?. Las
variables que tienes que comprobar que estén correctamente definidas son
las que te aparecen en el mensaje de error: QMAILDUID, NOFILESGID,
MAXSMTPD y LOCAL.
Todo apunta a que tu problema está en el fichero
/service/qmail-smtpd/run (tal y como explicitamente te dice en el
informe de error recogido en el log). Como orientación te adjunto el
mio, aunque ya te adelanto que está sacado de "Life with qmail".
---8<------8<------8<------8<------8<------8<------8<------8<---
www:~# cat /service/qmail-smtpd/run
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`
if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z
"$LOCAL" ]; then
echo QMAILUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
echo /var/qmail/supervise/qmail-smtpd/run
exit 1
fi
if [ ! -f /var/qmail/control/rcpthosts ]; then
echo "No /var/qmail/control/rcpthosts!"
echo "Refusing to start SMTP listener because it'll create an open relay"
exit 1
fi
exec /usr/bin/softlimit -m 5000000 \
/usr/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c
"$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
/usr/bin/rblsmtpd \
-r cbl.abuseat.org \
-r sbl-xbl.spamhaus.org \
-r dul.dnsbl.sorbs.net \
-r smtp.dnsbl.sorbs.net \
-r spam.dnsbl.sorbs.net \
-r nomail.rhsbl.sorbs.net \
/var/qmail/bin/qmail-smtpd 2>&1
---8<------8<------8<------8<------8<------8<------8<------8<---
Muchas gracias por tu paciencia.
Me has pillado en un día bueno ;-)
--
Jorge Tomé Hernando
http://www.JorgeTome.info
Linux Registered User #362778
[1] MUA. Mail User Agent, es decir, los programillas (Netscape mail, MS Outlook, etc. que los usuarios utilizan para enviar/recibir correo).
[2] http://www.nrg4u.com/
Reply to: