systemadmin.es > Correo > Instalación de qmail con vpopmail, qmail-scanner, ClamAV y SpamAssassin (I)

Instalación de qmail con vpopmail, qmail-scanner, ClamAV y SpamAssassin (I)

Vamos a iniciar una seria para la instalación de qmail con vpopmail, qmail-scanner, ClamAV y SpamAssassin.

El listado de la serie completa es Instalación de un servidor de correo con qmail/vpopmail/qmail-scanner/ClamAV/SpamAssassin:

Este documento esta basado en estas dos guias muy usadas para la instalación de qmail:

Paquetes

Vamos a instalar algunos paquetes desde código fuente y otros desde paquetes de la distribución, en este caso una CentOS 5. Sería equivalente para Fedora o RHEL.

Código fuente

Mediante código fuente vamos a instalar todos los paquetes relacionados con el servidor de correo:

umask 022
mkdir -p /usr/local/src
cd /usr/local/src
wget http://www.qmail.org/netqmail-1.06.tar.gz
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
mkdir -p /package
cd /package 
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
chmod 1755 /package
cd /usr/local/src
tar xzf netqmail-1.06.tar.gz
tar xzf ucspi-tcp-0.88.tar.gz
cd /package
tar xzf daemontools-0.76.tar.gz

Paquetes del sistema

Los paquetes de sistema que necesitaremos para la instalación de los anteriores son los siguientes:

for depe in gcc gcc-c++ make wget curl libtermcap-devel;
do
        yum install $depe -y;
done

Directorios

Creamos el directorio donde vamos a instalar qmail:

mkdir /var/qmail

Usuarios

Creamos los usuarios necesarios para los daemons de qmail:

cd /usr/local/src/netqmail-1.06
export TMP=$(mktemp /tmp/lol.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
echo '#!/bin/bash' >$TMP
cat /usr/local/src/netqmail-1.06/INSTALL.ids | grep -i Linux -A 11 | grep "#" | sed 's/$/;/ig' | sed 's/#//ig' >>$TMP
bash $TMP
rm $TMP
unset TMP
sed -i 's#::/var/qmail/alias:/bin/bash#::/var/qmail/alias:/bin/true#' /etc/passwd
sed -i 's#::/var/qmail:/bin/bash#::/var/qmail:/bin/true#' /etc/passwd

Instalación daemontools

Seguimos con la instalación de daemontools, que otras veces ya hemos tratado:

cd /package/admin/daemontools-0.76/src
patch < /usr/local/src/netqmail-1.06/other-patches/daemontools-0.76.errno.patch
cd ..
package/install

Podremos ver como aparecen los siguientes procesos:

root     23733  0.0  0.0  3196 1052 ?        Ss   15:07   0:00 /bin/sh /command/svscanboot
root     23735  0.0  0.0  2952  316 ?        S    15:07   0:00  \_ svscan /service
root     23736  0.0  0.0  1940  232 ?        S    15:07   0:00  \_ readproctitle service errors: ............................

Instalación MySQL

Vamos a instalar vpopmail con soporte MySQL, por lo que si no disponemos de uno deberemos instalarlo:

wget http://dev.mysql.com$(curl -dump http://dev.mysql.com/downloads/mysql/5.1.html 2>/dev/null| grep "Compressed GNU TAR archive" | sed 's/^.*href="//' | sed 's/".*$//' | sed 's#/pick#/http://mysql.rediris.es/#') -O /usr/local/src/mysql.tgz
tar xzf mysql.tgz
cd mysql*
./configure --prefix=/usr/local/mysql51 --exec-prefix=/usr/local/mysql51 --with-plugins=innobase,partition --enable-assembler --with-mysqld-ldflags=-all-static --with-big-tables --with-pthread
make && make install
mkdir -p /var/mysql/datadir
ln -s /usr/local/mysql51/ /usr/local/mysql
cp /usr/local/src/mysql-*/support-files/my-small.cnf /etc/my.cnf
sed -i 's/#skip-networking/skip-networking/' /etc/my.cnf
mkdir -p /usr/local/supervise/mysql
groupadd mysql
useradd -g mysql mysql
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/var/mysql/datadir
chown -R root .
chown -R mysql /var/mysql
mkdir -p /var/log/mysql
chown mysql:root /var/log/mysql/ -R
echo "export PATH=\$PATH:/usr/local/mysql/bin" >> /etc/profile
echo "/usr/local/mysql/lib/mysql" > /etc/ld.so.conf.d/mysq.conf
ldconfig 
. /etc/profile

A continuación creamos el fichero /usr/local/supervise/mysql/run:

#!/bin/bash
exec /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/var/mysql/datadir --user=mysql --pid-file=/var/mysql/mysqld.pid --skip-external-locking --socket=/tmp/mysql.sock --log-error=/var/log/mysql/mysqld.log

Le damos permisos y levantamos el servicio:

chmod +x /usr/local/supervise/mysql/run
ln -s /usr/local/supervise/mysql /service

Podemos definir una contraseña mediante:

/usr/local/mysql51/bin/mysqladmin -u root password 'p4ssw0rd'
/usr/local/mysql51/bin/mysqladmin -u root -pp4ssw0rd -h $(hostname --long) password 'new-password'

A continuación deberemos tener una primera versión de qmail (sin parches) para poder instalar vpopmail.

Instalación qmail

Instalar la distribución netqmail es tan simple como esto:

cd /usr/local/src/netqmail-1.06
make setup check

A continuación si ya tenemos correctamente configurados los DNS podemos ejecutar lo siguiente:

./config

En caso que aún no dispongamos de DNS configurados, por ejemplo, porque estamos preparando un servidor qmail al cual migraremos más adelante, podemos forzar la configuración de una inversa concreta mediante config-fast:

./config-fast ejemplo.systemadmin.es

Mañana seguiremos instalando vpopmail y spamassassin.

5 comments to “Instalación de qmail con vpopmail, qmail-scanner, ClamAV y SpamAssassin (I)”

  1. Por que no instalas el mysql de la distribución?

  2. Los binarios siempre me han dado disgustos, por lo que prefiero evitarlos para los daemons más críticos. Además, de esta manera puedo habilitar solo lo que me interesa:

    --with-plugins=innobase,partition
    
  3. Para el que lo requiera, existe una aplicación que instala el QMail automáticamente, solo para Debian Linux, útil para ahorrar tiempo, está hecho en QT, les dejo la liga:
    http://autoqmailinst.sourceforge.net/

  4. Tengo problemas con la direccion de descarga de MySQL no se si puedes checarla porque preciso de la instalacion, me tira un archivo HTML

  5. Voy a intentar que vuelva a funcionar, pero puedes simplemente bajar el código fuente del MySQL de su web y dejarlo en /usr/local/src con el nombre mysql.tgz.

    Así el resto funcionará tal cual

    saludos!

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>