Professional Documents
Culture Documents
org
ndice de contenido
1.Licencia (BSD)..................................................................................................................................1
2. Qe es OpenSMTPD ?...................................................................................................................2
3.Configuracin del servidor de correo................................................................................................2
3.1.Recibiendo correo para un dominio...........................................................................................2
a.Configuracin bsica del sistema operativo OpenBSD.......................................................3
b.Eliminando los rastros de sendmail.....................................................................................4
c.Habilitamos el servidor OpenSMTPD para recibir en MBOX............................................5
d.Habilitamos el servidor OpenSMTPD para recibir en formato MailDir.............................9
3.2.OpenSMTPD usando TLS......................................................................................................11
3.3.OpenSMTPD usando SSL......................................................................................................18
4.Descargando el correo por POP e IMAP.........................................................................................19
5.Habilitando un webmail seguro.......................................................................................................23
5.1.Servidor web seguro (https).....................................................................................................23
5.2.Instalando el servidor MySQL.................................................................................................26
5.3.Soporte PHP/MySQL para Apache..........................................................................................29
5.4.Instalando el webmail (roundcubemail)..................................................................................31
6.Conclusiones....................................................................................................................................40
7.Enlaces recomendados.....................................................................................................................42
1. Licencia (BSD)
Copyright (c) 2009, Fernando Quintero (a.k.a nonroot),
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions
are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the OpenBSD Colombia nor the names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS
SOFTWARE
IS
PROVIDED
BY
THE
COPYRIGHT
HOLDERS
AND
CONTRIBUTORS
"AS
IS"
AND
ANY
EXPRESS
OR
IMPLIED
WARRANTIES,
INCLUDING,
BUT
NOT
LIMITED
TO,
THE
IMPLIED
WARRANTIES
OF
MERCHANTABILITY
AND
FITNESS
FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS
BE
LIABLE
FOR
ANY
DIRECT,
INDIRECT,
INCIDENTAL,
SPECIAL,
________________________________________________________________________________
1.Licencia (BSD)
1/44
EXEMPLARY,
OR
CONSEQUENTIAL
DAMAGES
(INCLUDING,
BUT
NOT
LIMITED
TO,
PROCUREMENT
OF
SUBSTITUTE
GOODS
OR
SERVICES;
LOSS
OF
USE,
DATA,
OR
PROFITS;
OR
BUSINESS
INTERRUPTION)
HOWEVER
CAUSED
AND
ON
ANY
THEORY
OF
LIABILITY,
WHETHER
IN
CONTRACT,
STRICT
LIABILITY,
OR
TORT
(INCLUDING
NEGLIGENCE
OR
OTHERWISE)
ARISING
IN
ANY
WAY
OUT
OF
THE
USE
OF
THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2. Qe es OpenSMTPD ?
OpenSMTPD es un MTA en proceso de desarrollo, que busca crear un servidor de correo orientado
a la seguridad, con muchas funcionalidades y bastante fcil de configurar. Actualmente esta siendo
desarrollado en gran parte por jacekm@ y gilles@, siendo este ltimo el frontend del proyecto.
Cuando le la noticia de un nuevo servidor de correo pens lo que seguramente estas pensando, para
que otro nuevo MTA si ya se tiene postfix, sendmail, qmail, exim, etc?. La respuesta la obtuve
despus de hacerle mucho seguimiento a la lista de soporte @misc y de algunas entrevistas a los
desarrolladores. Y la conclusin a la que llego es que vale la pena el esfuerzo por crear algo nuevo
al estilo BSD ;). Porque?, porque los otros MTA no tienen licencias adecuadas, por eso nunca han
entrado en el sistema base de OpenBSD, postfix y qmail son ejemplos de estos, no permiten que el
equipo OpenBSD realice sus cambios a voluntad, esto segn la filosofa del proyecto, no es algo
que se pueda aceptar.
Actualmente OpenBSD trae en su sistema base una modificacin del demonio sendmail, el MTA
mas antiguo y posiblemente el que tenga mas funcionalidades, pero tambin el mas complicado de
configurar, ya que para usar los famosos milters, es necesario recompilar el software o crear macros
m4 que no todo el mundo puede comprender...
En conclusin, se quiere crear un nuevo servidor de correo al estilo OpenBSD, Libre, Funcional y
Seguro!, entonces le damos la bienvenida a OpenSMTPD !!!.
En este documento voy a mostrar como configurar de forma prctica un servidor de correo con
OpenSMTPD que ya viene en el sistema base (no habilitado) en la actual release 4.6. Como
siempre, cualquier duda o comentario lo pueden enviar a la lista de soporte de OpenBSD Colombia.
2/44
________________________________________________________________________________
3.Configuracin del servidor de correo
3/44
# ping correo.ejemplo.com
PING correo.ejemplo.com (192.168.0.200): 56 data bytes
64 bytes from 192.168.0.200: icmp_seq=0 ttl=255 time=0.128 ms
64 bytes from 192.168.0.200: icmp_seq=1 ttl=255 time=0.114 ms
--- correo.ejemplo.com ping statistics --2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.114/0.121/0.128/0.007 ms
Recuerden que el DNS debe tener un registro MX apuntando a nuestro servidor de correo
(192.168.0.200):
@
IN
MX
10
correo.ejemplo.com.
correo.ejemplo.com.
IN
192.168.0.200
0:00.25
root
28380 0.0 0.4
sendmail
0:00.07 grep -i
332
744 p0 S+
8:11AM
# pkill sendmail
Lo deshabilitamos del arranque:
En el archivo /etc/rc.conf, reemplazamos la lnea:
________________________________________________________________________________
3.Configuracin del servidor de correo
4/44
/usr/sbin/smtpctl
send-mail
/usr/sbin/smtpctl
mailq
/usr/sbin/smtpctl
makemap
newaliases
/usr/libexec/smtpd/makemap
/usr/libexec/smtpd/makemap
Una vez creados los usuarios podemos hacer los cambios en el archivo de configuracin del
servidor de correo: /etc/mail/smtpd.conf.
________________________________________________________________________________
3.Configuracin del servidor de correo
5/44
Como pueden ver, lo nico que he hecho es modificar la interfaz de red donde escuchar el
servidor de correo (en mi caso vic0) y agregamos una regla para aceptar correos que vayan para
ejemplo.com. La sintaxis de OpenSMTPD es muy simple.
Para hacer pruebas configuramos una cuenta en un software cliente de correo (MUA), en mi caso
tengo thunderbird , un cliente de correo multiplataforma con bastantes funcionalidades.
Le configuramos una cuenta para el usuario nando y luego intentamos enviar un correo.
________________________________________________________________________________
3.Configuracin del servidor de correo
6/44
________________________________________________________________________________
3.Configuracin del servidor de correo
7/44
________________________________________________________________________________
3.Configuracin del servidor de correo
8/44
$ mail
Mail version 8.1.2 01/15/2001. Type ? for help.
"/var/mail/nando": 2 messages 2 new [Read only]
>N 1 astrid@correo.eje Sun Nov 8 09:06
15/536
aaa
17/620
Correo de
&
O podemos verificarlo manualmente buscando el archivo MBOX almacenado en el sistema:
# cd /var/mail
# pwd
/var/mail
# ls -la
total 28
drwxr-xr-x
2 root
wheel
drwxr-xr-x 23 root
wheel
-rw-------
-rw-r--r--
1 root
wheel
-rw-------
1 root
wheel
# tail nando
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
MIME-Version: 1.0
To: nando@ejemplo.com
Subject: Correo de prueba
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Hola como estamos?
#
9/44
la configuracin que tenemos para que soporte este formato, lo nico que hacemos es modificar la
regla delivery, escribiendo lo siguiente:
accept from 192.168.0.0/24 for domain "ejemplo.com" deliver to maildir "/home/
%u/Maildir"
________________________________________________________________________________
3.Configuracin del servidor de correo
10/44
________________________________________________________________________________
3.Configuracin del servidor de correo
11/44
________________________________________________________________________________
3.Configuracin del servidor de correo
12/44
Lo primero que debemos hacer es verificar que nuestro MTA soporta cifrado con certificados
digitales, una vez comprobado esto (preguntandole al desarrollador, leyendo manuales, leyendo la
lista @misc) podemos crear los certificados y ubicarlos en las rutas correctas.
Vamos a crear el certificado de nuestra CA, de esta forma todas las comunicaciones sern validadas
por este certificado raz:
#openssl req -days 3650 -nodes -new -x509 -keyout /etc/ssl/private/CA.key -out /etc/ssl/CA.crt
Con este comando generamos el certificado digital de la CA (CA.crt) y su llave privada (CA.key)
________________________________________________________________________________
3.Configuracin del servidor de correo
13/44
-CAcreateserial
Signature ok
subject=/C=CO/ST=OpenBSD/L=Medellin/O=IT/OU=IT/CN=correo.ejem
plo.com/emailAddress=nando@ejemplo.com
Getting CA Private Key
________________________________________________________________________________
3.Configuracin del servidor de correo
14/44
Una vez tengamos el certificado del servidor de correo creado y firmado por nuestra CA, vamos a
ubicar los archivos donde el OpenSMTPD los necesita.
# mkdir /etc/mail/certs
# cp /etc/ssl/private/vic0.crt /etc/mail/certs/
# cp /etc/ssl/private/vic0.key /etc/mail/certs/
# cp /etc/ssl/CA.crt /etc/mail/certs/CA.crt
El nombre del archivo para la CA debe ser: Cacert.pem, debido a que el servidor de correo lo
buscar con este nombre, lo que hacemos entonces es renombrarlo:
# mv /etc/mail/certs/CA.crt /etc/mail/certs/CAcert.pem
________________________________________________________________________________
3.Configuracin del servidor de correo
15/44
________________________________________________________________________________
3.Configuracin del servidor de correo
16/44
Si queremos aceptarlo de forma temporal, simplemente le damos aceptar. Si queremos que nuestro
sitio sea confiable del todo, debemos pasar el certificado digital de la CA a todos los MUA que
vayamos a usar. En thunderbird la ruta para agregar una CA es: Opciones Avanzadas
Certificados Ver certificados Autoridades Importar. El certificado que se importa es el
CA.crt, o en nuestro caso el Cacert.pem.
Para hacer la prueba configuramos el MUA para que use TLS y opcionalmente autentique los
usuarios y luego capturamos el trfico:
________________________________________________________________________________
3.Configuracin del servidor de correo
17/44
18/44
Fig 13. Inicio del servidor con soporte de SSL, se siguen usando los mismos certificados.
Obviamente tendremos que cambiar la configuracin del MUA para que no use TLS sino SSL.
Si quieres tener uno o mas puertos escuchando al tiempo, puedes agregar una lnea listen al
archivo de configuracin por cada puerto o interfaz donde quieras que el servidor OpenSMTPD
escuche.
________________________________________________________________________________
4.Descargando el correo por POP e IMAP
19/44
Si navegamos a este sitio, podemos encontrar que el paquete dovecot se llama: dovecot-1.1.16.tgz.
Y para instalarlo nos olvidamos de compilar cdigo y usamos los paquetes ya listos del repositorio
de OpenBSD, simplemente ejecutamos:
#pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/4.6/packages/i386/dovecot-1.1.16.tgz
Fig 14. Instalacin del paquete dovecot en OpenBSD, usando los binarios.
Si queremos que dovecot arranque automticamente, agregamos lo siguiente al archivo /etc/rc.local
if [ -x /usr/local/sbin/dovecot ]; then
echo -n ' dovecot';
/usr/local/sbin/dovecot
f
Tambin nos recomiendan ejecutar el script: /usr/local/sbin/dovecot-mkcert.sh.
Esto para generar el certificado autofirmado del dovecot, pero como ya tenemos una CA creada,
vamos a generar un nuevo certificado para dovecot y lo vamos a firmar con nuestra CA.
Siguiendo los pasos entonces:
1. Generamos la peticin del certificado:
# openssl req -days 3650 -nodes -new -keyout
/etc/ssl/private/dovecot.key -out /etc/ssl/private/dovecot.csr
Generating a 1024 bit RSA private key
..............................................++++++
............++++++
writing new private key to '/etc/ssl/private/dovecot.key'
________________________________________________________________________________
4.Descargando el correo por POP e IMAP
20/44
________________________________________________________________________________
4.Descargando el correo por POP e IMAP
21/44
3. Ubicamos los certificados en las rutas recomendadas por el paquete dovecot para OpenBSD:
# cp /etc/ssl/private/dovecot.key /etc/ssl/private/dovecot.pem
# cp /etc/ssl/dovecot.crt /etc/ssl/dovecotcert.pem
4. Para ejecutarlo simplemente corremos el comando dovecot.
#dovecot
El paquete dovecot viene listo para funcionar por los puertos 143 (IMAP) y 993 (IMAPS), para
probarlo solo basta con crear una nueva cuenta en nuestro MUA y decirle que vamos a usar IMAP.
Recuerde que la configuracin del dovecot por defecto deshabilita la autenticacin en texto plano en
el archivo /etc/dovecot.conf con la opcin:
disable_plaintext_auth = yes
y se pueden habilitar los protocolos a usar en la variable:
protocols = imap imaps pop3 pops
Veamos como se visualiza una conexin con TLS al puerto IMAP:
22/44
23/44
________________________________________________________________________________
5.Habilitando un webmail seguro
24/44
25/44
26/44
________________________________________________________________________________
5.Habilitando un webmail seguro
27/44
________________________________________________________________________________
5.Habilitando un webmail seguro
28/44
29/44
php5-mysql-5.2.10: complete
--- php5-core-5.2.10 ------------------To enable the php5 module please create a symbolic
link from /var/www/conf/modules.sample/php5.conf
to /var/www/conf/modules/php5.conf.
ln -s /var/www/conf/modules.sample/php5.conf \
/var/www/conf/modules
The recommended php confguration has been installed
to /var/www/conf/php.ini.
Don't forget that the default OpenBSD httpd is chrooted
into /var/www by default, so you may need to create support
directories such as /var/www/tmp for PHP to work correctly.
--- php5-mysql-5.2.10 ------------------You can enable this module by creating a symbolic
link from /var/www/conf/php5.sample/mysql.ini to
/var/www/conf/php5/mysql.ini.
ln -fs /var/www/conf/php5.sample/mysql.ini \
/var/www/conf/php5/mysql.ini
Al terminar de instalar nos recomiendan ejecutar un procedimiento:
1. ln -s /var/www/conf/modules.sample/php5.conf
/var/www/conf/modules
________________________________________________________________________________
5.Habilitando un webmail seguro
30/44
2. mkdir /var/www/tmp
3. ln -fs /var/www/conf/php5.sample/mysql.ini
/var/www/conf/php5/mysql.ini
La forma mas fcil de probar el soporte php instalado es creando un script de prueba:
# pwd
/var/www/htdocs
# cat test.php
<?php
phpinfo();
?>
#
Debemos obtener algo as:
31/44
# pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/4.6/packages/i386/roundcubemail-0.2.2.tgz
# pkg_add -v
ftp://ftp.openbsd.org/pub/OpenBSD/4.6/packages/i386/roundcubemail0.2.2.tgz
parsing
ftp://ftp.openbsd.org/pub/OpenBSD/4.6/packages/i386/roundcubemail0.2.2.tgz
Dependencies for roundcubemail-0.2.2 resolve to: php5-mbstring5.2.10, php5-core-5.2.10 (todo: php5-mbstring-5.2.10)
roundcubemail-0.2.2:parsing php5-mbstring-5.2.10
Dependencies for php5-mbstring-5.2.10 resolve to: php5-core-5.2.10
found libspec m.5.0 in /usr/lib
found libspec stdc++.47.0 in /usr/lib
roundcubemail-0.2.2:php5-mbstring-5.2.10: complete
installed /var/www/roundcubemail/confg/db.inc.php from
/var/www/roundcubemail/confg/db.inc.php.dist
| 1%
installed /var/www/roundcubemail/confg/main.inc.php from
/var/www/roundcubemail/confg/main.inc.php.dist
installed /var/www/roundcubemail/confg/mimetypes.php from
/var/www/roundcubemail/confg/mimetypes.php.dist
| 2%
roundcubemail-0.2.2: complete
--- php5-mbstring-5.2.10 ------------------You can enable this module by creating a symbolic
link from /var/www/conf/php5.sample/mbstring.ini to
/var/www/conf/php5/mbstring.ini.
ln -fs /var/www/conf/php5.sample/mbstring.ini \
/var/www/conf/php5/mbstring.ini
--- roundcubemail-0.2.2 ------------------RoundCube webmail has been installed into /var/www/roundcubemail
Proceed to complete the installation or upgrade by reading:
/var/www/roundcubemail/INSTALL
/var/www/roundcubemail/UPGRADING
A database is required to use this package; PostgreSQL, MySQL and
________________________________________________________________________________
5.Habilitando un webmail seguro
32/44
Al igual que con los paquetes anteriores, se recomiendan crear unos enlaces y hacer unas
configuraciones:
1. ln -fs /var/www/conf/php5.sample/mbstring.ini
/var/www/conf/php5/mbstring.ini
2.
/temp
/logs
3. Create a new database and a database user for RoundCube (see DATABASE SETUP)
4. Point your browser to http://url-to-roundcube/installer/
5. Follow the instructions of the install script (or see MANUAL CONFINGURATION)
6. After creating and testing the configuration, remove the installer directory
7. Done!
Hagamoslo!
1. El software ya se encuentra descomprimido en: /var/www/roundcubemail/
Podemos dejarlo ah y luego cambiar la ruta del host virtual https en el archivo
/var/www/conf/httpd.conf, especficamente la lnea donde esta:
...
<VirtualHost _default_:443>
________________________________________________________________________________
5.Habilitando un webmail seguro
33/44
2. Lo mejor es darle permisos a todo el software roundcube y ponerle permisos de escritura a los
dos directorios que se mencionan:
# pwd
/var/www/roundcubemail
# chown -R www.www roundcubemail/
# cd roundcubemail/
# chmod -R 755 temp/
# chmod -R 755 logs
3. Debemos crear una base de datos para roundcube e inicializarla con el contenido que trae el
software:
# mysqladmin -u root -p create roundcube
Enter password:
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.0.83-log OpenBSD port: mysql-server-5.0.83
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
mysql> GRANT ALL PRIVILEGES ON roundcube.* TO webmail@localhost
IDENTIFIED BY 'webmailpassword';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
________________________________________________________________________________
5.Habilitando un webmail seguro
34/44
mysql> quit
Bye
#
Con esto se crear una base de datos llamada roundcube, un usuario llamado webmail que tiene
permisos completos sobre la misma y usa como contrasea: 'webmailpassword' para este usuario.
No sobra advertir que en la configuracin real se sugiere usar contraseas realmente robustas.
Por ultimo creamos la estructura de la base de datos con la plantilla que trae el roundcube:
# mysql -u root -p roundcube < SQL/mysql.initial.sql
Enter password:
#
En este punto estaremos listos para entrar al instalador web del roundcube:
La primera vez que arranco el instalador recibo el siguiente error:
Fig 20. Error al intentar usar el instalador web por primera vez.
Lo primero es que en el archivo de configuracin (/var/www/roundcubemail/config/main.inc.php)
debemos habilitar la posibilidad de usar el instalador web, por defecto la variable esta en la lnea
321 y hay que ponerla en un estado true.
$rcmail_confg['enable_installer'] = true;
Con esto podemos arrancar el instalador web.
________________________________________________________________________________
5.Habilitando un webmail seguro
35/44
Hay un error con respecto al directorio temporal (tmp) debido a que mysql y php requieren un
directorio /tmp, pero dentro del chroot, entonces hacemos lo siguiente:
# pwd
/var/www
# chown www.www tmp
# chmod 755 tmp
Luego recargamos nuevamente (F5) el instalador web y encontramos lo siguiente:
________________________________________________________________________________
5.Habilitando un webmail seguro
36/44
37/44
# pkg_add -v ftp://ftp.openbsd.org/pub/OpenBSD/4.6/packages/i386/pear-MDB2-mysql-1.4.1p1.tgz
# pkg_add -v
ftp://ftp.openbsd.org/pub/OpenBSD/4.6/packages/i386/pear-MDB2mysql-1.4.1p1.tgz
parsing ftp://ftp.openbsd.org/pub/OpenBSD/4.6/packages/i386/pearMDB2-mysql-1.4.1p1.tgz
Dependencies for pear-MDB2-mysql-1.4.1p1 resolve to: php5-mysql5.2.10, pear-1.7.2, pear-MDB2-2.4.1 (todo: pear-MDB2-2.4.1,pear-1.7.2)
pear-MDB2-mysql-1.4.1p1:parsing pear-MDB2-2.4.1
Dependencies for pear-MDB2-2.4.1 resolve to: pear-1.7.2 (todo: pear1.7.2)
pear-MDB2-mysql-1.4.1p1:parsing pear-1.7.2
Dependencies for pear-1.7.2 resolve to: pear-utils-1.7.2, php5-core5.2.10 (todo: pear-utils-1.7.2)
pear-MDB2-mysql-1.4.1p1:parsing pear-utils-1.7.2
pear-MDB2-mysql-1.4.1p1:pear-utils-1.7.2: complete
pear-MDB2-mysql-1.4.1p1:pear-1.7.2: complete
pear-MDB2-mysql-1.4.1p1:pear-MDB2-2.4.1: complete
pear-MDB2-mysql-1.4.1p1: complete
Muchas veces nos ocurren estos errores cuando trabajamos con OpenBSD y apache en modo
chroot, debemos asegurarnos que exista el directorio: /var/www/var/run/mysql, de lo contrario el
socket de mysql no podr ser creado y la aplicacin no se podr conectar a la base de datos. Es
importante recordar que para el modo chroot del apache la RAIZ es /var/www, por eso se crea a
partir de all la estructura de directorios. Este directorio lo habamos creado cuando instalamos
MySQL, pero es posible que a alguien se le pase y le cause dolores de cabeza, por eso la insistencia
sobre la creacin del mismo.
________________________________________________________________________________
5.Habilitando un webmail seguro
38/44
Fig 22. Pruebas ejecutadas desde roundcube, al servidor SMTP y al servidor IMAP.
Despus de hacer los tests correspondientes, editamos el archivo main.inc.php para terminar de
organizar algunos detalles de la configuracin:
Veamos algunas variables importantes para que nuestro webmail funcione, las otras variables las
puedes explorar despus de que el sistema funcione.
$rcmail_confg['default_host'] = 'tls://192.168.0.200';
Esta variable le dice que nos conectaremos a un host(192.168.0.200) IMAP usando TLS:
$rcmail_confg['IMAP_auth_type'] = plain;
Usar autenticacin tipo PLAIN, pero dentro del canal seguro con TLS, entonces no hay peligro
$rcmail_confg['smtp_server'] = '192.168.0.200';
Se define el servidor de correo, nuestro OpenSMTPD.
$rcmail_confg['smtp_port'] = 25;
Puerto donde funciona nuestro MTA.
$rcmail_confg['smtp_auth_type'] = 'LOGIN';
Tipo de autenticacin en SMTP, recuerden que lo importante es asegurar el canal antes de autenticar
usuarios para el envo de correo.
________________________________________________________________________________
5.Habilitando un webmail seguro
39/44
________________________________________________________________________________
5.Habilitando un webmail seguro
40/44
________________________________________________________________________________
5.Habilitando un webmail seguro
41/44
6. Conclusiones
El objetivo del documento era hablar un poco de OpenSMTPD y como han visto me he desviado un
poco del tema, pero creo que el ejercicio vale la pena porque se muestra como configurar un
servidor de correo seguro con acceso web para usuarios con las herramientas mas comunes en el
mundo del software libre.
Es importante recalcar que OpenSMTPD es un software en construccin, an no tiene todas las
caractersticas deseadas, cosas como una autenticacin diferente a PLAIN o LOGIN en el SMTP
an no estn creadas, pero de igual forma, configurando el servicio de una forma adecuada, es
posible que no las necesitemos.
OpenSMTPD no obliga a establecer una sesin TLS en el momento que un cliente intenta enviar un
correo, otros MTA si lo hacen, por ejemplo postfix, tiene una variable que obliga a que una sesin
SMTP se vuelva TLS, desafortunadamente esto an no existe en este nuevo demonio. Esto lo debes
de tener en cuenta porque si del lado del cliente no se le configura el uso del canal cifrado, los
correos viajarn a travs de OpenSMTPD en texto plano, aunque hayamos configurado el protocolo
TLS. Cul es la solucin?, mi recomendacin es hacer el montaje usando SSL en el puerto 465, de
esta forma el cliente se ver obligado a establecer una sesin cifrada.
Roundcube usa las libreras de php internas para establecer la comunicacin con el servidor SMTP,
desafortunadamente an no tiene cdigo (o no lo encontr despus de mucho buscarlo) que permita
establecer una sesin TLS son el servidor SMTP, esto es un problema, ya que todos los correos
enviados desde el webmail sern enviados en texto plano, aunque el servidor soporte TLS.
Solucin?. Afortunadamente roundcube SI soporta una comunicacin por SSL, entonces podemos
hacer que nuestro servidor de correo soporte SSL y de esa forma garantizar el cifrado en todos los
correos que se envan desde el webmail.
Si bien el ejercicio muestra como usar protocolos seguros (SSL, TLS), es importante tener en
cuenta que al tener todo el montaje en un mismo servidor (smtpd, webmail, imapd, pop3d, etc), es
posible que el uso de cifrado ocasione una perdida en el rendimiento del servidor, si pensamos
mejor la situacin encontramos que si todos los servicios estn en la misma estacin fsica, el uso de
canales cifrados es algo que se puede obviar, pues si alguien quiere capturar el trfico debe ingresar
hasta el equipo servidor que tiene instaladas las aplicaciones y esto nos estara indicando que el
servidor fue comprometido. Sin embargo el acceso por web SI debe estar protegido con SSL, pues
un usuario remoto puede conectarse desde cualquier lugar usando una red pblica vulnerable.
La sintaxis usada en el archivo de configuracin de OpenSMTPD promete mucho, como pudieron
leer, en menos de 5 lneas tenemos un servidor completamente funcional con reglas de filtrado al
________________________________________________________________________________
6.Conclusiones
42/44
7. Enlaces recomendados
Gua de como configurar OpenSMTPD en OpenBSD 4.5, tiene ejemplos buenos de como crear
dominios virtuales y como conectarse con los servidores de correo de google.
https://calomel.org/OpenSMTPD.html
Pgina del manual de OpenSMTPD (requerida).
http://www.openbsd.org/cgi-bin/man.cgi?
query=smtpd&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html
Pgina del manual de smtpd.conf (el archivo de configuracin).
http://www.openbsd.org/cgi-bin/man.cgi?
query=smtpd.conf&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=htm
l
Pgina del manual de starttls (te ayuda a entender un poco mas).
http://www.openbsd.org/cgi-bin/man.cgi?
query=starttls&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html
Lista de distribucin y documentos de OpenBSD Colombia (el repositorio de la comunidad).
http://groups.google.com/group/OpenBSD-Colombia?hl=es&pli=1
________________________________________________________________________________
7.Enlaces recomendados
43/44
________________________________________________________________________________
7.Enlaces recomendados
44/44