Custom Search
Bloggers Activos
Una historia para meditar tonathiu
K3b burning failed asimov
La evolución del Programador mandrake
Darwin no perdió la fe por desarrollar la teoría de la evolución blacksoul
El Dalai Lama dice: vendaval
Religión, fanatísmo o Terrorismo? blacksoul
De regreso a la Mononeurona y probando NetBSD 4.0 luzbel
Dani people's vaio chilicuil
Una Canción Triste vendaval
¡Lo hemos conseguido! der_teufel
Last Download
Segunda Fundación
Segunda Fundación
Continuación del Curso de DB
rnstux
Tattoo
aarkerio
Gentoo Linux 2008.0 released
asarch
Libro de Servidores GNU/LINUX Licencia CC
vendaval
Ese elusivo 1%
aarkerio
Asus lanza rival para el iMac
aarkerio
El ACTA se discute en el G8
aarkerio
Manda al diablo a Telcel
asarch
Seguimiento de Cuba...
vendaval
Las mentiras
aarkerio
Google Groups Karamelo
Visit this group
GNU/Linux
GNU/Linux
Hacktivismo
Hacktivismo
Debian
Debian
NetBSD
NetBSD
WWW
WWW
Guia Linux
Guia Linux
Server Side
Server Side
Ofimatica
Ofimatica
Despabilando...
Despabilando...
Mundo Maya
Mundo Maya
Literatura
Literatura
Agora
Agora
Psicologia
Psicologia
Economia
Economia
Ambientalismo
Ambientalismo
Desarrollo
Desarrollo
Biologia
Biologia
Comercio Justo
Comercio Justo

Hacktivism

LinuxChix button

Server Side \ Manual de instalación de Qmail
Server Side
Manual de instalación de Qmail

Este artículo ha sido consultado en 1,390 ocasiones.

Por: Ferruca <ferrucaso@nediam.com.mx> y Dargor <dargor@nediam.com.mx>


