Está en la página 1de 8

Servidor de Correo con Postfix y Dovecot en Ubuntu 16.

04 LTS
Mail Server with Postfix and Dovecot on Ubuntu 16.04 LTS
Fernández, Pedro; Velázquez, Cristhian
Facultad de Ciencias y Tecnologías
Universidad Nacional del Caaguazú
Coronel Oviedo – Paraguay

Resumen
Para configurar un servidor de correo en Ubuntu existe una gran variedad de alternativas, la opción más interesante
es la utilización de Postfix y Dovecot, debido a sus grandes ventajas como la rapidez, facilidad de manejo y seguridad,
además de ser software libre y de código abierto. Estos poseen una amplia compatibilidad con diferentes métodos de
autenticación de usuarios, como la utilización de usuarios del sistema, base de datos en MySQL, archivos de
contraseñas, entre otros. En este proyecto, se verá como configurar Postfix de tal manera que este se encargue de los
correos salientes y le ceda a Dovecot la manipulación de la bandeja de entrada, la autenticación de usuarios y la
recepción de los correos electrónicos, todo esto a través de usuarios virtuales, que se especificarán en la configuración
de Postfix, configurando además el soporte para la autenticación basada en SSL/TLS y STARTTLS.
Palabras Claves: Servidor de correo, autenticación, archivos de contraseñas, SSL/TLS, STARTTLS.

Abstract
To configure a mail server on Ubuntu there is a great variety of alternatives, the most interesting option is the use of
Postfix and Dovecot, due to its great advantages such as speed, ease of use and security, besides being free and open
source software. These have a wide compatibility with different methods of user authentication, such as the use of
system users, MySQL database, and password files, among others. In this project, you will see how to configure Postfix
so that it takes care of outgoing emails, and give Dovecot the handling of the inbox, the authentication of users and the
reception of emails, all this through virtual users, which will be specified in the Postfix configuration, also configuring
support for authentication based on SSL/TLS and STARTTLS.
Keywords: Mail Server, authentication, password files, SSL/TLS, STARTTLS.
compatible con las implementaciones de los servidores
UW-IMAP y Courier IMAP [2].
1. Introducción
El presente artículo pretende explicar de manera
Para la instalación de un servidor de correo detallada los pasos requeridos para la instalación de un
electrónico en Ubuntu 16.04, se requiere de ciertos servidor de correo utilizando Postfix como agente de
servicios que permitan el transporte de correo a través transporte y Dovecot como servicio de Buzón de Correo,
de SMTP (Simple Mail Transfer Protocol), POP3 (Post además ofreciendo soporte para métodos de
Office Protocol) e IMAP (Internet Message Access autenticación seguros.
Protocol), además, para proporcionar seguridad se
requiere la activación de otras utilidades, como el
soporte para SSL/TLS y STARTTLS. 2. Pasos iniciales
Una de las herramientas que permitirán esto es Antes de instalar el software requerido para
Postfix. Originalmente conocido por los nombres configurar el servidor de correo, es necesario establecer
VMailer e IBM Secure Mailer, Postfix es un agente de una IP estática al equipo que cumplirá el papel de
transporte de correo electrónico (MTA o Mail Transport servidor, para ello se debe de modificar el contenido del
Agent), creado con la principal intención de ser una archivo /etc/network/interfaces estableciendo los
alternativa más rápida, fácil de administrar y segura que parámetros como lo indica la Imagen 1.
SendMail [1]. El servicio que ofrece Postfix es solo para
el envío por lo que se requerirá de otro software que se La interfaz de red configurada en este ejemplo es
encargue de recibir los correos, como Dovecot. enps0s3 que se puede obtener observando la información
de la conexión, o ejecutando en la terminal el comando
Por su parte, Dovecot es un servidor de POP3 e
ifconfig, es importante establecer en el parámetro dns-
IMAP de código abierto que funciona en Linux y
nameservers la dirección IP del servidor y en dns-search
sistemas basados en UNIX® y diseñado con la
el nombre del dominio. Luego de esto se debe reiniciar el
seguridad como principal objetivo. Dovecot puede
equipo para aplicar los cambios.
utilizar tanto el formato mbox como maildir y es
Imagen 1: Contenido del archivo /etc/network/interfaces

