Esta es la tercera parte del proceso de crear el servidor de correo en un CentOS 8. Si llegaste aquí por accidente, Primero debe leer las publicaciones anteriores
Parte 1 –; Instalación de paquetes
Parte 2 –; Configuración de MariaDB
Dovecot es un MDA (Agente de entrega de correo) es un agente que lleva mensajes de Postfix a cuadros de mensaje virtual. En esta sección configuramos la instalación de Dovecot para forzar a los usuarios utilizar SSL cuando se conecten, de esta manera nunca enviar contraseñas en texto modo.
Siempre me gusta mantener los archivos originales de una definición de si termino perderse durante la configuración. Puedo decir que este paso no es necesario si haces este tutorial completamente, Sin embargo, Si ya tiene una configuración anterior y sólo está utilizando para mejorar le sugiero fuertemente que haga copias de los archivos.
En nuestro caso, los archivos de configuración será en /etc/dovecot/CONF.d/. Entonces podemos hacer la copia con el comando:
$ sudo cp -R /etc/dovecot/conf.d /etc/dovecot/conf.d.orig
Crear usuario
Palomar almacenará los mensajes (y todo su contenido) en un directorio que defina en el archivo de configuración y que puede hacer eso que deben ejecutar un usuario con los permisos adecuados. Los siguientes comandos creará este usuario y grupo. Voy a utilizar un estándar común para los nombres que hacen que sea fácil de buscar soluciones a problemas en internet.
$ sudo groupadd -g 5000 vmail
$ sudo adduser -g 5000 -G mail -u 5000 -d /var/mail vmail
Editar archivos de configuración
Es el primer archivo que configure la autenticación. Cómo usamos una tabla de base de datos de MariaDB para almacenar usuarios y contraseñas que señalar que en dos archivos. El primero establece el tipo de autenticación y en segundo lugar como el Palomar hará la validación de autenticación.
Editar el archivo /archivo etc/dovecot/CONF.d/10-auth y descomentamos (o añadir) las líneas de abajo:
$ sudo vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-system.conf.ext
!include auth-sql.conf.ext
Después de la, Editar el archivo /etc/dovecot/CONF.d/auth-sql.conf.ext para que tenga las siguientes líneas:
$ sudo vim /etc/dovecot/conf.d/auth-sql.conf.ext
# /etc/dovecot/conf.d/auth-sql.conf.ext
passdb {
driver = sql
args = /etc/dovecot/dovecot-mysql.conf.ext
}
userdb {
driver = sql
args = /etc/dovecot/dovecot-mysql.conf.ext
}
También debemos establecer la conexión de datos con el MariaDB a través del archivo /etc/dovecot/dovecot-SQL.conf.ext. Este archivo no se crea en la instalación por lo que creamos.
$ sudo vim /etc/dovecot/dovecot-mysql.conf.ext
driver = mysql
connect = host=localhost dbname=mypostfixdb user=mypostfixdbuser password=mypostfixdbuser_password
default_pass_scheme = SHA512-CRYPT
# following should all be on one line.
password_query = SELECT username as user, password, concat('/home/vmail/', maildir) as userdb_home, concat('maildir:/home/vmail/', maildir) as userdb_mail, 'vmail' as userdb_uid, 'mail' as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
# following should all be on one line
user_query = SELECT concat('maildir:/home/vmail/', maildir) as mail, CONCAT('*:messages=10000:bytes=', quota) as quota_rule FROM mailbox WHERE username = '%u' AND active = '1'
NOTA: Utilice los mismos datos que se utiliza en la paso para configurar la base de datos en MariaDB
Vamos a hacer varios cambios en el archivo de configuración principal del Palomar que es la 10-archivo maestro de. El número delante del archivo indica el orden de carga (prioridad). Puede usuario cualquier editor de su elección. Me gusta Vim porque estoy tan acostumbrado a los comandos, pero nada impide para utilizar nano por ejemplo.
$ sudo vim /etc/dovecot/conf.d/10-master.conf
Para mejorar la seguridad del servidor y reducir los ataques se desactivará acceso sin encriptar. Para hacerlo, necesitamos asignar el valor 0 para el atributo Puerto en servicios Imap y POP3. Solamente IMAPS y POP3s estará disponible. Usted tendrá que usar una tecla SSL que crearemos más adelante adelante.
service imap-login {
inet_listener imap {
port = 0
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
También cambiar los siguientes ajustes:
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
#############################
service auth {
unix_listener auth-userdb {
mode = 0600
user = vmail
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
# Auth process is run as this user.
user = dovecot
}
service auth-worker {
user = vmail
}
Certificado SSL
Para que podamos utilizar los servicios de cifrado necesarios tanto en la autenticación de usuarios al acceder a su cuenta como para garantizar que el postfixadmin y de la RoundCube Al estar bajo conexiones seguras debemos crear las claves SSL válidas. En este punto vamos a hacer la configuración mediante la creación de una clave de firma personal (uno mismo-firmado) que se crea durante la instalación del Palomar. Esta clave no se puede utilizar para validar la conexión del navegador seguro. Más tarde vamos a cambiar esta configuración para utilizar una clave SSL obtenida por Certbot (Permite encriptar) junto con la configuración de Nginx y DNS.
Si usted está siguiendo los pasos de este tutorial, no necesita ningún cambio en el archivo /etc/dovecot/conf.d/10-ssl.conf
que debe contener las siguientes líneas
ssl = required
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
Si los archivos no existen o recrearlas como alternativa (se debe hacer si cambió el nombre de host, por ejemplo) hacer lo siguiente:
Editar el archivo /etc/PKI/dovecot/dovecot-OpenSSL.cnf y cambiar las entradas de acuerdo con la información que tienes.
[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
[ req_dn ]
# country (2 letter code)
C=BR
# State or Province Name (full name)
ST=SAO PAULO
# Locality Name (eg. city)
L=SAO PAULO
# Organization (eg. company)
O=MRE Development
# Organizational Unit Name (eg. section)
OU=IMAP Server
# Common Name (*.example.com is also possible)
CN=mail.meudominio.com.br
# E-mail contact
emailAddress=postmaster@meudominio.com.br
[ cert_type ]
nsCertType = server
Después de haber cambiado el archivo, Si los archivos ya existen /etc/PKI/dovecot/certs/dovecot.PEM y /etc/PKI/dovecot/Private/dovecot.PEM, eliminarlos y luego ejecutar el script mkcert.sh.
$ sudo rm -f /etc/pki/dovecot/certs/dovecot.pem /etc/pki/dovecot/private/dovecot.pem
$ sudo /usr/libexec/dovecot/mkcert.sh
La salida del script debería ser algo como esto:
Generating a 1024 bit RSA private key
............++++++
........++++++
writing new private key to '/etc/pki/dovecot/private/dovecot.pem'
-----
subject= /C=BR/ST=SAO PAULO/L=SAO PAULO/O=MRE Development/OU=IMAP server/CN=mail.meudominio.com.br/emailAddress=postmaster@meudominio.com.br
SHA1 Fingerprint=FA:86:97:8F:52:06:04:71:BA:DC:07:BA:33:6A:9B:3F:8A:EE:ED:C5
Otra configuración en el archivo/etc/dovecot/conf.d/10-ssl.conf
relacionados con el cifrado es el atributo opcional ssl_dh
. Añadir o descomentar la línea:
ssl_dh = </etc/dovecot/dh.pem
y ejecute el siguiente comando para generar el archivo .PEM:
Atención: Ejecutar el siguiente comando generalmente lleva mucho tiempo, a veces incluso cerca 1 hora. También puede utilizar un comando para generar el mismo archivo más rápido.
$ openssl dhparam -out /etc/dovecot/dh.pem
Si desea utilizar el modo rápido por su cuenta, el comando es simplemente el siguiente.
$ dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /etc/dovecot/dh.pem
Archivo de registro
Por por defecto Palomar utilizará el mecanismo de registro syslog el CentOS, habitualmente envía la información al archivo /var/log/messages. Como más adelante te mostraré cómo bloquear varios intentos de ataques y uno de ellos incluye el uso del script Fail2ban, que hace análisis de registros, es mejor definir un archivo único para que no tengamos que supervisar un archivo que cambia constantemente.
Para definir un archivo de registro único, Vamos a abrir la configuración de registro de Palomar /archivo etc/dovecot/CONF.d/10-logging y cambiar o añadir las siguientes líneas.
log_path = /var/log/dovecot.log
auth_verbose = yes
auth_verbose_passwords = sha1:8
Guarde el archivo y reinicie el servicio de
$ sudo systemctl restart dovecot
Asegúrese de que el file/var/log/dovecot.log ha sido creado y contiene información que indica que el servicio está funcionando normalmente.
$ sudo tail /var/log/dovecot.log
Apr 24 22:45:58 master: Info: Dovecot v2.2.36 (1f10bfa63) starting up for imap, pop3, lmtp (core dumps disabled)
Reglas del firewall
Si estás siguiendo este tutorial desde el principio en una instalación predeterminada, Es posible que estén cerrados los puertos de conexión con el mundo exterior. Los siguientes comandos pretenden liberar el imaps de puertas (993), POP3s (995) antes de que se puede conectar a un cliente de correo como Outlook o Gmail. Incluso si están abiertos, más adelante en otra publicación, Voy a mostrarte una lista de reglas del cortafuegos para mejorar la seguridad.
Primero asegúrese que el servicio firewalld se está ejecutando. Si es parado, probablemente abren todas las puertas que tienen un servicio de escucha.
$ sudo systemctl status firewalld
Compruebe la línea de estado que puede ser como Activo (funcionamiento) o como inactivo (muertos). Si eres como inactivo, No es necesario seguir. Si eres activo, Nos listará los puertos están abiertos desde el exterior.
$ sudo firewall-cmd --list-services
ssh dhcpv6-client
En el ejemplo anterior, sólo de cliente dhcpv6 y ssh. Entonces añadimos los puertos necesarios para recibir y enviar correo electrónico desde el exterior.
$ sudo firewall-cmd --add-service=pop3s --permanent
success
$ sudo firewall-cmd --add-service=imaps --permanent
success
$ sudo firewall-cmd --reload
success
$ sudo firewall-cmd --list-services
ssh dhcpv6-client imaps pop3s
Como se puede ver en el ejemplo, Añadir servicios imaps y pop3s que sean escuchados por el servicio de Palomar. Más tarde también añadimos los puertos smtp y presentación que será escuchado por el Postfix (Master). Tenga en cuenta que no abro los puertos imap y pop3 seguros porque quiero forzar el uso de SSL/TLS.
Para asegurarse de que las puertas están abiertas incluso puede tratar de hacer telnet a los puertos 993 y 995 otro sistema en la misma red y verifique que el archivo /var/log/dovecot.log Muestra los intentos de. Si usted no tiene condiciones en el momento de tomar la prueba de esta manera comprobar la salida del comando a continuación?
$ sudo netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 2669/sshd
tcp 0 0 0.0.0.0:imaps 0.0.0.0:* LISTEN 5946/dovecot
tcp 0 0 0.0.0.0:pop3s 0.0.0.0:* LISTEN 5946/dovecot
tcp 0 0 mail.meudominio.com:ssh gateway:65257 ESTABLISHED 4631/sshd: myuser
Y eso es todo por ahora. Entonces Configuramos Postfix 3.
[…;] Servidor de Email –; Parte 3 –; Palomar […;]
[…;] Parte 3 –; Configuración de dovecot […;]
[…;] y correo electrónico utilizando las herramientas más comunes para el entorno OpenSource en Linux. Usé Postfix, Palomar, Método Postfixadmin, Roundcube y […;]