RSS

  • YouTube
  • LinkedIn
  • Google

Servidor de Email –; Parte 3 ; Palomar

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.

Comentarios (3)

  1. [;] Servidor de Email –; Parte 3 ; Palomar [;]

  2. [;] y correo electrónico utilizando las herramientas más comunes para el entorno OpenSource en Linux. Usé Postfix, Palomar, Método Postfixadmin, Roundcube y [;]

Contesta

Su dirección de correo electrónico no se publicará. Los campos obligatorios están marcados *

Este sitio utiliza Akismet para reducir el spam. Aprender cómo se procesaron los datos de comentario.