Instalación del servidor DNS (Domain


Name System) cd /etc/bind
sudo cp db.local db.fcyt
Instalar un servidor DNS en una red permite sudo gedit db.fcyt
reemplazar direcciones IP de máquinas individuales por
un nombre. Como resultado, incluso es posible asociar El contenido del archivo de zonas debe ser similar al
varios nombres a la misma máquina para indicar los de la Imagen 3, se debe de cambiar localhost por el
diferentes servicios disponibles [3]. Así, www.fcyt.lan nombre de domino y 127.0.0.1 por la dirección IP del
podría ser utilizado para un servidor web, y mail.fcyt.lan servidor.
para un servidor de correo.
Para finalizar se debe reiniciar el servicio de bind9
El paquete bind9 será instalado para este fin, para ejecutando lo siguiente:
ello se hace uso de los siguientes comandos:
sudo /etc/init.d/bind9 restart
sudo apt-get update
sudo apt-get install bind9 Con esto, si todo sale bien, cuando escribamos en un
navegador www.fcyt.lan o al hacer ping, el servidor DNS

Imagen 2: Archivo /etc/bind/named.conf.local

traducirá el nombre a la dirección IP de la máquina. Para


Configuración del servidor DNS probar que el servidor funciona de acuerdo a nuestro
objetivo se debe ejecutar:
Después de la instalación, se debe de modificar el host fcyt.lan
archivo /etc/bind/named.conf.local, en este archivo se
declaran las zonas asociadas al servidor de dominio en
Cuyo resultado debe contener una línea similar a
cuestión. Para ello, se utiliza el siguiente comando:
“fcyt.lan mail is handled by 0 fcyt.lan.”, esto implica que
sudo gedit /etc/bind/named.conf.local el servidor MX (Mail Exchange) funciona
En este archivo se define el dominio y el archivo de adecuadamente.
zonas, el cual se deberá crear a partir de un ejemplo de la
siguiente forma:
Imagen 3: Archivo de zonas configurado con el dominio fcyt.lan

Durante la instalación se solicitara la configuración


básica, se debe elegir la opción Sitio de Internet como lo
3. Instalación y configuración de Postfix indica la Imagen 4, luego se deberá ingresar el nombre del
dominio.
El primer paso a realizar es instalar Postfix. Postfix
es el agente que se encargará de transmitir todos los El siguiente paso es acceder al archivo de
correos salientes, en cambio, todos los correos entrantes, configuración de Postfix ejecutando lo siguiente:
los entregará a Dovecot para su almacenamiento y sudo gedit /etc/postfix/main.cf

Aquí se establecen los parámetros para configurar la


autenticación basada en SASL (Simple Authentication
and Security Layer) de Postfix. Para ello, al final del
archivo se deben agregar las siguientes líneas:
local_transport = virtual
virtual_transport = dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_tls_auth_only = yes

Imagen 4: Configuración de Postfix


Además, como se trabajará con usuarios virtuales, se
posterior acceso por parte de los clientes. Para su deberá indicar el archivo que contendrá los mapas de los
instalación se debe ejecutar en la terminal: buzones virtuales, así como los destinatarios locales, por
sudo apt-get install postfix lo que se deben agregar además las siguientes líneas:
virtual_mailbox_maps =
hash:/etc/postfix/vmaps
local_recipient_maps =
$virtual_mailbox_maps
virtual_mailbox_base = /var/mail/vhosts
virtual_minimum_uid = 1000
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

Donde /etc/postfix/vmaps es el archivo de buzones


virtuales, y /var/mail/vhosts es la carpeta que contendrá
los archivos de cada usuario, estos se crearán más
adelante.

Imagen 5: Configuración del dominio en Postfix


Habilitar SMTPS y MAS (Mail Se deberá buscar la línea que contenga
Submission Agent) mail_location y reemplazar su valor como lo indica la
Imagen 7.
Además de SMTP que opera en el puerto 25, se
Luego de esto, se deberá crear las carpetas para
necesita habilitar más servicios para obtener un servidor
de correo seguro. Por este motivo, se debe modificar el contener los buzones, esto se puede hacer desde la
terminal, ejecutando:
archivo /etc/postfix/master.cf, ejecutando en la terminal:
sudo mkdir /var/mail/vhosts/
sudo gedit /etc/postfix/master.cf
sudo mkdir /var/mail/vhosts/fcyt.lan

En este archivo, se debe buscar las líneas submission


y smtps para des-comentarlas (Eliminar el # al principio Creación del usuario para leer los correos
de la línea), como lo indica la Imagen 6. Al haber creado el directorio del buzón de entrada,
se procederá a crear un usuario del sistema que sea
propietario de este directorio, para ello, ejecutar en la
terminal lo siguiente:
sudo groupadd -g 5000 vmail
sudo useradd -r -g vmail -u 5000 vmail -d
/var/mail/vhosts -c "Usuario de correos"

Donde vmail es el nombre del usuario y el grupo al


cual pertenece.

Habilitar los servicios IMAPS y POP3S


Dentro del archivo /etc/dovecot/conf.d/10-
Imagen 6: Archivo /etc/postfix/master.cf
master.conf indicamos a Dovecot que inicie los servicios
4. Instalación y configuración de Dovecot de IMAPS y POP3S en los puertos seguros.
Para IMAPS:
El siguiente paso para poner el servidor de correo en
marcha, es instalar Dovecot, que será el servidor de service imap-login {
IMAP/POP3. Ejecutamos en terminal lo siguiente: inet_listener imap {
#port = 143
sudo apt-get install dovecot-core dovecot- }
imapd dovecot-pop3d inet_listener imaps {
port = 993
ssl = yes
Configuración de la bandeja de entrada }
}
En este paso, le indicamos a Dovecot la ubicación
de la bandeja de entrada, que en este ejemplo será Para POP3S:
/var/mail/vhosts, dentro de este directorio se creará un service pop3-login {
subdirectorio para cada dominio, que contendrán las inet_listener pop3 {
carpetas individuales de cada usuario. #port = 110
}
sudo gedit /etc/dovecot/conf.d/10-
inet_listener pop3s {
mail.conf
port = 995
ssl = yes
}
}

Imagen 7: Configuración del buzón de entrada en el archivo 10-mail.conf


Imagen 8: Configuración del tipo de autenticación

Configuración del socket de autenticación SASL: userdb {


# Postfix smtp-auth driver = static
unix_listener args = uid=vmail gid=vmail
/var/spool/postfix/private/auth { home=/var/mail/vhosts/%d/%n
mode = 0666 }
user=postfix
Donde en passdb le indicamos a Dovecot donde
group=postfix
}
encontrar el archivo de contraseñas en el momento de
autenticar. El archivo es /etc/dovecot/dovecot-users.

Configuración de la autenticación El parámetro username_format=%u indica que se


deberá utilizar la dirección de correo para iniciar sesión.
Lo siguiente es modificar el archivo
/etc/dovecot/conf.d/10-auth.conf para que el cifrado La sección userdb le indica a Dovecot donde leer y
TLS/SSL sea siempre utilizado durante la autenticación escribir los correos de cada usuario.
de un usuario. Para ello modificamos el siguiente archivo:
Configurar las cuentas de usuarios
sudo gedit /etc/dovecot/conf.d/10-
auth.conf
En el paso anterior se especificó el archivo de base
de datos de contraseñas, para que un usuario pueda iniciar
En el mismo se deberá buscar las claves sesión, se deberá crear este archivo:
disable_plaintext_auth y auth_mechanisms para des
sudo gedit /etc/dovecot/dovecot-users
comentarlas y modificarlas como sigue:
disable_plaintext_auth = yes
Las siguientes líneas son un ejemplo de dos usuarios
auth_mechanisms = plain login y sus contraseñas, la primera esta almacenada como texto
reconocible, mientras que la segunda está cifrada
En este mismo archivo, configuramos la base de utilizando md5:
datos de contraseñas. Por defecto, Dovecot está
user1@fcyt.lan:{plain}12345
configurado para autenticar utilizando los usuarios del
user2@fcyt.lan:{MD5-
sistema, en este caso le indicaremos que utilice un archivo
CRYPT}$1$0IwySQEJ$2lwr6TOt6hn.8Au1olDiN1
separado que contenga los usuarios con sus respectivas
contraseñas [4]. Las contraseñas cifradas se pueden obtener
utilizando el comando doveadm:
Para ello en las últimas líneas buscar y comentar la
línea !include auth-system.conf.ext, luego des-comentar #Para listar los métodos de cifrado
la línea que contenga !include auth-passwdfile.conf.ext disponibles ejecutar:
(Imagen 8). doveadm pw -l
#Genera el hash a partir del método
indicado
doveadm pw -s MD5-CRYPT
Luego de esto se debe editar el archivo auth-
passwdfile.conf.ext. Luego de agregar un usuario en el archivo dovecot-
users, es necesario indicar a Postfix la ubicación del
sudo gedit /etc/dovecot/conf.d/auth-
passwdfile.conf.ext buzón de entrada de este usuario.
sudo gedit /etc/postfix/vmaps
El contenido debe ser:
passdb { Para los usuarios anteriores el archivo debería
driver = passwd-file contener lo siguiente:
args = scheme=PLAIN username_format=%u
user1@fcyt.lan fcyt.lan/user1/
/etc/dovecot/dovecot-users
user2@fcyt.lan fcyt.lan/user2/
}
Imagen 9: Contenido del archivo 10-ssl.conf

Para finalizar se actualiza la base de datos Envío de correo electrónico


ejecutando los siguiente: A continuación se envía un correo de prueba desde
sudo postmap /etc/postfix/vmaps Thunderbird a la otra cuenta creada.
Se confirma la recepción en el buzón de entrada de
Habilitar SSL en Dovecot la otra cuenta (Imagen 12).
Se debe abrir el archivo /etc/dovecot/conf.d/10-
ssl.conf y des-comentar la línea que contenga ssl y
establecer el valor en required.
sudo gedit /etc/dovecot/conf.d/10-ssl.conf

