Montando mi servidor de correo (Qmail) Vol. V

agosto 18, 2005 en how-to por b3r2c0

Si pensabais que iba a parar aquí estais locos, parece que no me conoceis, con lo que me gusta trastear no iba a dejar mi servidor de correo sin IMAP & IMAP SSL, Squirrelmail, Qmail-Scanner, Spamassassin, Clam Anti Virus y Checkall (esto al menos de momento ;D)

Instalando IMAP e IMAP SSL

Vamos a instalar Courier-imap/imaps, lo cual, obviamente, nos permitirá establecer conexiones IMAP con el servidor. Además le añadiremos Courierpassd, que permitirá a los usuarios una mayor gestión de sus cuentas.

Instalemoslo…
cd /downloads/qmailrocks/
bunzip courier-imap-3.0.8.tar.bz2
tar xvf courier-imap-3.0.8.tar
cd courier-imap-3.0.8
./configure --prefix=/usr/local --exec-prefix=/usr/local --without-authdaemon --with-authvchkpw --without-authldap --disable-root-check --with-ssl
make && make install-strip
cd /usr/local/etc

Asgúrate que existen los ficheros imapd e imapd-sll, sino están
cp imapd.dist imapd
cp imapd-ssl.dist imapd-ssl

Vamos a crear un Certificado SSL para el servidor IMAP-SSL
/usr/local/sbin/mkimapdcert
Esto iniciará un proceso automático que creará un certificado imap-ssl X.509 autofirmado llamado imapd.pem. Este certificado debe ser creado en /usr/local/share/imapd.pem. Si el certificado ya existe mkimapdcert nos permitirá sobreescribirlo.

NOTA: El certificado es autofirmado, es decir, no lo emite ninguna autoridad como VeriSign o Thawte, pero esto no quiere decir que por ello sea menos seguro, lo único que en ciertas aplicaciones como Outlook, puede mostrar un mensaje de Warning.

vi imapd-ssl

make sure IMAPDSSLSTART=YES

NOTA: Dependiendo del número de conexiones que recibas por IMAP desde una misma IP puede interesarte ampliar el parámetro «MAXPERIP» en el fichero /usr/local/etc/imapd , por defecto viene limitado a 4 conexiones.

cp /usr/local/libexec/imapd.rc /usr/local/etc/rc.d/imap.sh
cp /usr/local/libexec/imapd-ssl.rc /usr/local/etc/rc.d/imaps.sh
/usr/local/etc/rc.d/imap.sh start
/usr/local/etc/rc.d/imaps.sh start

Si IMAP se está ejecutando correctamente ps -auxwmostrará varios procesos

/usr/local/libexec/authlib/authdaemond.plain start

Con un nmap localhost veremos que están abiertos y a la escucha los puertos 143 y 993.

Vamos a testarlo…
telnet localhost 143

Trying 192.168.x.y…
Connected to 192.168.x.y.
Escape character is ‘^]’.
OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE STARTTLS] Courier-IMAP ready. Copyright 1998-2003 Double Precision, Inc. See COPYING for distribution information.
a login postmaster@tuservidor.com tu_password
a OK LOGIN Ok. (successful login!)
a logout (logs you out)
– BYE Courier-IMAP server shutting down
a OK LOGOUT completed
Connection closed by foreign host.

Ahora que ya hemos comprobado que funciona vamos a instalar Courierpassd, para que los usuarios puedan cambiar su contraseña desde Squirrelmail.
NOTA:el puerto 106 tiene que estar abierto para la máquina local (127.0.0.1)

cd /downloads/qmailrocks
tar zxvf courierpassd-1.1.0-RC1.tar.gz
cd courierpassd-1.1.0-RC1
./configure --with-couriersrc=/downloads/qmailrocks/courier-imap-3.0.8
make && make install

Instalado pues, ahora vamos a configurar el demonio Xinetd/Inetd.

Xinetd

cd /etc/xinetd.d
vi courierpassd

service courierpassd
{
port = 106
socket_type = stream
protocol = tcp
user = root
server = /usr/local/sbin/courierpassd
server_args = -s imap
wait = no
only_from = 127.0.0.1
instances = 4
disable = no
}

NOTA: Puedes añadir más IPs a «only_from» según tus necesidades, yo, contra más controlado esté todo, mejor.

Inetd

vi /etc/inetd.conf
Añadir

courierpassd stream tcp nowait root /usr/local/sbin/courierpassd -s imap

vi /etc/services

courierpassd 106/tcp #for /etc/xinetd.d/courierpassd

/etc/rc.d/init.d/xinetd restart
/etc/rc.d/init.d/inetd restart
/etc/rc.d/init.d/imap stop
/etc/rc.d/init.d/imaps stop
/etc/rc.d/init.d/imap start
/etc/rc.d/init.d/imaps start

Vamos a probar a resetear una pass

root@freebsd:/# telnet localhost 106

Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
200 courierpassd v0.30 hello, who are you?
user postmaster@qmailrocks.org
200 Your password please.
pass tu_password
200 Your new password please.
newpass tu_nueva_password
200 Password changed, thank-you.
quit
200 Bye.
Connection closed by foreign host.
root@freebsd:/#

Esto ya está, pero recuerda… aún tenemos un par de cosillas por hacer.