Configurar su propio servidor de correo en Linux VPS es una tarea importante para cualquier administrador de sistemas Linux. Postfix es una de las soluciones de servidor de correo más utilizadas y fáciles de usar disponibles. Es un agente de transferencia de correo (MTA) gratuito, de código abierto y potente que se puede utilizar para enviar y recibir correo electrónico. De forma predeterminada, Postfix es el software MTA predeterminado en todas las distribuciones de Linux.
Dovecot es un servidor de correo electrónico IMAP y POP3 de código abierto que puede actuar como un servidor de almacenamiento de correo. Se utiliza para entregar y recuperar correos electrónicos hacia y desde los buzones de correo locales.
Roundcube es un cliente de correo electrónico IMAP basado en la web que puede leer correos electrónicos almacenados por Dovecot en buzones virtuales. Proporciona todas las funciones que espera de un cliente de correo electrónico, incluida la compatibilidad con MIME, múltiples identidades de remitente, revisión ortográfica, manipulación de carpetas y muchas más.
En este tutorial, le mostraremos cómo configurar un servidor de correo con todas las funciones con Postfix, Dovecot y Roundcube en Ubuntu 18.04 VPS.
Requisitos
- Un Ubuntu 18.04 VPS nuevo en Atlantic.Net Cloud Platform.
- Un nombre de dominio válido dirigido a su dirección IP de VPS. En este tutorial, usaremos email.example.com.
- Registros A y MX para su servidor.
Nota :Puede consultar la Guía de DNS de Atlantic para administrar los registros de DNS.
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:configurar el nombre de host
A continuación, deberá configurar el nombre de host de su servidor. En este caso, estableceremos el nombre de host en mail.example.com, como se muestra a continuación:
hostnamectl set-hostname email.example.com
A continuación, abra el archivo /etc/hosts y vincule la dirección IP de su servidor con el nombre de host:
nano /etc/hosts
Agregue la siguiente línea:
your-server-ip email.example.com email
Guarde y cierre el archivo. Luego, ejecute el siguiente comando para aplicar los cambios de configuración:
hostname -f
Paso 3:instale Apache, MariaDB y PHP
Roundcube requiere que Apache, MariaDB y PHP estén instalados en su servidor. Puede instalarlos con el siguiente comando:
apt-get install apache2 mariadb-server php libapache2-mod-php php-mysql -y
Después de instalar todos los paquetes necesarios, deberá habilitar el módulo de reescritura de Apache para que funcione Roundcube. Puede habilitarlo con el siguiente comando:
a2enmod rewrite
A continuación, vuelva a cargar el servicio de Apache para aplicar los cambios:
systemctl restart apache2
Paso 4:instale el certificado SSL de Let's Encrypt
A continuación, deberá instalar el certificado SSL gratuito de Let's Encrypt en su servidor para configurar su servidor de correo con TLS.
Primero, instale el cliente Certbot en su servidor con el siguiente comando:
add-apt-repository ppa:certbot/certbot apt-get update -y apt-get install python-certbot-apache -y
A continuación, descargue el certificado SSL gratuito de Let's Encrypt para su dominio email.example.com con el siguiente comando:
certbot certonly --apache -d email.example.com
Este comando descargará el certificado en el directorio /etc/letsencrypt/live/email.example.com/.
Paso 5:instalar y configurar Postfix
A continuación, comencemos a instalar un servidor de correo Postfix con el siguiente comando:
apt-get install postfix
Será redirigido a la siguiente pantalla:
Seleccione Sitio de Internet y presiona TAB y Introducir continuar. Debería ver la siguiente pantalla:
Proporcione su nombre de dominio y presione Tab y Introducir para finalizar la instalación.
El archivo de configuración predeterminado de Postfix se encuentra en /etc/postfix/main.cf. Antes de configurar Postfix, se recomienda hacer una copia de seguridad de este archivo:
mv /etc/postfix/main.cf /etc/postfix/main.cf.bak
A continuación, cree un nuevo archivo de configuración de Postfix como se muestra a continuación:
nano /etc/postfix/main.cf
Agregue las siguientes líneas:
# GENERAL SETTINGS smtpd_banner = $myhostname ESMTP $mail_name biff = no append_dot_mydomain = no readme_directory = no # SMTP SETTINGS smtp_use_tls=yes smtp_tls_security_level = may smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # SMTPD SETTINGS smtpd_use_tls=yes smtpd_tls_security_level = may smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_tls_cert_file=/etc/letsencrypt/live/email.example.com/fullchain.pem smtpd_tls_key_file=/etc/letsencrypt/live/email.example.com/privkey.pem smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination # SASL SETTINGS smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth # VIRTUAL MAIL BOX AND LMTP SETTINGS virtual_transport = lmtp:unix:private/dovecot-lmtp virtual_mailbox_domains = /etc/postfix/virtual_mailbox_domains # OTHER SETTINGS myhostname = email.example.com myorigin = /etc/mailname mydestination = localhost.$mydomain, localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases
Guarde y cierre el archivo.
A continuación, deberá definir su dominio en el archivo /etc/postfix/virtual_mailbox_domains:
nano /etc/postfix/virtual_mailbox_domains
Agregue la siguiente línea:
example.com #domain
Guarde y cierre el archivo, luego conviértalo a un formato que Postfix pueda entender con el siguiente comando:
postmap /etc/postfix/virtual_mailbox_domains
A continuación, edite el archivo de configuración principal de Postfix:
nano /etc/postfix/master.cf
Descomente la siguiente línea:
submission inet n - y - - smtpd
Guarde y cierre el archivo cuando haya terminado.
Paso 6:instalar y configurar Dovecot
A continuación, deberá instalar Dovecot con otros paquetes necesarios. Puede instalarlos usando el siguiente comando:
apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd -y
A continuación, deberá definir la ubicación de correo de Dovecot para comunicarse con Postfix y los dominios de buzón virtual. Puede definirlo editando el archivo /etc/dovecot/conf.d/10-mail.conf:
nano /etc/dovecot/conf.d/10-mail.conf
Busque la siguiente línea:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Y reemplácelo con lo siguiente:
mail_location = maildir:/var/mail/vhosts/%d/%n
Guarde y cierre el archivo.
A continuación, cree el directorio vhosts de Dovecot y el subdirectorio para su nombre de dominio.
mkdir /var/mail/vhosts mkdir /var/mail/vhosts/example.com
A continuación, cree un usuario de vmail y un grupo, y asigne la propiedad de los directorios al usuario de vmail.
groupadd -g 5000 vmail useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user" chown -R vmail:vmail /var/mail/vhosts/
A continuación, edite el archivo de configuración principal de Dovecot y habilite los servicios seguros IMAP y POP3:
nano /etc/dovecot/conf.d/10-master.conf
Encuentra las siguientes líneas:
inet_listener imaps { #port = 993 #ssl = yes }
Y reemplácelos con los siguientes:
inet_listener imaps { port = 993 ssl = yes }
En el mismo archivo, busque las siguientes líneas:
inet_listener pop3s { #port = 995 #ssl = yes }
Y reemplácelos con los siguientes:
inet_listener pop3s { port = 995 ssl = yes }
A continuación, busque las siguientes líneas:
service lmtp { unix_listener lmtp { #mode = 0666 }
Y reemplácelos con los siguientes:
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix }
A continuación, busque las siguientes líneas:
service auth { # Postfix smtp-auth #unix_listener /var/spool/postfix/private/auth { # mode = 0666 #} }
Y reemplácelos con los siguientes:
service auth { ... #Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user=postfix group=postfix }
Guarde y cierre el archivo cuando haya terminado.
A continuación, configure el proceso de autenticación de Dovecot editando el archivo /etc/dovecot/conf.d/10-auth.conf:
nano /etc/dovecot/conf.d/10-auth.conf
Descomente la siguiente línea:
disable_plaintext_auth = yes
En el mismo archivo, busque la siguiente línea:
auth_mechanisms = plain
Y reemplácelo con lo siguiente:
auth_mechanisms = plain login
Luego, comente la siguiente línea para deshabilitar el comportamiento predeterminado de Dovecot para autenticar a los usuarios.
#!include auth-system.conf.ext
A continuación, descomente la siguiente línea para habilitar la configuración del archivo de contraseña.
!include auth-passwdfile.conf.ext
Guarde y cierre el archivo cuando haya terminado.
A continuación, edite el archivo /etc/dovecot/conf.d/auth-passwdfile.conf.ext :
nano /etc/dovecot/conf.d/auth-passwdfile.conf.ext
Cambie el archivo como se muestra a continuación:
passdb { driver = passwd-file args = scheme=PLAIN username_format=%u /etc/dovecot/dovecot-users } userdb { driver = static args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n }
Guarde y cierre el archivo.
A continuación, cree un archivo de contraseña para el usuario al que desea asignar una cuenta de correo electrónico:
nano /etc/dovecot/dovecot-users
Agregue las siguientes líneas:
[email protected]:[email protected]
Guarde y cierre el archivo.
Paso 7:configurar Dovecot para usar Let's Encrypt SSL
A continuación, deberá configurar Dovecot para que funcione con SSL. Puede hacerlo editando el archivo /etc/dovecot/conf.d/10-ssl.conf:
nano /etc/dovecot/conf.d/10-ssl.conf
Busque la siguiente línea:
ssl = yes
Reemplácelo con lo siguiente:
ssl = required
A continuación, busque las siguientes líneas:
#ssl_cert = </etc/dovecot/dovecot.pem #ssl_key = </etc/dovecot/private/dovecot.pem
Y reemplácelos con los siguientes:
ssl_cert = </etc/letsencrypt/live/email.example.com/fullchain.pem ssl_key = </etc/letsencrypt/live/email.example.com/privkey.pem
Guarde y cierre el archivo cuando haya terminado, luego reinicie los servicios de Postfix y Dovecot para aplicar los cambios de configuración:
systemctl restart postfix systemctl restart dovecot
Paso 8:instalar y configurar Roundcube
apt-get install roundcube
Durante la instalación, se le pedirá que configure la base de datos. Elige la opción que desees y pulsa Intro para finalizar la instalación.
A continuación, deberá configurar el host virtual de Apache para Roundcube. Puede hacerlo editando el archivo /etc/apache2/sites-enabled/000-default.conf:
nano /etc/apache2/sites-enabled/000-default.conf
Cambie el archivo como se muestra a continuación:
<VirtualHost *:80> Alias /mail /usr/share/roundcube ServerAdmin [email protected] DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Guarde y cierre el archivo, luego reinicie el servicio web Apache para aplicar los cambios:
systemctl restart apache2
Paso 9:acceda al correo web de Roundcube
Ahora, abra su navegador web y escriba la URL hhttp://email.example.com/mail. Será redirigido a la página de inicio de sesión de Roundcube:
Proporcione su nombre de usuario y contraseña que ha definido en el archivo de contraseñas de Dovecot y haga clic en Iniciar sesión botón. Debería ver el panel predeterminado de Roundcube en la siguiente página:
Conclusión
¡Felicidades! Ha instalado y configurado con éxito un servidor de correo con Postfix, Dovecot y Roundcube. Ahora puede enviar y recibir correos electrónicos desde el panel de control de correo web de Roundcube. ¿Listo para comenzar con Postfix, Dovecot y Roundcube? ¡Pruébelo hoy en una cuenta de alojamiento VPS de Atlantic.Net!
Obtenga más información sobre nuestros servicios de alojamiento VPS y servidores privados virtuales.