Además se debe indicar la ubicación de los


certificados ssl como lo indica la Imagen 9.

Reiniciar para aplicar los cambios


Luego de configurar Postfix y Dovecot se deben
reiniciar los servicios, para esto se debe ejecutar los Imagen 11: Redacción del correo de prueba
siguientes comandos:
sudo /etc/init.d/postfix restart
sudo /etc/init.d/dovecot restart

5. Configuración de la aplicación de
cliente de correo Thunderbird

Imagen 12: Correo recibido de user1@fcyt.lan

6. Instalación de un servidor web de


correo
Imagen 10: Configuración de la cuenta del usuario 'user1' A continuación opcionalmente se puede instalar un
servidor web de correo, para ello se utilizará
Abrir la aplicación Thunderbird desde la lista de
SquirrelMail. SquirrelMail es una aplicación web mail
aplicaciones de Ubuntu, elegir la opción saltarse y usar
desarrollada en PHP. Puede ser instalado en la mayoría de
una cuenta de correo existente, ingresar los datos y
servidores web siempre y cuando soporten PHP y el
continuar, en el momento de búsqueda de configuración,
servidor web tenga acceso a un servidor IMAP y a otro
se deberá elegir la configuración manual ya que será
SMTP [5].
necesario modificar el servidor.
Primeramente se deberá instalar Apache2 para que
Luego de esto se vuelve a probar y guardar los
funcione en el servidor.
cambios. Para la añadir otra cuenta a Thunderbird se
ingresa al menú Editar>Configuraciones de la sudo apt-get install apache2
cuenta>Opciones sobre la cuenta>Añadir cuenta de sudo apt-get install squirrelmail
correo y se sigue los mismos pasos que el anterior.
Imagen 13: Configuración de SquirrelMail

Imagen 14: Configuración del dominio

cd /var/www/html
La configuración de SquirrelMail es bastante
sudo ln -s /usr/share/squirrelmail webmail
sencilla y se abre ejecutando en terminal lo siguiente:
Se reinicia el servicio de apache para que la carpeta
sudo squirrelmail-configure
pueda ser vista desde un navegador.
Se ingresa D para establecer una configuración
sudo /etc/init.d/apache2 restart
predeterminada para el servidor IMAP, a continuación, se
ingresa 2 para acceder a la configuración del servidor y Por último se comprueba en el navegador
luego 1 para configurar el dominio (Imagen 14). ingresando a www.fcyt.lan/webmail.
Después se escribe Q y se guarda los cambios. Para iniciar sesión se escribe el nombre de usuario
Luego de esto, es necesario crear un vínculo de la carpeta completo y se ingresa la contraseña que se estableció
de SquirrelMail al directorio /var/www/html. anteriormente.

Imagen 15: Página de inicio de sesión de SquirrelMail


Imagen 16: Buzón de entrada de 'user2@fcyt.lan' desde SquirrelMail

7. Conclusiones [5] A. J. Pérez Díaz , «Ajpd Soft,» 02 Enero 2003. [En


Para configurar un servidor de correo electrónico en línea]. Available:
Ubuntu se necesitan ciertos programas que en conjunto http://www.ajpdsoft.com/modules.php?name=News
realizan el servicio. En el proyecto se utilizaron los &file=article&sid=506#instalarsquirrelmail.
siguientes: Postfix, el que cumplió la función de enviar
correos, y Dovecot, que se encargó de recibir y
guardarlos. Dovecot posee además una utilidad que
permite el cifrado de las contraseñas con distintos
métodos. Por último, como agregado se utilizó
SquirrelMail, que sirvió de plataforma web para el
servidor.
Así con la configuración adecuada, cada uno
cumplió una función necesaria para el servidor de correo.

8. Referencias Bibliográficas

[1] J. Barrios Dueñas, «Alcance Libre,» 22 Julio 2016.


[En línea]. Available:
http://www.alcancelibre.org/staticpages/index.php/c
omo-postfix-tls-y-auth.

[2] Dovecot, "Secure IMAP Server," [Online].


Available: http://www.dovecot.org. [Accessed 3 12
2016].

[3] T. Debian Wiki, "Bind9," 30 Agosto 2016. [Online].


Available: https://wiki.debian.org/Bind9.

[4] M. King, «How to setup a mail server with Postfix


and Dovecot on Ubuntu,» 09 Marzo 2015. [En
línea]. Available: https://websetnet.com/how-to-
setup-a-mail-server-with-postfix-and-dovecot-on-
ubuntu/.

También podría gustarte