Páginas vistas en total

martes, 25 de marzo de 2008

QmailRocks en Gentoo sobre Sparc. (parte.2)

Instalando Qmail.
Bueno podemos tomar las fuentes de Qmail y compilar a mano o podemos utilizar los
ebuilds que provee Gentoo, para efectos prácticos mejor utilizamos lo que Gentoo ya provee y esta probado.

Veamos esta lista, son los paquetes sugeridos por la guía de QmailRocks:
  • qmail
  • ucspi-tcp
  • daemon-tools
  • qmail's pop3d
  • qmail SMTP authentication patch
  • qmail SMTP TLS patch
  • ezmlm mailing list
  • autoresponder
  • qmailanalog
  • vpopmail
  • vqadmin
  • maildrop
  • qmailadmin
  • courier IMAP & IMAP SSL
  • SquirrelMail WebMail
  • qmail-scanner
  • qms-analog
  • SpamAssassin
  • ClamAv
  • qtrap
Es una gran lista de software por instalar pero no todos funcionan sobre Gentoo, por lo menos no sin los parches adecuados. Tenemos otra referencia sobre como instalar Qmail sobre Gentoo en gentoo-wiki aquí se detalla mucho la instalación, bueno si aquí hay un howto porque estamos haciendo este?, fácil, porque me dio la gana y además porque tenemos una pequeña variante nuestra plataforma de hardware es un equipo Sparc y no todo el software que esta disponible para x86 lo esta para Sparc así que veremos como hacer funcionar este.

Siguiendo la lista de paquetes que aparecen en
gentoo-wiki tendríamos que instalar:
  • NetQmail (ya que Qmail es ahora un paquete virtual y proveen lo mismo).
    • net-mail/queue-repair
    • net-mail/dot-forward
    • sys-process/daemontools
    • sys-apps/ucspi-tcp
    • net-mail/cmd5checkpw
    • net-mail/checkpassword
    • mail-mta/netqmail
En este paso la guía indica que habilitemos el uso de SSL mediante la bandera USE=ssl" para utilizar encriptación en los mensajes enviados, bien esto ya no es necesario especificarlo porque por default lo maneja de esa forma, hacemos el emerge:

# emerge --ask --verbose netqmail
# env-update

El siguiente paso es crear el certificado que nos da autenticidad de ser quienes decimos que somos (¬¬). Antes de generarlo tenemos que editar el archivo de configuración personalizada para openssl, los datos a modificar son claros:

# nano -w /var/qmail/control/servercert.cnf
# /var/qmail/bin/mkservercert

Esto nos crea un archivo "servercert.pem" y un enlace simbólico suave al mismo llamado "clientcert.pem" en el directorio "/var/qmail/control/".

El certificado tiene una duración de 365 días por lo tanto no tendremos que hacer uno nuevo pronto pero pasa que a muchos se nos olvida renovarlo, en la documentación viene una forma de checar día a día si nuestro certificado ya caduco y en caso de que así sea volver a generarlo.

Primero hacemos una copia en el mismo lugar del script que genera el certificado y despues comentamos la parte interactiva.

# cp -a /var/qmail/bin/mkservercert /var/qmail/bin/mkservercert-noprompt
# nano -w /var/qmail/bin/mkservercert-noprompt

En este archivo que estamos editando comentamos las siguientes lineas que lo único que hacen es mandar un aviso y pedir un ENTER como confirmación el cual es leído de la linea de comandos y después continua con el proceso de hacer el certificado.

#ewarn "Please customize ${conffile} before continuing!"
#einfo "Press ENTER to continue, or CTRL-C to stop now."
#read

Procedemos ahora a hacer una nueva tarea cron esta la creamos en el directorio "/etc/cron.daily" todo lo que esta ahí se ejecuta todos los días por lo tanto todos los días va a checar que el certificado este vigente de lo contrario lo borra y genera uno nuevo, así lo hacemos:

# nano -w /etc/cron.daily/qmail-update-certificate

El contenido del archivo debe ser este:

#!/bin/sh
COUNT=`openssl verify /var/qmail/control/servercert.pem |grep expired|wc -c`
if [[${COUNT} -gt 1]] ; then
rm /var/qmail/control/servercert.pem
/var/qmail/bin/mkservercert-noprompt
/etc/init.d/svscan restart
fi

Guardamos y cerramos el archivo, con esto esta parte queda lista.

Lo siguiente que vamos a hacer es decirle al sistema que cada ves que realicemos una actualización o instalemos algo que modifique la configuración personalizada de "netqmail" nos diga que se á cambiado y/o que tenemos que cambiar la configuración del paquete "netqmail" después de que termino el emerge, eso lo hacemos con el siguiente comando:

# ebuild /var/db/pkg/mail-mta/netqmail-1.05-r8/netqmail-1.05-r8.ebuild config

Esto nos tirara en la terminal algo parecido a esto:

Appending /var/db/pkg to PORTDIR_OVERLAY...
Your fully qualified host name is correo.acatlan.unam.mx.
Putting correo.acatlan.unam.mx into control/me...
Putting acatlan.unam.mx into control/defaultdomain...
Putting unam.mx into control/plusdomain...
Putting correo.acatlan.unam.mx into control/locals...
Putting correo.acatlan.unam.mx into control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to correo.acatlan.unam.mx.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!
* Accepting relaying by default from all ips configured on this machine.
* Generating RSA keys for SSL/TLS, this can take some time ... [ ok ]
* Creating a self-signed ssl-certificate:
* /var/qmail/control/servercert.pem already exists.
* If you want to have a properly signed certificate
* instead, do the following:
* openssl req -new -nodes -out req.pem \
* -config /var/qmail/control/servercert.cnf \
* -keyout /var/qmail/control/servercert.pem
* Send req.pem to your CA to obtain signed_req.pem, and do:
* cat signed_req.pem >> /var/qmail/control/servercert.pem

Con esto casi estamos listo para empezar a mandar correos.

No hay comentarios: