Linuxiando un Rato

viernes, febrero 24, 2006

Instalando Qmail y reemplazando Sendmail

Anterior: Introducción


Para los propósitos meramente educativos de esta guia, vamos a hacer algunas suposiciones:

  • El dominio de nuestro servidor es midominio.org. En cualquier parte de esta guia en la que aparezca la cadena de caracteres midominio.org, usted deberá cambiarla por el nombre de su dominio de correo electrónico.

  • sysadmin y sysadmin@ midominio.org son respectivamente una cuenta shell y una cuenta de correo con propósitos administrativos. Si usted utiliza otras cuentas con ese propósito, ya sabe: buscar y reemplazar.

  • CO, Cundinamarca y Bogotá corresponden a mi ubicación geográfica. Modificar según sea necesario.

  • El archivo de configuración del servidor Apache no ha sido modificados. Si su DocumentRoot es diferente a /var/www/html, su directorio de CGI's es diferente a /var/www/cgi-bin, o ha modificado otros parámetros deberá modificar los comandos de la guia para que se ajusten a su sistema. Recuerde: no se limite a “copiar y pegar”.



Prerequisitos:

Red Hat Enterprise Linux 4/ Fedora Core 3 o 4/ CentOS 4.0, 4.1 o 4.2 (como ya mencione varias veces, esta guia solo comprende la instalación en estas distribuciones, para otras, consulte la guia original de Qmailrocks) con mínimo los siguientes juegos de paquetes:
gcc
gcc-c++
make y configure
diff y pathutils
openssl y openssl-devel
apache
php
mysql
squirrelmail
expect
gdbm-devel
xinetd
openssl097a
perl
perl-suidperl


Si su instalación es mínima o muy personalizada, seguramente requerirá de muchos paquetes mas. Para evitarse problemas recomiendo usar up2date, yum o apt-get para RPM. Si encuentra alguna dependencia que no este listada aquí puede hacérmelo saber en los comentarios de esta entrada junto con su nombre/nick/apodo. Actualizare la guia y le daré el crédito correspondiente.

Software que NO debe estar ejecutándose ni instalado:

Servicios SMTP (Postfix, Exim)
Servicios IMAP
Servicios POP3

Sendmail puede estar instalado. La guia explica como desinstalarlo.



Descarga de Qmailrocks y compilación de Qmail:

En una terminal iniciar sesión con el usuario root. Crear el directorio donde se almacenaran los instaladores de Qmail y demás software a utilizar, ubicarse en dicho directorio, descargar los instaladores y descomprimirlos ejecutando los siguientes comandos:
mkdir /downloads
cd /downloads
wget http://www.qmailrocks.org/downloads/qmailrocks.tar.gz
tar zxvf qmailrocks.tar.gz


Ejecutar el script que crea automáticamente los directorios, usuarios y archivos especiales, descomprime el software daemontools y establece los permisos necesarios ejecutando el comando:
/downloads/qmailrocks/scripts/install/qmr_install_linux-s1.script


Instalar los parches para activar las características de autenticación SMTP, TLS, cuotas de usuario y otros ejecutando el comando:
/downloads/qmailrocks/scripts/util/qmail_big_patches.script


Compilar, instalar y configurar Qmail ejecutando ejecutando los siguientes comandos:
cd /usr/src/qmail/qmail-1.03
make man && make setup check
./config-fast midominio.org


Generar el certificado que permitirá encriptar la comunicación utilizando TLS ejecutando el comando:
make cert