Este manual está basado en la documentación de Life with Qmail: http://www.lifewithqmail.org. El sistema operativo que utilizamos para pruebas fue Debian GNU/Linux.

  1. Bajar de http://qmail.org los paquetes:
    - netqmail-x.x.x.tar.gz
    - ucspi-tcp-x.x.tar.gz
    - daemontools-x.x.tar.gz

    Nota: Al momento de escribir este documento la versión más reciente de netqmail es la 1.05, la de ucspi-tcp es la 0.88, y la de daemontools es la 0.76

  2. Suponiendo que los paquetes anteriores se descargaron en /usr/local/, desempacarlos y descomprimirlos:
    SERVER:~# cd /usr/local
    SERVER:/usr/local# tar -zxvf netqmail-1.05.tar.gz
    (Según el README, antes de comenzar la instalación se debe de aplicar el patch ejecutando el script collate.sh que viene ahí)
    SERVER:/usr/local# cd netqmail-1.05
    SERVER:/usr/local/netqmail-1.05# ./collate.sh
    SERVER:/usr/local/netqmail-1.05# mv netqmail-1.05 ../qmail-1.05
    SERVER:/usr/local/netqmail-1.05# cd ..
    SERVER:/usr/local# tar -zxvf ucspi-tcp-0.88.tar.gz
    SERVER:/usr/local# tar -zxvf daemontools-0.76.tar.gz


  3. Creamos el directorio donde va a quedar instalado qmail:
    SERVER:~# mkdir /var/qmail


  4. Crear los usuarios y los grupos bajo los que correrán los procesos de qmail. La forma de hacerlo es mediante un script que viene con el código fuente del qmail llamado INSTALL.ids. Es importante verificar ese archivo para ver cuáles son los comandos que nos sirven. Primero le hacemos una copia:
    SERVER:~# cd /usr/local/qmail-1.05
    SERVER:/usr/local/qmail-1.05# cp INSTALL.ids INSTALL.ids.old
    Después con algún editor borrar las lí que no vamos a usar (en nuestro caso sólo dejamos los de la sección de Linux), lo hacemos ejecutable y corremos:
    SERVER:/usr/local/qmail-1.05# chmod 700 INSTALL.ids
    SERVER:/usr/local/qmail-1.05# ./INSTALL.ids
    Verificar en /etc/group y en /etc/passwd que se hayan creado los grupos y usuarios correctamente.


  5. Realizarla compilación de qmail:
    SERVER:/usr/local/qmail-1.05# make setup check


  6. Realizar la configuración post-instalación ejecutando el script config. Lo que hace este script es detectar el hostame y el nombre de dominio del servidor para que nuestro servidor de correo sólo acepte mensajes SMTP de estos hosts.
    SERVER:/usr/local/qmail-1.05# ./config

    Nota: Si el servidor no está dado de alta en el DNS server, tendremos que pasar como parámetro el nombre completo de nuestra máquina, utilizando: ./config-fast host.dominio


  7. Instalar ucspi-tcp. El paquete ucspi-tcp (Unix Client-Server Program Interface) es un conjunto de herramientas que sirve para crear aplicaciones cliente-servidor TCP.
    SERVER:/usr/local/qmail-1.05# cd ../ucspi-tcp-0.88
    SERVER:/usr/local/ucspi-tcp-0.88# patch < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.a_record.patch
    SERVER:/usr/local/ucspi-tcp-0.88# patch < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch
    SERVER:/usr/local/ucspi-tcp-0.88# patch < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.nodefaultrbl.patch
    SERVER:/usr/local/ucspi-tcp-0.88# make
    SERVER:/usr/local/ucspi-tcp-0.88# make setup check


  8. Instalar daemon-tools. Este paquete es un conjunto de herramientas para administrar servicios (demonios) en Unix.
    SERVER:/usr/local/ucspi-tcp-0.88# cd ../admin/daemontools-0.76/src/
    SERVER:/usr/local/admin/daemontools-0.76/src# patch < /usr/local/netqmail-1.05/other-patches/daemontools-0.76.errno.patch
    SERVER:/usr/local/admin/daemontools-0.76/src# cd ..
    SERVER:/usr/local/admin/daemontools-0.76# package/install


  9. Crear el archivo de inicio /var/qmail/rc que contenga lo siguiente:.
    #!/bin/sh
    # /var/qmail/rc : Script que inicia qmail
    # Usamos control/defaultdelivery (que en nuestro caso es ./Maildir/) como default para entregar mensajes.
    exec env - PATH="/var/qmail/bin:$PATH" \
    qmail-start "`cat /var/qmail/control/defaultdelivery`"

    Le damos permisos de ejecución:
    SERVER:/var/qmail# chmod 755 rc


  10. Crear el directorio donde estarán los logs generados por qmail:
    SERVER:/var/qmail# mkdir /var/log/qmail


  11. Definir el tipo de buzón que se utilizará por default. El que más se recomienda para qmail es Maildir:
    SERVER:/var/qmail# echo ./Maildir/ > /var/qmail/control/defaultdelivery

    Para crearle su inbox a cada usuario, se utiliza el comando maildirmake, y se tiene que ejecutar con el id de cada usuario. Por ejemplo, para crearle su inbox al usuario juan se ejecutarían los siguientes comandos:
    SERVER:/var/qmail# su - juan
    juan@SERVER:~$ /var/qmail/bin/maildirmake $HOME/Maildir


  12. Crear el script de inicio para qmail. Crear el script /var/qmail/bin/qmailctl que contenga las líneas que se encuentran aquí. Luego de esto, hacerlo ejecutable y hacerle un link simbólico a /usr/bin/:
    SERVER:/var/qmail/bin# chmod 755 qmailctl
    SERVER:/var/qmail/bin# ln -s /var/qmail/bin/qmailctl /usr/bin/

    Copiar este mismo script a /etc/init.d/ y hacerle los respectivos links a los directorios de los runlevels (o hacer la configuración correspondiente en rc.local si su distribución utiliza el estilo BSD y no System-V):
    SERVER:/var/qmail/bin# cp qmailctl /etc/init.d/qmail
    SERVER:/var/qmail/bin# cd /etc/init.d/
    SERVER:/etc/init.d# update-rc.d qmail start 99 2 3 4 5 . stop 99 0 1 6 .

    Nota: Si la distribución que están utilizando no tiene la utilería update-rc.d, hacer los link manualmente en los directorios correspondientes.


  13. Crear los scripts de supervise. Primero crear los directorios supervise para los servicios de qmail:
    SERVER:~/# mkdir -p /var/qmail/supervise/qmail-send/log
    SERVER:~/# mkdir -p /var/qmail/supervise/qmail-smtpd/log

    Crear el script /var/qmail/supervise/qmail-send/run que contenga las siguientes líneas:
    #!/bin/sh
    exec /var/qmail/rc

    Crear el script /var/qmail/supervise/qmail-send/log/run que contenga las siguientes líneas:
    #!/bin/sh
    exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail

    Crear el script /var/qmail/supervise/qmail-smtpd/run que contenga las siguientes líneas:
    #!/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 QMAILDUID, 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/local/bin/softlimit -m 2000000 \
        /usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
            -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
    

    Nota: tcpserver acepta por default 40 conexiones concurrentes. Si se requiere de un número mayor, especificarlo aquí. Por ejemplo, si se desean tener un máximo de 200 conexiones concurrentes: tcpserver -v -R -c200 -l "$LOCAL" -x /etc/tcp.smtp.cdb ...

    Crear el archivo de control /var/qmail/control/concurrencyincoming y cambiarle los permisos:
    SERVER:~/# echo 20 > /var/qmail/control/concurrencyincoming
    SERVER:~/# chmod 644 /var/qmail/control/concurrencyincoming

    Crear el script /var/qmail/supervise/qmail-smtpd/log/run que contenga las siguientes líneas:
    #!/bin/sh
    exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd

    Hacer ejecutables los cuatro archivos run que acabamos de crear:
    SERVER:~/# chmod 755 /var/qmail/supervise/qmail-send/run
    SERVER:~/# chmod 755 /var/qmail/supervise/qmail-send/log/run
    SERVER:~/# chmod 755 /var/qmail/supervise/qmail-smtpd/run
    SERVER:~/# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

    Configurar los directorios de log que especificamos en los scripts:
    SERVER:~/# mkdir -p /var/log/qmail/smtpd
    SERVER:~/# chown qmaill /var/log/qmail /var/log/qmail/smtpd

    Hacer links simbólicos de los directorios supervise al directorio /service:
    SERVER:~/# ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
    Después de que estos links hayan sido creados, automáticamente iniciará qmail. Para seguir con el resto de la configuración lo detendremos:
    SERVER:~/# qmailctl stop


  14. Editar el archivo /etc/tcp.smtp para permitir que los usuarios locales inyecten mail vía SMTP, y recrear el archivo cdb para smtp:
    SERVER:~/# echo '127.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp
    SERVER:~/# qmailctl cdb

    Nota: Si se quiere permitir a alguna otra computadora que utilice nuestro servicio de SMTP, se agrega de una manera similar. Por ejemplo, para permitir a la IP 192.168.1.240 que tenga relay:
    SERVER:~/# echo '192.168.1.240.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp


  15. Crear los alias. Definir a qué cuenta local o remota deberán de redirigirse los correos enviados a postmaster, mailer-daemon y root y definir los alias (en este ejemplo supondremos que decidimos que al usuario juan le llegarán estos correos):
    SERVER:~/# echo juan > /var/qmail/alias/.qmail-root
    SERVER:~/# echo juan > /var/qmail/alias/.qmail-postmaster
    SERVER:~/# ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
    SERVER:~/# chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster

    Nota: Si se requieren más alias, crearlos de la misma manera. Por ejemplo, si queremos un alias para webmaster:
    SERVER:~/# echo juan > /var/qmail/alias/.qmail-webmaster


  16. Iniciar qmail y checar si se levantaron los servicios:
    SERVER:~/# qmailctl start
    SERVER:~/# qmailctl stat
    /service/qmail-send: up (pid 5490) 11 seconds
    /service/qmail-send/log: up (pid 5491) 11 seconds
    /service/qmail-smtpd: up (pid 5492) 11 seconds
    /service/qmail-smtpd/log: up (pid 5493) 11 seconds
    messages in queue: 0
    messages in queue but not yet preprocessed: 0
    SERVER:~/# ps -efl | grep "service errors" | grep -v grep
    100 S root 4844 4841 0 76 0 - 309 pipe_w Nov15 ? 00:00:00 readproctitle service errors:
    .........................................................................................................................................................................
    .........................................................................................................................................................................
    ..............................................................

    Los cuatro servicios deberán de estar arriba ("up") por más de un segundo, y el readproctitle no nos deberá de reportar algún error (el programa readproctitle mantiene un log de los mensajes de error generados por los servicios administrados por svscan).


  17. Pruebas. Ver los archivos TEST.deliver y TEST.receive que están en el directorio donde se descompactó el .tar.gz del qmail:

    Mandar un correo a una cuenta local y verificar que se haya entregado en el inbox:
    SERVER:~/# echo to: juan | /var/qmail/bin/qmail-inject
    SERVER:~/# ls /home/juan/Maildir/new/
    1100637402.5643.SERVER
    SERVER:~/# more /home/juan/Maildir/new/1100637402.5643.SERVER
    Return-Path: <root@dominio>
    
    Delivered-To: juan@dominio
    Received: (qmail 5640 invoked by uid 0); 16 Nov 2004 20:36:42 -0000
    Date: 16 Nov 2004 20:36:42 -0000
    Message-ID: <20041116203642.5639.qmail@dominio>
    From: root@dominio
    to: juan@dominio
    
    SERVER:~/# tail /var/log/qmail/current
    @40000000419a64e411198e4c new msg 2812883
    @40000000419a64e411199a04 info msg 2812883: bytes 211 from <root@dominio> qp 5640 uid 0
    @40000000419a64e4151d8674 starting delivery 1: msg 2812883 to local juan@dominio
    @40000000419a64e4151e651c status: local 1/10 remote 0/20
    @40000000419a64e416c5c3ec delivery 1: success: did_1+0+0/
    @40000000419a64e416c7b7ec status: local 0/10 remote 0/20
    @40000000419a64e416c7bbd4 end msg 2812883
    

    Mandar un correo a una cuenta externa y verificar que se haya entregado:
    SERVER:~/# echo to: cuenta@hotmail.com | /var/qmail/bin/qmail-inject
    SERVER:~/# tail /var/log/qmail/current
    @40000000419a81fe1967e9f4 new msg 2812883
    @40000000419a81fe1967f5ac info msg 2812883: bytes 210 from <root@dominio> qp 5755 uid 0
    @40000000419a81fe1d055c04 starting delivery 5: msg 2812883 to remote cuenta@hotmail.com
    @40000000419a81fe1d0632dc status: local 0/10 remote 1/20
    @40000000419a8200346717ac delivery 5: success: 64.4.50.99_accepted_message./Remote_host_said:_250__<20041116224052.5754.qmail@dominio>_Queued_mail_for_delivery/
    @40000000419a82003467274c status: local 0/10 remote 0/20
    @40000000419a820034672b34 end msg 2812883
    
    

    Mandar un correo desde una cuenta externa a una cuenta local y verificar que se haya recibido:
    SERVER:~/# tail /var/log/qmail/current
    @40000000419b8597346c576c new msg 2812883
    @40000000419b8597346c6324 info msg 2812883: bytes 886 from <cuenta@dominio2> qp 6181 uid 1007
    @40000000419b8597380898cc starting delivery 8: msg 2812883 to local juan@dominio
    @40000000419b8597380967d4 status: local 1/10 remote 0/20
    @40000000419b859739b54ae4 delivery 8: success: did_1+0+0/
    @40000000419b859739b717d4 status: local 0/10 remote 0/20
    @40000000419b859739b71fa4 end msg 2812883
    

    Mandar un correo desde una cuenta externa a una cuenta local inexistente y verificar se haya enviado un mail a la cuenta remota diciendo que ese buzón no existe:
    SERVER:~/# tail /var/log/qmail/current
    @40000000419bdbe12214bd34 new msg 2812883
    @40000000419bdbe12214c8ec info msg 2812883: bytes 862 from <cuenta@dominio2> qp 6331 uid 1007
    @40000000419bdbe12615e69c starting delivery 9: msg 2812883 to local juan33@dominio
    @40000000419bdbe12616e484 status: local 1/10 remote 0/20
    @40000000419bdbe126356134 delivery 9: failure: Sorry,_no_mailbox_here_by_that_name._(#5.1.1)/
    @40000000419bdbe12637e1d4 status: local 0/10 remote 0/20
    @40000000419bdbe12a7383fc bounce msg 2812883 qp 6334
    @40000000419bdbe12a738fb4 end msg 2812883
    @40000000419bdbe12a75491c new msg 2812889
    @40000000419bdbe12a763b4c info msg 2812889: bytes 1409 from <> qp 6334 uid 1012
    @40000000419bdbe12e6f90cc starting delivery 10: msg 2812889 to remote cuenta@dominio2
    @40000000419bdbe12e701d6c status: local 0/10 remote 1/20
    @40000000419bdbe534597f34 delivery 10: success: 66.98.170.56_accepted_message./Remote_host_said:_250_2.0.0_iAHMHvYj009257_Message_accepted_for_delivery/
    @40000000419bdbe534598ed4 status: local 0/10 remote 0/20
    @40000000419bdbe5345992bc end msg 2812889
    
    


  18. Ya tenemos funcionando nuestro servidor de correo qmail!!. Lo que seguiría sería instalar un servidor de POP3 o IMAP. En esta página se encuentran las instrucciones para incorporar courier-imap con qmail. Finalmente, también se podría instalar un webmail. Uno muy bueno es Squirrelmail.

Fuentes consultadas:


Última actualización: 2007-04-29 10:56:59-05

Printable version

on 24/1/08 harocas wrote:
bajo que distribucion esta montado qmail utilizando este manual???
algun requerimiento anterior a la instalacion ??? paquetes adicionales o algoo???

Add comment:



Captcha




Que estas haciendo?
chilicuilchilicuil está:
Gracias por la ayuda rnstux :D
1 day, 5 hours ago

der_teufelder_teufel está:
|-O
1 day, 6 hours ago

rnstuxrnstux está:
checa esto!! agregale lógica y listo. http://tinyurl.com/5s7ttw
2 days, 2 hours ago

rnstuxrnstux está:
WTF?..
2 days, 3 hours ago

chilicuilchilicuil está:
Algun mononeuron sabra como agregar excepciones al firewall de win xp sp2 con vb6?
2 days, 6 hours ago

mandrakemandrake está:
Aarkerio como va el cyber? con linux
2 days, 6 hours ago

Que estuvimos haciendo >>
Chipotle Software

Uso OpenOffice.org
Una vez a la semana
Nunca
Uso otra ofimática
Todos los días
Una vez al mes
Rapiditas
Problemas de Lenguaje en niños
13738 lecturas
Anticoncepción de Emergencia
11556 lecturas
Sexualidad infantil y juvenil
11095 lecturas
Rompiendo cualquier clave WEP en unos pocos minutos
8690 lecturas
Sinapsis y exocitosis
8100 lecturas
Mi primer CakePHP, mmmmm cakeee
6366 lecturas
Evolución filética en las hepáticas
5939 lecturas
BASH y Primeros Comandos
4900 lecturas
CakePHP II Active Record
4673 lecturas
Cómo convertirse en hacker
4231 lecturas
Add to Technorati Favorites

ir arriba
La política es quizá la única profesión para la que no se considera necesaria ninguna preparación. Robert Louis Stevenson

The Queen is here Mozilla Firefox The Best DataBase CakePHP Framework XHTML GNU Hacker Chipotle Software

Too Cool for Internet Explorer