Configuración Servidor de correo
Requerimientos
- El servidor debe contar con una ip estática
- Servidor dns configurado y activo
Configuración dns para el servicio de correo:
$ sudo nano /etc/bind/misitio.com.db
Editar el archivo de configuración de bind9 en la zona directa y agregar la siguiente linea:
email IN A 192.168.0.2
1w IN MX 10 email.misitio.com.
Para esta practica se configurar un servidor de correo con el dominio @misitio.com, no olvide remplazar por el dominio que se desea configurar.
Instalación de aplicaciones
sudo apt-get install dovecot-imapd dovecot-pop3d postfix -y
Durante la instalación se les solicitara el tipo de configuración y se debe seleccionar internet site
En el campo que se les muestra escribir el nombre del sitio, que en este caso es misitio.com
Generar los certificados necesarios para el correo
$ openssl genrsa -des3 -out misitio.key 2048
$ chmod 600 misitio.key
$ openssl req -new -key misitio.key -out misitio.csr
$ openssl x509 -req -days 365 -in misitio.csr -signkey misitio.key -out misitio.crt
$ openssl rsa -in misitio.key -out misitio.key.nopass
La estructura de los archivos quedaría de la siguiente manera
.
|-- misitio.crt
|-- misitio.csr
|-- misitio.key
`-- misitio.key.nopass
Copiarlos al directorio correcto
$ mv misitio.key.nopass misitio.key
$ openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 365
$ chmod 600 misitio.key
$ chmod 600 cakey.pem
$ sudo mv misitio.key /etc/ssl/private/
$ sudo mv misitio.crt /etc/ssl/certs/
$ sudo mv cakey.pem /etc/ssl/private/
$ sudo mv cacert.pem /etc/ssl/certs/
Editar la configuración de postfix, antes realizando un respaldo del archivo
$ sudo cp /etc/postfix/main.cf{,.bak}
$ sudo nano /etc/postfix/main.cf
Asegurarse que la linea que contenga misitio.com
, sea remplazada por el nombre de su dominio.
Los tres puntos significan que pueden encontrar mas lineas de configuración mas arriba del archivo.
La configuración quedaría con las siguientes lineas modificadas y unas agregadas manualmente.
...
myhostame = misitio.com
mydomain = misitio.com
myorigin = $mydomain
mailbox_command =
home_mailbox = Maildir/
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
EJEMPLO: Esto es solo una parte de este archivo de configuración:
↑
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = misitio.com
mydomain = misitio.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = $myhostname, misitio.com, a.lan, localhost.lan, 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
mailbox_command =
home_mailbox = Maildir/
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
Salir y guardar el archivo Desde la consola ejecutar los siguientes comandos, remplazando las claves con las que se generaron manualmente antes.
sudo postconf -e "smtpd_tls_auth_only = no"
sudo postconf -e "smtpd_use_tls = yes"
sudo postconf -e "smtp_use_tls = yes"
sudo postconf -e "smtp_tls_note_starttls_offer = yes"
sudo postconf -e "smtpd_tls_key_file = /etc/ssl/private/misitio.key"
sudo postconf -e "smtpd_tls_cert_file = /etc/ssl/certs/misitio.crt"
sudo postconf -e "smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem"
sudo postconf -e "smtpd_tls_loglevel = 1"
sudo postconf -e "smtpd_tls_received_header = yes"
sudo postconf -e "smtpd_tls_session_cache_timeout = 3600s"
Si desea revisar los cambios, abra manualmente el archivo
sudo nano /etc/postfix/main.cf
Reiniciar la aplicación postfix
sudo /etc/init.d/postfix restart
Los parámetros que acepta postfix son
sudo /etc/init.d/postfix [start,stop,restart,status]
Editar los archivos de dovecot, no sin antes realizar un respaldo:
$ sudo cp /etc/dovecot/conf.d/10-ssl.conf{,.bak}
$ sudo nano /etc/dovecot/conf.d/10-ssl.conf
Las siguientes lineas son las que se modificaran:
ssl = yes
ssl_cert = </etc/ssl/certs/misitio.crt
ssl_key = </etc/ssl/private/misitio.key
Guardar y salir Configurar la forma de iniciar sesión:
$ sudo cp /etc/dovecot/conf.d/10-auth.conf{,.bak}
$ sudo nano /etc/dovecot/conf.d/10-auth.conf
Se desactiva el inicio de sesión en texto plano, des-comentado la siguiente linea.
disable_plaintext_auth = yes
Editar el archivo de configuración de dovecot, para usuarios y grupo de usuarios permitidos.
$ sudo cp /etc/dovecot/conf.d/10-master.conf{,.bak}
$ sudo nano /etc/dovecot/conf.d/10-master.conf
Buscar las siguientes lineas, des-comentar las especificadas y agregar otras, quedando de la siguiente manera
↑
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
↓
$ sudo cp /etc/dovecot/conf.d/10-mail.conf{,.bak}
$ sudo nano /etc/dovecot/conf.d/10-mail.conf
Des-comentar la siguiente linea:
mail_location = maildir:~/Maildir
Comentar la siguiente linea:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Buscar la siguiente linea mail_privileged_group
y modificarlo de la siguiente manera:
mail_privileged_group = mail
Esta es una parte del archivo como debería quedar:
↑
# See doc/wiki/Variables.txt for full list. Some examples:
#
mail_location = maildir:~/Maildir
# mail_location = mbox:~/mail:INBOX=/var/mail/%u
# mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
#
# <doc/wiki/MailLocation.txt>
#
# mail_location = mbox:~/mail:INBOX=/var/mail/%u
↓
↑
mail_privileged_group = mail
↓
Puede agilizar la busqueda con la combinacion de teclas
ctrl+w
Reiniciar la aplicación de dovecot
sudo /etc/init.d/dovecot restart
Los parametros que acepta dovecot son los siguientes:
sudo /etc/init.d/dovecot [start,stop,restart,status]
Se recomienda agregar nuevos usuarios para probar la conexión:
Rellenar todo lo que se le solicite al agregar al nuevo usuario
sudo adduser correo1
sudo adduser correo2