Este es un ejemplo de la configuración del certificado, cambiar según se requiera:
Country Name (2 letter code) [GB]:CO
State or Province Name (full name) [Berkshire]:Cundinamarca
Locality Name (eg, city) [Newbury]:Bogotá
Organization Name (eg, company) [My Company Ltd]:Mi Institución
Organizational Unit Name (eg, section) []:Departamento de Sistemas
Common Name (eg, your name or your server's hostname) []:midominio.org
Email Address []:sysadmin@midominio.org


Configurar los permisos del certificado ejecutando el comando:
chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem




Instalando ucspi-tcp y daemontools:

Aplicar el parche especifico para RH 9/RHEL/Fedora/Slackware, compilar e instalar ucspi-tcp:
cd /usr/src/qmail/ucspi-tcp-0.88/
patch < /downloads/qmailrocks/patches/ucspi-tcp-0.88.errno.patch
make && make setup check


Aplicar el parche especifico para RH 9/RHEL/Fedora/Slackware, compilar e instalar daemontools:
cd /package/admin/daemontools-0.76
cd /package/admin/daemontools-0.76/src
patch < /downloads/qmailrocks/patches/daemontools-0.76.errno.patch
cd /package/admin/daemontools-0.76
package/install


Ejecutar el comando:
ps -aux


y verificar que el proceso svscanboot se este ejecutando




Instalando Ezmlm y Autoresponder:

Descomprimir, compilar e instalar EZmlm:
cd /downloads/qmailrocks/
tar zxvf ezmlm-0.53-idx-0.41.tar.gz
cd ezmlm-0.53-idx-0.41
make && make setup


Descomprimir, compilar e instalar Autoresponder:
cd /downloads/qmailrocks
tar zxvf autorespond-2.0.5.tar.gz
cd autorespond-2.0.5
make && make install




Instalando Vpopmail con soporte MySQL:

Configurar la conexión MySQL para vpopmail ejecutando los siguientes comandos:
mkdir ~vpopmail/etc
chown vpopmail:vchkpw ~vpopmail/etc
echo "localhost|0|vpopmail|password|vpopmail" > ~vpopmail/etc/vpopmail.mysql


En el ultimo comando la palabra password debe ser cambiada por la contraseña que tendrá el usuario vpopmail de MySQL

Establecer los permisos necesarios para los archivos de configuración de la conexión MySQL para vpopmail ejecutando los siguientes comandos:
chown vpopmail:vchkpw ~vpopmail/etc/vpopmail.mysql
chmod 640 ~vpopmail/etc/vpopmail.mysql


Crear la base de datos y establecer los permisos necesarios para el usuario de vpopmail ingresando como root a la consola de MySQL ejecutando el comando (se solicitara la contraseña del usuario root de MySQL):
mysql -u root -p


en la consola de MySQL ejecutar las siguientes sentencias SQL:
CREATE DATABASE vpopmail;
GRANT select,insert,update,delete,create,drop ON vpopmail.* TO vpopmail@localhost IDENTIFIED BY 'password';


En el ultimo comando la palabra password debe ser cambiada por la contraseña que tendrá el usuario vpopmail de MySQL, posteriormente salir de la consola ejecutando el comando:
quit


Probar los datos del usuario de vpopmail ejecutando el comando:
mysql -u vpopmail -p


Después de introducir la contraseña deberá desplegarse el prompt de la consola de MySQL, posteriormente salir de la consola ejecutando el comando:
quit




Descomprimir, compilar e instalar Vpopmail:

Ejecutar los siguientes comandos:
cd /downloads/qmailrocks
tar zxvf vpopmail-5.4.9.tar.gz
cd vpopmail-5.4.9
./configure --enable-logging=p --enable-auth-module=mysql --disable-passwd --enable-clear-passwd --disable-many-domains --enable-auth-logging --enable-sql-logging --enable-valias --disable-mysql-limits
make && make install-strip




Instalando Vqadmin, Maildrop y Qmailadmin:


Descomprimir, compilar e instalar Vqadmin:
cd /downloads/qmailrocks
tar zxvf vqadmin-2.3.6.tar.gz
cd vqadmin-2.3.6
./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/html
make && make install-strip


Modificar el archivo de configuración de Apache ejecutando el comando:
vi /etc/httpd/conf/httpd.conf


y modificar la sección:
#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory /var/www/cgi-bin>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>


por:
#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory /var/www/cgi-bin>
AllowOverride All
Options None
Order allow,deny
Allow from all
</Directory>


Nota: Solo cambiar la palabra None por la palabra All, pero debe modificarse la sección referente al directorio /var/www/cgi-bin

Posteriormente, adicionar lo siguiente al final del mismo archivo:
#Configuracion para Vqadmin
<Directory /var/www/cgi-bin/vqadmin>
deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow
</Directory>


Salvar el archivo y salir del editor.

Editar el archivo de autenticación de vqadmin:
cd /var/www/cgi-bin/vqadmin/
vi .htaccess


modificar el contenido del archivo .htaccess de:
AuthType Basic
AuthUserFile /usr/local/apache/conf/vqadmin.passwd
AuthName vQadmin
require valid-user
satisfy any


a:
AuthType Basic
AuthUserFile /var/www/passwords/.htpasswd
AuthName vQadmin
require valid-user
satisfy any


Salvar el archivo y salir del editor.

Modificar los permisos del archivo .htaccess ejecutando los siguientes comandos:
chown apache .htaccess
chmod 644 .htaccess


Crear el correspondiente archivo que contiene el nombre de usuario y la contraseña encriptada de acceso a Vqadmin ejecutando los comandos:
mkdir /var/www/passwords
htpasswd -bc /var/www/passwords/.htpasswd admin password


En el ultimo comando la palabra password debe ser cambiada por la contraseña que tendrá el usuario de acceso a Vqadmin

Modificar los permisos del archivo .htpasswd ejecutando el siguiente comando:
chmod 644 /var/www/passwords/.htpasswd


Reiniciar el servicio Apache ejecutando el comando:
service httpd restart


Probar el funcionamiento de Vqadmin abriendo en un navegador web la URL y crear el dominio midominio.org:
http://midominio.org/cgi-bin/vqadmin/vqadmin.cgi


Debe desplegarse una ventana de autenticación y al introducir los datos de acceso configurados previamente debe aparecer la ventana principal de Vqadmin. Hacer clic en el enlace “Add Domain”, en la pagina que aparece introducir en el campo “Domain Name” el valor “midominio.org”, en el campo “Postmaster Password ” introducir la contraseña del administrador del dominio. Hacer clic en el botón “Add Domain”.

Descomprimir, compilar e instalar maildrop:
cd /downloads/qmailrocks
tar zxvf maildrop-1.6.3.tar.gz
cd maildrop-1.6.3
./configure --prefix=/usr/local --exec-prefix=/usr/local --enable-maildrop-uid=root --enable-maildrop-gid=vchkpw --enable-maildirquota
make && make install-strip && make install-man


Descomprimir, compilar e instalar Qmailadmin:
cd /downloads/qmailrocks
tar zxvf qmailadmin-1.2.3.tar.gz
cd qmailadmin-1.2.3
./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/html
make && make install-strip


Probar la instalación de Qmailadmin abriendo una ventana de navegador e ingresando a la URL:
http://midominio.org/cgi-bin/qmailadmin


Si la instalación fue exitosa, deberá aparecer la pagina de login de Qmailadmin



Finalizando la instalación de Qmail:

Ejecutar el script de finalización de la instalación de Qmail:
/downloads/qmailrocks/scripts/finalize/linux/finalize_linux.script


Editar el archivo /var/qmail/supervise/qmail-pop3d/run ejecutando el comando:
vi /var/qmail/supervise/qmail-pop3d/run


y modificar:
mail.example.com


por:
midominio.org


Salvar el archivo y salir del editor.

Editar el archivo /var/qmail/supervise/qmail-smtpd/run ejecutando el comando:
vi /var/qmail/supervise/qmail-smtpd/run


y modificar:
mail.example.com


por:
midominio.org


Salvar el archivo y salir del editor.

Detener Qmail ejecutando el comando:
qmailctl stop


Establecer un relay selectivo para localhost ejecutando los comandos:
echo '127.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp
qmailctl cdb


Establecer los alias administrativos de Qmail ejecutando los comandos:
echo sysadmin@midominio.org > /var/qmail/alias/.qmail-root
echo sysadmin@midominio.org> /var/qmail/alias/.qmail-postmaster
echo sysadmin@midominio.org> /var/qmail/alias/.qmail-mailer-daemon


Crear los enlaces simbólicos y establecer los permisos necesarios para los archivos de alias administrativos ejecutando los comandos:
ln -s /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-anonymous
chmod 644 /var/qmail/alias/.qmail*




Desinstalación de Sendmail:

Buscar los paquetes de instalación de sendmail en la base de datos RPM ejecutando el comando:
rpm -qa | grep sendmail


la salida del comando debe ser similar a esta:
sendmail-8.13.4-2
sendmail-cf-8.13.4-2


Detener el servicio y desinstalar sendmail ejecutando los comandos:
service sendmail stop
rpm -e --nodeps sendmail
rpm -e --nodeps sendmail-cf


Crear los enlaces simbólicos correspondientes para el comando sendmail de Qmail ejecutando los comandos:
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail




Pruebas Finales:

Ejecutar el script que verifica la instalación de Qmail:
/downloads/qmailrocks/scripts/util/qmr_inst_check


deberá aparecer el mensaje:
Congratulations, your Qmailrocks.org Qmail installation looks good!


Verificar la correcta ejecución de Qmail ejecutando los comandos:
qmailctl stop
qmailctl start
qmailctl stat


deberá obtenerse una salida como la siguiente:
/service/qmail-send: up (pid 29956) 2 seconds
/service/qmail-send/log: up (pid 29960) 2 seconds
/service/qmail-smtpd: up (pid 29963) 2 seconds
/service/qmail-smtpd/log: up (pid 29968) 2 seconds
/service/qmail-pop3d: up (pid 29971) 2 seconds
/service/qmail-pop3d/log: up (pid 29972) 2 seconds
messages in queue: 0
messages in queue but not yet preprocessed: 0


Probar el funcionamiento del servicio POP3 ejecutando el comando:
telnet localhost 110


el servidor debe responder con una salida como la siguiente:
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK <26343.1130771165@midominio.org>


escribir lo siguiente y presionar la tecla Enter:
user postmaster@midominio.org


el servidor debe responder con una salida como la siguiente:
+OK


escribir lo siguiente y presionar la tecla Enter:
pass password


En el ultimo comando la palabra password debe ser cambiada por la contraseña que fue asignada al usuario postmaster del dominio midominio.org. El servidor debe responder con una salida como la siguiente:
+OK


escribir lo siguiente y presionar la tecla Enter:
quit


el servidor debe responder con una salida como la siguiente:
+OK
Connection closed by foreign host.


Probar el funcionamiento del servicio SMTP y la capacidad de encriptacion TLS ejecutando el comando:
telnet localhost 25


el servidor debe responder con una salida como la siguiente:
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 midominio.org ESMTP


escribir lo siguiente y presionar la tecla Enter:
ehlo localhost


el servidor debe responder con una salida como la siguiente:
250-midominio.org
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-STARTTLS
250-PIPELINING
250 8BITMIME


verificar que la linea 250-STARTTLS sea desplegada, ya que informa la capacidad de encriptar comunicaciones de correo utilizando TLS. Posteriormente escribir lo siguiente y presionar la tecla Enter:
starttls


el servidor debe responder con una salida como la siguiente:
220 ready for tls


ejecutar dos veces el siguiente comando:
quit


el servidor debe responder con una salida como la siguiente y cerrar la conexión:
Connection closed by foreign host.




¡Felicitaciones!

Si usted ha llegado hasta aquí sin problemas, ya tiene un servidor de correo con Qmail completamente funcional.

Si no necesita as demás funcionalidades que ofrece Qmailrocks, puede considerar el trabajo como finalizado exitosamente.

Si desea instalar las demás funcionalidades, el siguiente paso es consultar la segunda entrega (aun por publicar).

Actualizacion: Gracias a David Souto por sus correcciones acerca de la configuración de Apache para Vqadmin.

Alejandro Rincón Linares
alejandro{punto}rincon{arroba}gmail{punto}com

Anterior: Introducción

9 Comentarios:

  • amigo no se si tubiste problemas al instalar vpopmail, si fue asi seria bueno que nos comentaras como los resolviste, la guia esta buena, pero un anexo de errores que se te presentaron y soluciones a los mismos seria de gran utilidad, te felicito por tu disposicion a compartir conocimiento.

    Por Anonymous Anónimo, at 2:02 p. m.  

  • Saludos,

    al seguir la guia qmailrocks no tuve ningún inconveniente al compilar vpopmail, si tienes alguno puedes exponerlo aquí para que intentemos solucionarlo.

    Por Anonymous Anónimo, at 8:24 a. m.  

  • Hola... sobre el vpopmail, creo que todo el problema esta en que en la guia se indica que se descomprima


    tar zxvf vpopmail-5.4.9.tar.gz

    y el fichero no se encuentra.

    si haces un ls del directorio veras que el archivo es:

    vpopmail-5.4.13.tar.gz

    solo es un pequeño error en esta maravilla de guia..muchisimas felicidades a su autor. que ya tiene un enlace en mis webs.

    Por Blogger Unknown, at 3:06 a. m.  

  • Problema en la configuracion de vpopmail -- error:
    configure: error: Unable to find your MySQL inc dir, specify --enable-incdir.

    agregar esta linea al configure me ha solucionado el error.
    --enable-incdir=/var/lib/mysql

    Por Blogger Unknown, at 3:17 a. m.  

  • Saludos David,

    La guia la escribí basándome en una versión de Qmailrocks algo antigua la cual puede ser descargada de la URL: http://www.udistrital.edu.co/comunidad/estudiantes/arincon/qmailrocks.tar.gz. Utilizando este paquete los comandos son exactamente los descritos aquí. En paquetes mas recientes las versiones de las aplicaciones cambian y algunos parámetros también.

    Muchas gracias por sus valiosas anotaciones sobre los comandos de la guia, su colaboración ayuda a mantener la vigencia de esta documento.

    Por Anonymous Anónimo, at 5:39 a. m.  

  • Hola de nuevo.. a la guia le falta solamente un breve detalle. La instalacion del Servidor IMAP

    qmailrocks incluye para este menester el curier..

    en este link

    http://www.qmailrocks.org/imap_rh.htm


    se explica como instalarlo...

    Por Blogger Unknown, at 12:59 a. m.  

  • amigos soy nuevo en este ambiente y gracias a esta guia despues de varios intentos consegui instalar si errores el qmail, lo que estoy necesitando es una ayuda para sacar el certificado que se agrega con la instalacion segun la guia, yo no quiero el sertificado,
    como lo elimino?

    Muchas Gracias

    Por Anonymous Anónimo, at 12:56 p. m.  

  • Hola, tengo problemas al compilar el vpopmail, no encuentra mysql.h
    Ys he instalado las librerias de desarrollo del mysql, me falta decirle que lo encuentre.
    ¿alguna idea?

    gcc -I. -I/var/lib/mysql -I. -I. -I. -fPIC -g -O2 -Wall -c -o libvpopmail_a-vauth.o `test -f 'vauth.c' || echo './'`vauth.c
    vauth.c:33:19: error: mysql.h: No such file or directory

    Por Anonymous Anónimo, at 12:49 a. m.  

  • El problema se ha solucionado agregando estos dos argumentos:
    --enable-incdir=/var/lib/mysql --enable-incdir=/usr/include/mysql/

    Gracias por el who-to!

    Por Blogger Julián, at 2:35 a. m.  

Publicar un comentario


Locations of visitors to this page