QMail Joutó para torpes como yó Este documento es información libre. Puede redistribuirlo y/o modificarlo
bajo los términos de la Licencia Pública General de GNU según es publicada por la Free Software
Foundation, bien de la versión 2 de dicha Licencia o bien (según su elección) de cualquier
versión posterior.
Copyright © Nailuj 2002
nailuj©pabernosmatao.com
Este documento se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso
sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.
Véase la Licencia Pública General de GNU para más detalles.
Agradecimientos:
[Jedi], que me fué diciendo a traves del irc casi todo
lo que tenía que hacer, y me arreglo los fallos.
Thread, el apostol de Tux en el canal #delphi del irc-hispano
que arreglo no se qué del pop3.
numeropi, del canal #delphi, gran admirador de Linux. XD
#qmail, canal del irc-hispano en donde entré pa preguntar
unas cosillas.
www.es.qmail.org, de donde
he sacado un par de cosillas.
Philip Morris Inc. y Justerini &
Brooks por el avituallamiento.
Mi perro Toby ¿mi perro? joder, si yo no tengo perro,
¡ostias!.
y a Andrew Blake por proporcionarme la documentación
necesaria, jí jí.
Aquí se describe paso a paso como conseguí instalar Qmail y ponerlo en funcionamiento con soporte
para dominios virtuales, listas de correo, administración vía web y alguna cosilla mas. Este documento
va dirigido a quienes, como yo, se han puesto a buscar Howto's de Qmail en internet y los han encontrado a montones
pero no han entendio casi nada o nada de lo que en ellos ponia. Al final, si he conseguido instalar, ha sio unicamente
gracias a que [Jedi] se tomo la molestia de perder unas cuantas horas guiandome en el proceso de
instalación, es decir, él me dictaba los comandos y yo los pegaba y le daba a la tecla gorda esa
de la flecha torcía. Este documento no es mas que el resultado de cojer el 'log' del irc y el bash_history
y pasarlo "a limpio"; no me extrañaría que se hubiera colao algún error.
Si eres un juaker, este documento no es para tí, podrias descojonarte al encontrar algún disparate,
aunque también podrias comunicarlo para que sea corregido.
Si en algo he metio la pata espero que alguien me lo diga para corregirlo.
Se vende teja de cañón, razón: aquí.
1. Descripcion del sistema en donde se ha hecho la instalación
RedHat 7.2 actualizado
gcc o similar completo y funcionando, con los ficheros de cabecera del sistema, y las bibliotecas.
Nombre de la maquina: 'mimaquina'
Router ADSL 3com 812 OfficeConnect configurado en multipuesto
Direccion IP fija en internet: X.X.X.X
IP local del router: 192.168.0.1
IP local de la maquina con Linux: 192.168.0.3
Mascara: 255.255.255.0
Dirección de la red: 192.168.0.0
Puerta de enlace en la maquina Linux: 192.168.0.1
Puertos 25 y 110 redirigidos a la ip de la maquina Linux y sin ocupar
Dominio registrado: 'midominio.com' apuntando a la ip X.X.X.X
Un registro de tipo A como: 'mail.midominio.com' apuntando tambien a X.X.X.X
2. Preparación
2.1 Ingredientes necesraios
ftp://ftp.ntnu.no/pub/unix/mail/qmail/qmail-1.03.tar.gz
http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
http://www.inter7.com/vpopmail/vpopmail-5.2.1.tar.gz
http://www.din.or.jp/~ushijima/qmail-conf/qmail-conf-0.60.tar.gz
1 paquete de tabaco y una botella de JB
http://cr.yp.to/software/ezmlm-0.53.tar.gz (Para listas
de correo)
http://www.inter7.com/devel/qmailadmin-1.0.6.tar.gz(Administrar qmail vía web)
http://www.inter7.com/vqadmin/vqadmin-2.3.2.tar.gz(Gestor dominios virtuales vía web)
2.1 preparación para la instalación
Creamos un directorio en donde pondremos los archivos mencionados
$ mkdir /tmp/qmail
$ cd /tmp/qmail
nos los bajamos todos y comprobamos que no nos falte ninguno:
$ ls -l /tmp/qmail
Nos aseguramos de que sendmail esta desactivado o eliminadoy lo mismo para binmail
Si necesitas sendmail mira aquí
Un consejo de [Jedi]: si tienes tu linux tan desastrao como el mio y quieres qmail para algo serio, lo mejor
es hacer una instalación nueva de RedHat 7.3 y actualizarla antes de seguir adelante y encontrarte con errores
dificiles de solucionar.
3. Instalación de los paquetes
3.1 Crear directorio, grupos y usuarios de Qmail
$ mkdir /var/qmail
$ chgrp qmail /var/qmail
$ chmod 755 /var/qmail
$ vi /etc/group
qmail:x:11:
nofiles:x:16:
$ vi /etc/passwd
alias:x:100:16::/etc/qmail/alias:/bin/true
qmaild:x:101:16::/var/qmail:/bin/true
qmaill:x:102:16::/var/qmail:/bin/true
qmailp:x:103:16::/var/qmail:/bin/true
qmailq:x:104:11::/var/qmail:/bin/true
qmailr:x:105:11::/var/qmail:/bin/true
qmails:x:106:11::/var/qmail:/bin/true
qmaillog:x:107:11::/var/log:/bin/true
drwxr-xr-x 11 root qmail 4096 oct 23 23:23 qmail
3.2 Instalar Qmail
$ cd /usr/src
$ tar vxfz /tmp/qmail/qmail-1.03.tar.gz
$ cd qmail-1.03
$ make setup check
3.3 Instalar ucspi
$ cd ..
$ tar vxfz /tmp/qmail/ucspi-tcp-0.88.tar.gz
$ cd ucspi-tcp-0.88
$ make setup check
3.4 Instalar daemontools
$ cd /
$ mkdir package
$ chmod 1755 package
$ cd /package
$ tar vxfz /tmp/qmail/daemontools-0.76.tar.gz
$ cd admin/daemontools-0.76
$ package/install
3.5 Instalar vpopmail
$ cd /usr/src
$ tar vxfz /tmp/qmail/vpopmail-5.2.1.tar.gz
$ useradd vpopmail
$ groupadd vchkpw
$ cd /usr/src/vpopmail-5.2.1
$ ./configure
$ make
$ make install
3.5 Instalar qmail-conf
No olvide poner en la última línea el nombre de su maquina
$ cd /usr/src
$ tar vzxf /tmp/qmail/qmail-conf-0.60.tar.gz
$ cd qmail-conf-0.60
$ tar vxfz /tmp/qmail/djbdns-1.05.tar.gz
$ make -f Makefile.ini
$ make setup check
$ cd /var/qmail/control
$ echo "mimaquina" > me
4. Configuración
4.1 Configurar registro A
No tequivoquerl con el nombre del dominio
$ echo "mail.midominio.com" > /var/qmail/control/me
$ echo "mail.midominio.com" > /var/qmail/control/rcpthosts
$ echo "mail.midominio.com" > /var/qmail/control/locals
4.2 Creamos el script /var/qmail/rc de inicio del qmail y le damos derechos de ejecucion
$ vi /var/qmail/rc
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/
$ chmod +x /var/qmail/rc
4.3 Configuramos Qmail (Ojo con las 2 eles de qmaill, no es un error)
$ /var/qmail/bin/qmail-delivery-conf qmaill /service/qmail-send
$ /var/qmail/bin/qmail-smtpd-conf qmaild qmaill /service/qmail-smtpd
$ /var/qmail/bin/qmail-pop3d-conf /home/vpopmail/bin/vchkpw qmaill /service/qmail-pop3d
4.5 Modificamos el archivo tcp /service/qmail-smtpd/tcp
Cuidado con los numeros de la dirección IP, fijese que son los 3 primeros de direccion de la red.
$ cd /service/qmail-smtpd
$ vi tcp
:allow
192.168.0.:allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT=""
$ make
4.6 Modificamos el archivo tcp /service/qmail-pop3d/tcp
$ cd /service/qmail-pop3d
$ vi tcp
:allow
$ make
4.7 Añadimos el servicio pop
$ cd /service/qmail-pop3d
$ svc -du /service/qmail-pop3d
4.8 Fín de la instalación
Reiniciamos como en el guindous aunque se supone que con un kill
-HUP al uid del proceso inetd no haría falta el reboot
$ shutdown -r now
5. Usando Qmail
Si hemos llegado hasta aquí sin errores se supone que ya debería funcionar.
5.1 Como se añaden dominios virtuales
Supongamos que tenemos un dominio 'mecaguen.com' apuntando a nuestra IP X.X.X.X
$ /home/vpopmail/bin/vadddomain mecaguen.com postmasterpassw
para añadir midominio.com se hace igual, tambien es virtual.
$ /home/vpopmail/bin/vadddomain midominio.com postmasterpassw
5.2 Como se añaden usuarios
Con vadduser se añaden y con con vmoduser se modifican, .el parametro -a es para hacer administrador
de correo a un usuario, aunque para eso el usuario postmaster que se crea autoáticamente con la orden vadddomain
$ vadduser pepeillo@mecaguen.com userpassw
$ vadduser gillypuertas@mecaguen.com userpassw
$ vadduser pepeillo@midominio.com userpassw
$ /home/vpopmail/bin/vmoduser -a pepeillo@mecaguen.com
como se puede ver, podemos tener usuarios con el mismo nombre en mas de un dominio :)
5.3 Configuracion de un cliente de correo de un usuario
nombre de la cuenta: pepeillo@mecaguen.com
contraseña: userpassw
servidor smtp: mecaguen.com
servidor pop: mecaguen.com
5.4 Hacer que se entere tol mundo de que funciona
$ ( echo 'Tu Nombre y Apellido'; cat `cat SYSDEPS` ) | mail djb-qst@cr.yp.to
Leido en http://www.es.qmail.org
A mi no me funciono el pop3 a la primera y tuve que hacer esto, aunque es posible
que la verdadera causa del error fuese esta.
6. Instalar paquetes opcionales
6.1 Instalar ezmlm
$ cd /tmp/qmail
$ tar vxfz ezmlm-0.53.tar.gz
$ cd ezmlm-0.53
$ make setup check
$ make setup
ezmlm sirve para crear de listas de correo y se puede gestionar con el qmailadmin
6.2 Instalar qmailadmin
$ cd /tmp/qmail
$ tar vxfz qmailadmin-1.0.6.tar.gz
$ cd qmailadmin-1.0.6
$ make setup check
$ ./configure
$ make
$ make install-strip
qmailadmin estará accesible en esta url http://mimaquina/cgi-bin/qmailadmin.cgi
y para entrar usaremos estos valores:
user: postmaster
dominio: mecaguen.com
password: postmasterpassw
6.3 Instalar vqadmin
Siguiendo las instrucciones del arhchivo INSTALL a mi no me funciona el vqadmin, pero con estas sí.
$ cd /tmp/qmail
$ tar [v]zxf vqadmin-2.3.2.tar.gz
$ cd vqadmin-2.3.2
$ ./configure
$ make
$ make install-strip
Editamos el archivo de configuración del apache, y añadimos el directorio del vqadmin
$ cd /etc/httpd/conf
$ vi httpd.conf
<Directory /var/www/cgi-bin/vqadmin>
AllowOverride AuthConfig
Options ExecCGI
Order deny,allow
deny from all
</Directory>
Editar vqadmin.acl y dejar como comentarios todas las líneas excepto la que define el usuario admin
$ vi /var/www/cgi-bin/vqadmin/vqadmin.acl
admin * admin
Editamos el archivo .htaccess y reiniciamos apache
$ vi /var/www/cgi-bin/vqadmin/.htaccess
AuthType Basic
AuthUserFile /usr/local/apache/conf/vqadmin.passwd
AuthName vQadmin
require valid-user
satisfy any
$ chown nobody .htaccess
$ chmod 600 .htaccess
$ cd /var/www
$ htpasswd -bc /etc/httpd/conf/vqadmin.passwd admin adminpass
$ service httpd restart
Y para acceder a vqadmin: http://mimaquina/cgi-bin/vqadmin/vqadmin.cgi
7. Posibles problemas
7.1 Emular sendmail
Es posible que tenga cosas en su sistema que usen el API de sendmail, por ejemplo la funcion mail() de php.
Para ello usaremos el "emulador" de sendmail que lleva qmail:
$ ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
$ ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
/usr/sbin puede no existir en su sistema.
Leido en http://www.es.qmail.org
7.2 No funciona el pop3
Despues de tener todo instalado no funcionaba el servidor pop
Asi es como se han solucionado (thx to [jedi])
borrar /service/qmail-pop3d/run y crear uno con este contenido
$ vi /service/qmail-pop3d/run
#!/bin/sh
exec 2>&1 \
envdir ./env \
sh -c '
case "$REMOTENAME" in h) H=;; p) H=p;; *) H=H;; esac
case "$REMOTEINFO" in r) R=;; [0-9]*) R="t$REMOTEINFO";; *) R=R;; esac
exec \
softlimit ${DATALIMIT+"-d$DATALIMIT"} \
/usr/local/bin/tcpserver \
-vD"$H$R" \
${LOCALNAME+"-l$LOCALNAME"} \
${BACKLOG+"-b$BACKLOG"} \
${CONCURRENCY+"-c$CONCURRENCY"} \
-xtcp.cdb \
-- "${IP-0}" "${PORT-110}" \
/var/qmail/bin/qmail-popup "${POPUPHOST-`sed 1q /var/qmail/control/me`}" \
/home/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d "${MAILDIRNAME-Maildir}"
'
Dar permiso de ejecución
$ chmod +x run
$ chown root run
$ chgrp root run
7.3 puerto pop3 ocupado por courier-imap
Esto no tiene porque pasarte, aunque si has estado cacharreando sin tener ni idea, como yo, puede ocurrirte
ls /etc/rc.d/init.d/
si sale el courier-imap en el listado lo quitamos:
$ rpm -qf /etc/rc.d/init.d/courier-imap
si sale por ejemplo: courier-imap-1.4.3-1.7.2 lo desinstalamos con
$ rpm -e courier-imap-1.4.3-1.7.2
Y lo mas probable es que obtengamos el error:
error: removing these packages would break dependencies:
courier-imap is needed by vmailmgr-courier-imap-0.96.9-1
Asi que entonces quitamos primero el vmailmgr y despues el courier-imap
$ rpm -e vmailmgr-courier-imap-0.96.9-1
$ rpm -e courier-imap-1.4.3-1.7.2
Y por si acaso:
$ killall couriertcpd
7.4 Actualizar Redhat
Es posible que algo no vaya bien y la causa sea que necesitemos actualizar el redhat.
Si no queremos hacernos socios del redhat network podemos usar el paquete autoupdate
Es altamente rcomendable leerse las instruccionesde la web de autoupdate para sacarle partido al paquete.
Para instalar autoupdate en nos bajamos estos archivos
ftp://ftp.mat.univie.ac.at/pub/teschl/autoupdate/autoupdate-4.5.6-1.noarch.rpm
ftp://ftp.mat.univie.ac.at/pub/teschl/autoupdate/autoupdate-cfg-redhat-4.5.6-1.noarch.rpm
ftp://ftp.mat.univie.ac.at/pub/teschl/autoupdate/autoupdate.d/autoprovides-redhat-7.2.dbpara redhat 7.2
ftp://ftp.mat.univie.ac.at/pub/teschl/autoupdate/autoupdate.d/autoprovides-redhat-7.3.db para
redhat 7.3
Y los instalamos así:
$ rpm -ivh autoupdate-4.5.6-1.noarch.rpm
$ rpm -ivh autoupdate-cfg-redhat-4.5.6-1.noarch.rpm
$ cp autoprovides-redhat-7.2.db /var/spool/autoupdate/autoprovides.db
Y para comenzar la actualización:
$ autodld
7.8 Se borran las cuentas de usuario
Despues de tener un rato todo funcionando a la perfección intento leer el correo de un cliente y
obtengo un error de "Autentificacion Fallida - El usuario no existe", y me dí cuen de que efectivamente,
habian desaparecido las cuentas de usuario; los creo otra vez. ¡y vuelven a desaparecer!
Pensé: "joder, ni que estuviera programado .... mmmm ¿programado? Crom! (como dijo Conan)".
Así que, busqué y encontre este script:
/etc/cron.hourly/qmail
con este contenido:
#!bin/sh
set -e
cd /var/qmail/users
test -s assign -a -s cdb && \
qmail-pw2u </etc/passwd >assign && \
qmail-newu
Moví el script y el problema ha desparecido, ya lleva un día entero funcionando bien.
Es posible que ese script lo estuviera ahí a raiz de un intento fallido anterior de ionstalción de
qmail, o bien que necesite estar ahí y tenga algo mal, si me entero ya anotaré aquí mismo
lo que sea.
No hay comentarios, puedes escribir el primero.
¡Gracias por dejar tu opinión! Por favor procura que tu comentarios sean apropiados al tema tratado en la entrada; que no sean spam, u ofensivos, de otro modo, serán eliminados.


