El siguiente artículo tiene como objetivo instalar y configurar un servidor de correo POP3/IMAP/SMTP simple en su VPS Debian usando Postfix, Dovecot y SASL.
¿Qué es Postfix? Es un reemplazo directo para el viejo y maduro Sendmail. Postfix también intenta ser muy rápido, fácil de administrar y seguro.
¿Qué es Dovecot? Es un servidor IMAP y POP3 de código abierto para sistemas tipo *NIX, escrito principalmente con la seguridad en mente.
¿Qué es SASL? SASL, la capa de seguridad y autenticación simple, es un mecanismo genérico para que los protocolos realicen la autenticación.
1.) Requisitos previos
– Es posible que desee comprobar si su nombre de host/nombre de dominio es un FQDN válido (nombre de dominio completo) y si tiene un registro MX DNS válido.
# dig +short MX mydomain.com 10 mydomain.com.
ok, el nombre de host 'mydomain.com' tiene un registro MX y:
# dig +short A $(dig +short MX mydomain.com | head -1 | cut -d' ' -f2) 12.34.56.78
el conjunto de registros MX se resuelve en la IP de nuestro servidor Debian (12.34.56.78)
2.) Actualice el sistema e instale los paquetes necesarios
– Antes de continuar, debemos asegurarnos de tener un sistema completamente actualizado.
# apt-get update # apt-get upgrade # apt-get dist-upgrade
2.a) Instalar sufijo
# apt-get install postfix
(cuando se le solicite, elija "Sitio de Internet" y luego establezca "midominio.com" como nombre de correo del sistema).
2.b) Instalar palomar
# apt-get install dovecot-common dovecot-imapd dovecot-pop3d
2.c) Instalar sasl para la autenticación de usuarios
# apt-get install libsasl2-2 libsasl2-modules sasl2-bin
(habilite el demonio sasl configurando START=yes en /etc/default/saslauthd . también puede reducir la cantidad de subprocesos configurando THREADS=3 por ejemplo)
o si te sientes valiente:
# sed -i -e 's/START=no/START=yes/' -e 's/THREADS=5/THREADS=3/' /etc/default/saslauthd
configurar /etc/postfix/sasl/smtpd.conf
# echo -e "pwcheck_method: saslauthd\nmech_list: plain login cram-md5 digest-md5" > /etc/postfix/sasl/smtpd.conf
reiniciar SASL
# /etc/init.d/saslauthd restart
3.) Crear un usuario del sistema Para manejar los correos entrantes y solo tiene acceso a los buzones.
– crear grupo utilizado para buzones virtuales
# groupadd vmail -g 2222
– crear usuario utilizado para buzones virtuales
# useradd vmail -r -g 2222 -u 2222 -d /var/vmail -m -c "mail user"
4.) Preparar el certificado SSL para usar el transporte SSL
– copie/mueva su ssl a algún directorio, por ejemplo /etc/sample-ssl/
# mkdir /etc/sample-ssl # rsync -Waq /path/to/certs/ /etc/sample-ssl/
5.) Configuración de sufijos
– antes de hacer cualquier otra cosa, asegúrese de tener una copia de seguridad del archivo de configuración original
# cp /etc/postfix/main.cf{,.orig}
5.a) configurar el archivo de configuración principal de postfix (/etc/postfix/main.cf)
– asegúrese de cambiar 'mydomain.com' con su nombre de dominio y también configure las rutas ssl apropiadamente
# vim /etc/postfix/main.cf
myhostname=mydomain.com mydomain=mydomain.com myorigin=$mydomain mydestination = localhost mynetworks = 127.0.0.0/8 inet_interfaces = all mailbox_size_limit = 0 recipient_delimiter = + debug_peer_level=2 smtpd_banner=$myhostname ESMTP $mail_name biff=no relayhost= show_user_unknown_table_name=no append_dot_mydomain = no alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases virtual_mailbox_base=/var/vmail virtual_mailbox_domains=hash:/etc/postfix/vmail_domains virtual_mailbox_maps=hash:/etc/postfix/vmail_mailbox virtual_alias_maps=hash:/etc/postfix/vmail_aliases virtual_minimum_uid=100 virtual_uid_maps=static:2222 virtual_gid_maps=static:2222 virtual_transport=dovecot smtpd_tls_cert_file=/etc/sample-ssl/ssl.crt smtpd_tls_key_file=/etc/sample-ssl/ssl.key smtpd_tls_CAfile=/etc/ssl/certs/ca-certificates.crt smtp_tls_CAfile=/etc/ssl/certs/ca-certificates.crt smtp_use_tls=yes smtpd_use_tls=yes smtpd_tls_loglevel=1 smtpd_tls_received_header=yes tls_random_source=dev:/dev/urandom smtp_tls_note_starttls_offer=yes smtpd_tls_session_cache_timeout=3600s smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache queue_directory=/var/spool/postfix smtpd_sasl_type=dovecot smtpd_sasl_path=private/auth smtpd_sasl_auth_enable=yes broken_sasl_auth_clients=yes smtpd_sasl_security_options=noanonymous smtpd_sasl_tls_security_options=$smtpd_sasl_security_options smtpd_sasl_local_domain=$myhostname smtpd_sasl_application_name=smtpd smtpd_helo_required=yes smtpd_helo_restrictions=reject_invalid_helo_hostname smtpd_recipient_restrictions=reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
5.b) crear /etc/postfix/vmail_domains que contenga los dominios para los cuales postfix aceptará correos electrónicos
– el formato es de 2 columnas. dominio a la izquierda, estado a la derecha. si no hay nada en el lado derecho, el dominio está deshabilitado.
# vim /etc/postfix/vmail_domains
mydomain.com OK my-otherdomain.com OK
5.c) crear /etc/postfix/vmail_mailbox que contenga los buzones aceptados
# vim /etc/postfix/vmail_mailbox
[email protected] mydomain.com/info [email protected] mydomain.com/admin [email protected] my-otherdomain.com/webmaster
5.d) crear /etc/postfix/vmail_aliases que contenga los alias virtuales
# vim /etc/postfix/vmail_aliases
[email protected] [email protected] [email protected] [email protected] [email protected] [email protected]
hash de los archivos de configuración
# postmap /etc/postfix/vmail_domains # postmap /etc/postfix/vmail_mailbox # postmap /etc/postfix/vmail_aliases
6.) Configuración de palomar
– antes de hacer cualquier otra cosa, asegúrese de tener una copia de seguridad del archivo de configuración original
# cp /etc/dovecot/dovecot.conf{,.orig}
– crear el archivo de configuración principal de palomar
# vim /etc/dovecot/dovecot.conf
protocols = imap imaps pop3 pop3s log_timestamp = "%Y-%m-%d %H:%M:%S " first_valid_uid=2222 last_valid_uid=2222 first_valid_gid=2222 last_valid_gid=2222 mail_privileged_group = vmail disable_plaintext_auth=yes auth_executable = /usr/lib/dovecot/dovecot-auth auth_verbose = yes mail_location = maildir:/var/vmail/%d/%n/Maildir ssl_cert_file = /etc/sample-ssl/sample-chained.crt ssl_key_file = /etc/sample-ssl/sample.key protocol lda { auth_socket_path = /var/run/dovecot/auth-master postmaster_address = [email protected] mail_plugins = sieve log_path = } auth default { mechanisms = plain login passdb passwd-file { args = scheme=SHA1 /etc/dovecot/users.conf } userdb static { #args = /etc/dovecot/users.conf args = uid=2222 gid=2222 home=/var/vmail/%d/%n allow_all_users=yes } socket listen { master { path = /var/run/dovecot/auth-master mode = 0600 user = vmail group = vmail } client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } }
asegúrese de establecer la configuración para que coincida con sus rutas y necesidades
– crear nuestro archivo de usuario:
# touch /etc/dovecot/users.conf
– a continuación, use el siguiente comando para generar un hash de contraseña para un usuario en particular:
# dovecotpw -s SHA1
(la contraseña generada se agrega a users.conf sin la parte {SHA1}, por ejemplo :)
# cat /etc/dovecot/users.conf [email protected]:7mh/MbZGZf7pc2pV6To7WuHJY8E=
7.) Configurar permisos y completar la instalación
# chgrp vmail /etc/dovecot/dovecot.conf # chmod g+r /etc/dovecot/dovecot.conf # chown root:root /etc/dovecot/users.conf # chmod 600 /etc/dovecot/users.conf
– entregar los correos entrantes a dovecot
# vim /etc/postfix/master.cf
(añadir lo siguiente)
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}
– mientras lo hace, es posible que también desee habilitar el puerto de envío descomentando la siguiente línea:
submission inet n - - - - smtpd
– recargar los servicios
# /etc/init.d/dovecot restart # /etc/init.d/postfix restart
Por supuesto, no tiene que hacer nada de esto si utiliza uno de nuestros servicios de alojamiento VPS optimizado para Debian, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que lo instalen por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD. Si te gustó esta publicación, compártela con tus amigos en las redes sociales usando los botones de la izquierda o simplemente deja una respuesta a continuación. Gracias.