SlideShare a Scribd company logo
1 of 26
Download to read offline
Servidor de Correo Debian (11) Bullseye con los paquetes: Postfix,
Dovecot, y cuentas en base de datos MariaDB para su uso con TLS.
En este documento guía, se detalla los pasos necesarios para configurar un servidor GNU/Linux
Debian versión 11.2 (Bullseye) con usuarios almacenados en una base de datos MariaDB. (también
debe ser funcional si aplica los mismos pasos de configuración si utiliza MySQL versión 5.5, que fue
la última versión gratuita del gestor de base de datos, ya luego quienes se esforzaron por mantener
el gestor como software de código abierto lo bautizaron como MariaDB, esto como dato para
conocer a los recién llegados o que desconocenesta información.
Listado de paquetes a instalar (hasta la fechade elaboración de esta guía):
Debian versión: 11.2 de 64 bits
Postfix versión: 3.5.6
Dovecot versión: 2.3.13
MariaDB Servidor: 10.5.12
Correos ejemplo: usuario@midominio.com, email1@midominio.com
(No olvidar leer con atención y con calma hasta el final).
Pasos a seguir:
1. Para proceder la instalación de los paquetes, iniciamos sesión conel usuario creado en nuestro
sistema Debian, hay que asegurarse de tener privilegios administrativos ya que la edición de
archivos de configuración y demás tareas como la instalación de los paquetes requieren
privilegios elevados esto mediante el uso del comando “sudo” como ejemplo:
#sudo comando opciones
2. Instalamos los paquetes necesarios para este tipo de configuración ingresando el siguiente
comando:
#sudo apt install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d
dovecot-lmtpd dovecot-mysql mariadb-server -y
Figura 1: Instalación de paquetes.
3. Cuando pregunte para seleccionar una configuración de Postfix, seleccionamos “Sitio de
Internet” como se muestra en la imagen; más adelante se verificará el contenido de los
archivos de configuración.
Figura 2: Preconfiguración de Postfix
4. A continuación, solicita se ingrese el “Nombre del sistema de correo”, en él ingresamos el
dominio que usaremos como ejemplo: “midominio.com”.
Figura 3: Ingresando el nombre del Sistema de correo en preconfiguración de Postfix.
Luego de esto la instalación continúa con normalidad. Hasta este momento se instaló los
paquetes para soportar las 3 aplicaciones: Postfix, Dovecot y MariaDB. A continuación, se
explicará la configuración individual de cada aplicación (servicio) para que funcionen
conjuntamente.
MariaDB
Como tarea inicial, ejecutamos por primera vez el gestor de base de datos, esto mediante el
comando:
#sudo mysql
Una vez dentro de la interfaz de MariaDB, ingresamos el siguiente comando para asignarle al
usuario root una contraseña:
#MariaDB[(none)]> alter user root@localhost identified by 'rootPassword';
Figura 4: Asignación de una contraseña para la cuenta root de MariaDB
La contraseña indicadaentre comillas simple, será la contraseña asignada para el usuario root.
Ahora para salir del gestor de base de datos lo hacemos mediante el comando:
#MariaDB[(none)]> exit
Primero crearemos una base de datos dedicada para el servidor de correo, con un respectivo
usuario para ingresar losregistros correspondientes. Estatendrás 3tablas: Unapara dominios, otra
condirecciones de correo y claves encriptadas y la última conseudónimos de correo (alias).
Creaciónde la base de datos
Aquí se indica cómo crear la base de datos y las tablas necesarias en MariaDB.
1. Iniciamos sesión en MariaDB como usuario root desde una terminal ingresando lo siguiente:
#mysql –u root –p
2. Nos solicita la contraseña, tecleamos la clave ingresada para el usuario administrador
(root) previamente asignada.
3. Creamos la base de datos conla siguiente instrucción:
#MariaDB[(none)]> CREATE DATABASE postfixbd;
Query OK, 1 row affected (0.03 sec)
4. Seleccionamosla base de datos creada anteriormente:
#MariaDB[(none)]> use postfixbd;
Database changed
5. Se asigna privilegios de la base de datos creada a un usuario específico:
#MariaDB[postfixbd]> GRANT ALL PRIVILEGES ON postfixbd.* to
‘postfixuser’@‘127.0.0.1’ IDENTIFIED BY ‘postfix’;
#MariaDB[postfixbd]> GRANT ALL PRIVILEGES ON postfixbd.* to
‘postfixuser’@‘localhost’ IDENTIFIED BY ‘postfix’;
Figura 5: Asignando permisos al usuario postfixusera la base de datos.
6. Aplicamoslos permisos asignados conla siguiente orden:
#MariaDB[postfixbd]> FLUSH PRIVILEGES;
7. Cerramos sesión en MariaDB para trabajar como el usuario recientemente creado.
#MariaDB[postfixbd]> exit
8. Iniciamos sesión comoel usuario postfixuser, comose ve en la imagen.
#mysql -u postfixuser -p
Figura 6: Ingreso a MariaDB como usuario postfixuser, usuario para gestionar la base de datos.
9. Seleccionamos la base de datos postfixbd. Luego procedemos a crear las tablas que
necesitaremos para nuestro servidor.
#MariaDB[postfixbd]> use postfixbd;
10. Creamos la tabla para los dominios ingresando lo siguiente en la línea de comandos MariaDB:
CREATE TABLE `virtual_domains` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
11. Creamos la tabla para las direcciones de correo y sus contraseñas ingresando lo siguiente en la
línea de comandos MariaDB:
CREATE TABLE `virtual_users` (
`id` int(11) NOT NULL auto_increment,
`domain_id` int(11) NOT NULL,
`password` varchar(106) NOT NULL,
`email` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE
CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
12. Creamos la tabla para los alias de correo ingresando lo siguiente en la línea de comandos
MariaDB:
CREATE TABLE `virtual_aliases` (
`id` int(11) NOT NULL auto_increment,
`domain_id` int(11) NOT NULL,
`source` varchar(100) NOT NULL,
`destination` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE
CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Hasta este puntoya tenemos creadas las tablasen la base dedatos para el servidor de correo, ahora
procedemos a agregar datos a las tablas.
Agregando datos a la base de datos.
1. Agregamos los dominios a la tabla virtual_domains.Sepuede agregar tantos dominios como
queramos en la seccióndevalores en los comandos quese muestra a continuación,enel ejemplo
se añade solo el dominio primario (midominio.com) el nombre de equipo (hostname) el FQDN
(bullseyevm.midominio.comylocalhost.midominio.com,acadaunode estos registros
se le asignará un valor únicode id.
#MariaDB[postfixbd]> INSERT INTO
`postfixbd`.`virtual_domains` (`id` ,`name`)
VALUES
('1', 'midominio.com'),
('2', 'bullseyevm.midominio.com'),
('3', 'bullseyevm'),
('4', 'localhost.midominio.com');
2. Agregamos los dominios a la tabla virtual_domains. Se puede agregar tantos dominios como
queramos en la secciónde valores en loscomandos que se muestra a continuación,en el ejemplo se
añade solo el dominio primario (tesisgad.com) el nombre de equipo (hostname) el FQDN
(bullseyevm.midomonio.com)ylocalhost.midominio.com, a cada uno de estos registros se le
asignará un valor únicode id.
#MariaDB[postfixbd]> INSERT INTO
`postfixbd`.`virtual_users` (`id`, `domain_id`,
`password` , `email`)
VALUES
('1', '1', ENCRYPT('firstpassword', CONCAT('$6$',
SUBSTRING(SHA(RAND()), -16))), 'email1@midominio.com'),
('2', '1', ENCRYPT('secondpassword', CONCAT('$6$',
SUBSTRING(SHA(RAND()), -16))), 'email2@midominio.com');
3. Agregamos los alias de correo para las cuentas necesarias
INSERT INTO `postfixbd`.`virtual_aliases` (`id`,
`domain_id`, `source`, `destination`)
VALUES
('1', '1', 'soporte@midominio.com', 'email1@midominio.com'),
('2', '1', 'postmaster@midominio.com', 'email1@midominio.com');
Consultas de prueba a la base de datos.
Para constatar que los datos se ingresaron correctamente vamos a ingresar las siguientes consultas
básicas:
#MariaDB[postfixbd]> select * from virtual_domains;
Figura 7: Consulta de todos los registros almacenados en la tabla virtual_domains.
#MariaDB[postfixbd]> select * from virtual_users;
Figura 8: Consulta de todos los registros almacenados en la tabla virtual_users.
#MariaDB[postfixbd]> select * from virtual_aliases;
Figura 9: Consulta de todos los registros almacenados en la tabla virtual_aliases.
Configuración de Postfix para usuarios virtuales MariaDB
1. Hacemos una copia de respaldo del archivo /etc/main.cf
#sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.orig
2. Abrimos el archivo/etc/postfix/main.cfparasuedición,en esta guía utilizo nano
como editor, pueden usar cualquier otro editor a suelección como: vi o vim.
#sudo nano /etc/postfix/main.cf
3. SASL (Simple Authentication and Security Layer). En español Capa Simple de
Autenticación y Seguridad, es el conjunto estandarizado para autenticación que
Postfix utiliza. La autenticación es necesaria para que solo los usuarios autorizados
puedan usar tu servidor para enviar correos. En este caso le decimos a Postfix que
utilice la autenticacióndeDovecot.
smtpd_sasl_type = dovecot
4. A continuación se indica la ruta para el socket de autenticación se indica una ruta
relativa o la ruta completa /var/spool/postfix/private/auth
smtpd_sasl_path = private/auth
5. La siguiente línea le dice a Postfix que deje que las personas envíen correos usando
este servidor si ellos son autenticados satisfactoriamente. Si esta se fija como
desactivada, Postfix dejaría a las personas enviar correo solo si ellos ya estaban en
el servidor. (por ejemplo: si ellos ya iniciaron sesión conSSH).
smtpd_sasl_auth_enable = yes
6. La próxima línea le dice a Postfix que tipos de usuarios se les permitirá enviar correo a otras
direcciones usando el servidor. (Específicamente esto aplica a mensajes que tienen el
componente RCPT TO). Los dos primeros parámetros agregados le dicen a Postfix que permita
enviar correo para usuarios autenticados conSASLyusuarios conectadosdesde una red listada
en el parámetro mynetworks (En nuestro caso la interfaz de loopback y la red a la que
pertenece el servidor). EL parámetro final le dice a Postfix que rechace enviar correos a menos
que el destino sea para alguien en este servidor.
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
7. En la siguiente línea reemplazamos el valor asignado a mydestinationporlocalhost.Esto nos
permite usar los dominios virtuales listados en nuestra tabla MariaDB. Es importante que no
haya superposiciones entre la tabla MariaDB y la entrada en mydestination. Mantener la
entrada localhost en mydestination nos deja permanecer las cosas simples para el envío de
correo dentro del servidor usando localhost, lo que puede ser de ayuda si siempre se tiene
problemas conlos dominios virtuales.
mydestination = localhost
8. Agregamos las siguientes líneas correspondientes a dominios, usuarios y alias virtuales:
En cada uno de estos archivos se indica los detalles de cómo conectarse a MariaDB.
9. Procedemos a la creación de los 3 archivos antes mencionados; ajustamos losparámetros de
acuerdo a la base de datos que creamos anteriormente. El contenido para el archivo de los
dominios virtuales: /etc/postfix/mysql-virtual-mailbox-domains.cfserá:
10. Reiniciamos Postfix con el siguiente comando
#sudo systemctl restart postfix
user = postfixuser
password = postfix
hosts = 127.0.0.1
dbname = postfixbd
query = SELECT 1 FROM virtual_domains WHERE name= '%s'
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
11. Ingresamos el siguiente comando para asegurarnos que Postfix puede encontrar tu primer
dominio. El comando debe responder con1 si tuvo éxito, y si no se obtuvo nada es porque se
tiene un inconveniente.
#sudo postmap -q midominio.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
Figura 10: Consulta de midominio.com mediante postmap.
12. Creamos el archivo de conexión para las direcciones de correo /etc/postfix/mysql-
virtual-mailbox-maps.cfconel siguiente contenido:
13. Reiniciamos Postfix una vez más.
#sudo systemctl restart postfix
14. Ahora verificamos si puede encontrar la primera dirección de correo en nuestra tabla
MariaDB. El resultado correcto es un 1 como salida.
#sudo postmap -q email1@midominio.com mysql:/etc/postfix/mysql-virtual-mailbox-
maps.cf
Figura 11: Consulta de mailbox-maps mediante uso de postmap.
15. Creamos el archivo correspondiente a los alias virtuales, al igual que en los pasos anteriores
la información debe corresponder a la utilizada para su base de datos MariaDB. El archivo
/etc/postfix/mysql-virtual-alias-maps.cf,tendrá esta información:
16. Reiniciamos Postfix
#sudo systemctl restart postfix
17. Ahora probamos si puede encontrar nuestros alias ingresando el siguiente comando:
#sudo postmap -q soporte@midominio.com mysql:/etc/postfix/mysql-virtual-alias-
maps.cf
user = postfixuser
password = postfix
hosts = 127.0.0.1
dbname = postfixbd
query = SELECT 1 FROM virtual_users WHERE email = '%s'
user = postfixuser
password = postfix
hosts = 127.0.0.1
dbname = postfixbd
query = SELECT destination FROM virtual_aliases WHERE source = '%s'
Figura 12: Consulta de alias almacenados en virtual-alias-maps mediante uso de postmap.
18. Acontinuaciónagregamos las siguientes líneas para indicarlas rutas a certificados digitales (SSL)
y así añadir seguridad mediante conexión TLS.
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
19. Las siguientes líneas continuaciónobligan al servicio el usodel protocoloTLS.
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
20. Revisamos el nombre del equipo, modificando el valor del siguiente apartado (o variable, deben
ajustarlo de acuerdo a la configuración que estén usando).
myhostname = bullseyevm.midominio.com
21. Revisamos el nombre del dominio que vamos a emplear en nuestro ejemplo (ovariable, deben
ajustarlo de acuerdo a la configuración que estén usando).
mydomain = midominio.com
22. En la sección de mis redes, agregamos la dirección de red correspondiente a nuestra red local
(en mi caso voy hacer las pruebas desde otro equipo, no desde el mismo servidor Debian).
mynetworks = 127.0.0.0/8, 192.168.134.0/24
23. Agregamos la siguiente línea para indicarle a Postfix que la bandeja de entrada la cree usando
la estructura Maildir; así luego los emails se almacenaran en la carpeta: “Recibidos”.
home_mailbox = Maildir/
24. Agregamos la siguiente línea para indicarle a Postfix que utilice el agente lmtp para realizar los
envíos de los correos y luego los pueda almacenar en la carpeta: “Enviados”.
virtual_transport = lmtp:unix:private/dovecot-lmtp
25. Abrimos el archivo /etc/postfix/master.cf verificando que el contenido del archivo quede
de la siguiente manera, comentando la línea que inicia con smtp, y descomentada la línea
correspondiente a submission
Figura 13: Fragmentode archivo /etc/postfix/master.cf activando submission.
(No olvidar reiniciar el servicio Postfix con el comando correspondiente)
Modificación de algunos archivos del sistema
• Abrimos el archivo /etc/hostnamepara añadir el nombre completo del equipo su FQDN para
esto ejecutamos el comando:
#sudo nano /etc/hostname
Figura 14: Contenido de archivo /etc/hostname.
Donde bulleyevm corresponde al nombre del equipo o este nodo servidor y midominio.com
(luego del punto), corresponde al dominio de nuestra organización (empresa o compañía), con
esto claro el contenido completo del archivo se define como: “servidor.midominio.com”. Por
ejemplo, si se trátase de un servidor web (www), el contenido sería: “www.midominio.com”
• Siguiente archivo (opcional), se trata del archivo hosts, lo editamos tecleando el siguiente
comando:
#sudo nano /etc/hosts
En este casoel contenido del archivo es el que se muestra en la Figura 14
Figura 15: Contenido de archivo: /etc/hosts en este casode Debian 11
Detalles: La línea más relevante y básica es la línea dos que contiene: la dirección IP (primera
columna), el FQDN (segunda columna) y nombre del host o nodo (tercera columna), como se
observa ya tiene la información del servidor comotal. Las líneas 3, 4 y 5, pueden ser descomentadas,
pero les son útiles solo si van a realizar las pruebas desde el mismo servidor, es decir instalar un
cliente de correo comoMozilla ThunderBird dentro de Debian, para esta guía vamos a probar desde
un cliente Windows entonces las líneas quedan comentadas. En el caso de modificar el archivo
hosts en Windows la ruta a seguir es: C:WindowsSystem32driversetchosts Figura 15.
Figura 16: Contenido del archivo hosts en Windows.
Nota: Es necesario agregar estás líneas en ese archivo del sistema puesto que no contamos con un
servidor DNS en la red local el que nos resuelva el direccionamiento correspondiente al servidor
de correo; con esto el cliente Windows (Thunderbird) podrá encontrar el servidor en la red local,
no se olviden de realizar todos los ajustes necesarios de acuerdo a sus configuraciones.
• Archivo /etc/mailname,vamos a editar este archivo cuyo contenido es idéntico al del archivo
/etc/hostname, es necesario editarlo para que sea reconocido en las variables del sistema
dentro de Debian.
Figura 17: Contenido del archive /etc/mailname.
Dovecotcon soporte para MySQL
Se modificará un total de 7 archivos de configuración para Dovecot.Esta es la lista:
/etc/dovecot/dovecot.conf: Archivo principal de configuración.
/etc/dovecot/conf.d/10-mail.conf: Negocia el sistema de archivos de servidor.
/etc/dovecot/conf.d/10-auth.conf: Definecomo semaneja la autenticaciónde usuarios.
/etc/dovecot/conf.d/auth-sql.conf.ext: Nuevo archivo de autenticación para el
tipo de autenticación SQL.
/etc/dovecot/dovecot-sql.conf.ext: Unarchivo de autenticaciónincluido conlos
parámetros de conexión MYSQL.
/etc/dovecot/conf.d/10-master.conf: En este archivo son configurados los sockets.
/etc/dovecot/conf.d/10-ssl.conf: Aquí se especifica los parámetros relacionados a
SSL.
Pasos para configurar Dovecotpara soporte Mysql
1. Hacemos una copia de respaldo los archivos antes mencionados:
2. Procedemos a editar el archivo principal de configuración de Dovecot
/etc/dovecot/dovecot.conf y verificamos que este incluyendo a los otros archivos de
configuración. Esta opcióndebería estar habilitada por defecto:
!include conf.d/*.conf
3. Agregamos la siguiente línea a /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
Es para especificar los protocolosa utilizar conDovecot.
4. Abrimos el archivo /etc/dovecot/conf.d/10-mail.conf encontramos la variable
mail_locationyla fijamos conel siguiente valor:
mail_location = maildir:/home/vmail/%d/%n/
#sudo cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
#sudo cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.orig
#sudo cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig
#sudo cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.orig
#sudo cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.orig
#sudo cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.orig
#sudo cp /etc/dovecot/conf.d/auth-sql.conf.ext /etc/dovecot/conf.d/auth-
sql.conf.ext.orig
Esto le dice a Dovecot donde realizar las búsquedas de correos. En este caso los correos serán
almacenados en /home/vmail/midominio.com/usuario/ dónde midominio.com y usuario son
variables que son obtenidas desde la dirección de correo electrónico que interviene enla conexión.
5. Guardamos los cambios en el archivo /etc/dovecot/conf.d/10-mail.conf
6. Creamos el usuariovmail convalor 5000 para usuario idy grupo id, lohacemos conlossiguientes
comandos. Este usuario será el encargado de leer el correo desde el servidor.
#sudo groupadd -g 5000 vmail
#sudo useradd -g vmail -u 5000 vmail -d /home/vmail
7. Creamos una carpeta conel nombre del dominio a utilizar.
#sudo mkdir -p /home/vmail/midominio.com
8. Verificamos el propietario actual para carpeta /home/vmailconelsiguiente comando:
#sudo ls -ld /home/vmail
9. Comprobamos que el propietario/grupo sean los siguientes:
drwxrwxrw- 7 vmail vmail 4096 nov 14 11:36 /home/vmail
10. En caso de estar asignado a otro usuario, tomamos propiedad del directorio con el siguiente
comando:
#sudo chown -R vmail:vmail /home/vmail
11. Abrimos el archivo de autenticación de usuario para edición, ingresando el comandoen la línea
inferior. Se necesita fijar la autenticación entonces solo usuarios autenticados puedan leer
correos en el servidor. También se necesita configurar un socket de autenticación para el
correo saliente desde que le dijimos a Postfix que Dovecot maneje eso.
#sudo nano /etc/dovecot/conf.d/10-auth.conf
12. Desactivamos la autenticación por texto plano descomentando esta línea:
disable_plaintext_auth = yes
13. Fijamos el mecanismo de autenticación modificando la siguiente línea:
auth_mechanisms = plain login
14. Agregamos un signo numeral (#) para comentar la línea de inicio de sesión para usuarios del
sistema:
#!include auth-system.conf.ext
15. Habilitamos la autenticación por MariaDB/MySql al descomentar la línea auth-
sql.conf.ext, esa sección debería verse así:
#!include auth-system.conf.ext
!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext
16. Guardamos los cambios realizados en el archivo:
/etc/dovecot/conf.d/10-auth.conf
17. Ahora debemos editar el archivo: /etc/dovecot/conf.d/auth-sql.conf.ext con nuestra
información de autenticación.
#sudo nano /etc/dovecot/conf.d/auth-sql.conf.ext
18. Verificamos que los dos siguientes apartados posean esta información a continuación:
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
Explicación de los parámetros:
• passdb, Le dice a Dovecot como encontrar los usuarios para autenticación. Le decimos a
Dovecot que use MariaDB/MySql. En la línea args, le especificamos el archivo que contiene la
información de conexiónMariaDB/MySql.
• userdb,Le dice a Dovecot dónde buscar los correos de los usuarios en el servidor.
Nosotros usamos un controlador estático ya que la ruta estará en el mismo formato para
cualquiera.
19. Guardamosloscambiosenel archivo /etc/dovecot/conf.d/auth-sql.conf.ext
20. Actualizamos el archivo: /etc/dovecot/dovecot-sql.conf.ext connuestra información
personalizada de conexión MariaDB. Abrimos el archivo para edición ingresando el siguiente
comando:
#sudo nano /etc/dovecot/dovecot-sql.conf.ext
21. Descomentamos y fijamos el controlador como se muestra en la parte inferior:
driver = mysql
22. Descomentamos la línea connect y fijamos nuestra información de conexiónMariaDB:
connect = host=127.0.0.1 dbname=postfixbd user=postfixuser password=postfix
23. Descomentamos la línea default_pass_scheme y la fijamos a SHA512-CRYPT
default_pass_scheme = SHA512-CRYPT
24. Descomentamos la línea de consulta de contraseña y la fijamos como se muestra.
Esta es una consulta mysql que Dovecot usa para extraer la contraseña desde la base de datos.
password_query = SELECT email as user, password FROM virtual_users WHERE
email='%u';
Guardamos los cambiosen el archivo /etc/dovecot/dovecot-sql.conf.ext
25. Cambiamos el propietario y grupo para el directorio /etc/dovecot/ a vmail y dovecot
ingresando el siguiente comando:
#sudo chown -R vmail:dovecot /etc/dovecot
26. Cambiamos los permisos sobre el directorio /etc/dovecotingresando el siguiente comando:
#sudo chmod -R o-rwx /etc/dovecot
27. Abrimos el archivo de configuración de sockets ingresando el siguiente comando:
#sudo nano /etc/dovecot/conf.d/10-master.conf
28. Configuramos los números de puertos correspondientes a IMAP = 143 y POP3 = 110
respectivamente como se muestra en la parte inferior. Pese a ser los números de puertos usados
por defecto, estos servicios brindan comunicaciones seguras gracias al uso de TLS.
Extracto del archivo: /etc/dovecot/conf.d/10-master.conf
service imap-login {
inet_listener imap {
port = 143
}
...
}
service pop3-login {
inet_listener pop3 {
port = 110
}
...
}
29. Encuentra la sección del servicio lmtp y usa la configuración que se muestra debajo. Se
debe agregar unas pocaslíneas en el bloque de escucha unix (unix_listener).Enesta sección
hace el socket LMTP en lugar de decirle a Postfix donde buscarlo.
Extracto del archivo: /etc/dovecot/conf.d/10-master.conf
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
# Create inet listener only if you can't use the above UNIX
socket
#inet_listener lmtp {
# Avoid making LMTP visible for the entire internet
#address =
#port =
#}
}
30. Localizamos la sección service auth y usamos la configuración que se indica en la parte
inferior. Se necesita crear un nuevo bloque de escucha unix (unix_listener), modificar el
existente, descomentar y fijar el usuario. Esta sección hace el socket de autorización donde
dijimos a Postfix que realice las búsquedas.
Extracto del archivo: /etc/dovecot/conf.d/10-master.conf
service auth {
# auth_socket_path points to this userdb socket by default. It's
typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Its
default
# permissions make it readable only by root, but you may need to
relax these
# permissions. Users that have access to this socket are
able to get a list
# of all usernames and get results of everyone's userdb lookups.
unix_listener auth-userdb {
mode = 0600
user = vmail
#group =
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
#}
# Auth process is run as this user.
user = dovecot
}
31. En la sección service auth-worker,descomentamos la línea user y la fijamos a vmail,como
se muestra debajo, luego guardamos el archivo con los cambiosrealizados:
Extracto del archivo: /etc/dovecot/conf.d/10-master.conf
service auth-worker {
# Auth worker process is run as root by default, so that it can access
# /etc/shadow. If this isn't necessary, the user should be changed to
# $default_internal_user.
user = vmail
}
31. Abrimos el archivo de configuración SSLpara edición ingresando el siguiente comando. En este
le decimos a Dovecot donde encontrar nuestro certificado y llave, además de cualquier otro
parámetro relacionado a SSL.
#sudo nano /etc/dovecot/conf.d/10-ssl.conf
32. Forzamos a tus clientes a usar encriptación SSL para todas las conexiones. Fijamos
ssl to required
ssl = required
33. Verificamos que la configuración de ssl_cert tenga la ruta hacia el certificado y que la
configuración de ssl_keytenga la ruta de nuestra llave. La configuración por defecto aquí usa un
certificado de Dovecot previamente creado durante la fase de instalación, entonces lo dejaremos
tal y comose encuentra.
Extracto del archivo: /etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/dovecot/private/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.key
34. Guardamos los cambios en el archivo /etc/dovecot/conf.d/10-ssl.conf Dovecot ha sido
ya configurado. Y procedemos a reiniciar el servicio Dovecot ingresando el siguiente comando:
#sudo systemctl restart dovecot
Fuente: https://library.linode.com/email/postfix/postfix2.9.6-dovecot2.0.19-mysql
(Los pasos indicados en el enlace me fueron muy útiles años atrás, lo comparto como agradecimi ento
y reconocimiento).
Pruebas del servidor desde un cliente de correo Mozilla Thunderbird
Para llevar a cabo las pruebas necesitamos lo siguiente:
• Sistema operativo, usado como cliente (Entorno escritorio instalado, para facilitar la
interacción). En este caso Windows 10 de 64 bits.
• Cliente de correo electrónico: En este caso Mozilla Thunderbird versión 91.6.1 de 64 bits
Pasos a seguir:
1. Abrimos Mozilla Thunderbird, nos muestra la pestaña: “Configuración de cuenta”, y como
contenido las cajas de texto para ingresar la información concerniente a nuestra cuenta de
correo, entoncestecleamos la información en este caso concerniente a: emai1@midominio.com
tal y comose aprecia en la siguiente figura:
Figura 18: Agregando los datos de la cuenta correspondientes a email1@midominio.com
2. Una vez pulsado en el botón “Continuar” nos muestra el siguiente cuadro de dialogo en el que
debemos pulsar en “Iniciar sesión”.
Figura 19: Cuadro de diálogo de confirmación para enviar sus credenciales.
3. En instantes muestra un cuadro informativo con el nombre de dominio de los servicios
encontrados entrante y saliente. Es muy importante haber modificado el archivo hosts de
Windows previamente, así se garantiza que se va a conectaral servidor local ya configurado. En
este cuadro dejamos en IMAP tal y como se observa en la figura a continuación (O también se
puede seleccionar POP3). Una vez seleccionada la opciónpulsamos en “Listo”.
Figura 20: Cuadro informativo acerca de los servicios encontrados.
4. A continuación, presenta una ventana emergente con información del servidor (servicio)
“Agregar excepción de seguridad”, ésta se presenta cuando el servidor se identifica con
certificado SSLque bien es certificado firmado localmente o auto firmado, en cambio cuando el
certificado es firmado por una entidad certificadora (Es decir compramos un certificado SSL
validado) está ventana no se muestra, entonces para continuar pulsamos en “Confirmar
excepción de seguridad”.
Figura 21: Confirmando excepción de seguridad para certificado de imap.midominio.com.
5. Luego de unos segundos de haber agregado el certificado y validado la información de la cuenta
de correo, muestra la siguiente pestaña indicandoque se ha agregado correctamente, pulsamos
en “Finalizar”.
Figura 22: Pestaña indicando ingreso exitosode cuenta de correo.
6. Al finalizar carga la pestaña con información del buzón del correo ingresado, ahora se debe
agregar al menos una segunda cuenta de correo para poder interactuar, para ello se presiona la
tecla “Alt”, lo que muestra la barra de menú principal del programa, señalamos el menú
“Herramientas” y clicamosen la opción“Configuración de cuentas”.
Figura 23: Accediendo a Configuración de cuentas.
7. En la parte izquierda en el panel localizamos el menú “Acciones de cuenta”, pulsamos sobre el,
elegimos la opción“Agregar cuenta de correo”.
Figura 24: Accediendo a la opción “Agregarcuenta de correo”.
8. Esto nos muestra el formulario para agregar una nueva cuenta de correo a Thunderbird,
repetimos los pasos indicados anteriormente y nos presenta una ventana conel mensaje que el
segundo correo se ha añadido exitosamente al programa. Pulsamos en “Finalizar” para salir.
Figura 25: Ventana indicando que se agregócorrectamente la segunda cuenta de correo.
9. Ya contando con dos direcciones de correo registradas, desde la ventana principal, vamos al
panel de la izquierda y damos click en email1@midominio.comvamosa crear un mensaje, para
ello clicamosen la opcióndel panel derecho “Redactar un mensaje nuevo”.
Figura 26: Ubicación del botón para “Redactor un mensaje nuevo”.
10. En la ventana de redacción tipeamos la información necesaria para el mensaje, como
destinatario, un título para el asunto, y el contenido. Para terminar, pulsamos en el botón
“Enviar”.
Figura 27: Ventana de redacción del Usuario email1.
11. En este instante nos presenta una ventana de confirmación emergente, como explique
anteriormente en la sección de IMAP, se debe a que el certificado que identifica al servidor es
auto firmado, para esta guía estoy usando los certificados que fueron creados al momento de la
instalación de los paquetes de este servidor. Pulsamos en el botón“Aceptar”.
Figura 28: Confirmación emergente notificando que el Certificado de smtp.midominio.com es auto firmado.
12. A continuación,presenta la ventana coninformación del certificado para el servicio SMTP, como
se indicóen pasos antes, está ventana y la anterior se muestran al usuario solo cuandose trabaja
con certificados auto firmados, esto no ocurre cuando los certificados utilizados en la
configuración del servidor provienen firmados por una (CA) Autoridad Certificadora válida para
el cliente de correo. Como dato útil vale mencionar que similar a los navegadores web, los
clientes de correo, al momento de instalarse o actualizarlos añaden a su base de datos local del
programa un listado de CA confiables, entonces cada vez que se encuentran con un sitio,
aplicación o servicio que utiliza certificados firmados por estos CA lo considerara seguro y por
ende no muestra las ventanas emergentes que se indica en este documento guía. Pulsamos en
“Confirmar excepción de seguridad”.
Figura 29: Confirmando excepción de seguridad para certificado de smtp.midominio.com.
Para continuar se debe pulsar otra vez en el botón “Enviar” para que el mensaje sea enviado.
13. Ya cuando el mensaje fue enviado el programa nos lleva a la ventana de contenido principal,
desde ahí nos vamos al panel de la izquierda, damos clic en email2@midominio.comyluego en
bandeja de entrada, efectivamente se ha recibido un correo.
Figura 30: Bandeja de entrada de email2@midominio.com.
14. Le damos dos clicssobre el título del mensaje para proceder conla lectura, muestra una pestaña
nueva conel título del mensaje y su contenido.
Figura 31: Leyendo mensaje recibido por cuenta email2@midominio.com
Si has llegado hasta aquí, en hora buena lo has conseguido, tener un servidor de correo básico
funcional, cuyo dominio es: “midominio.com”,recuerda agregar más cuentas de correo en la base
de datos según como se necesite, si se desea utilizar otros alias, o ampliar el número de cuentas de
correo como, por ejemplo: administrador@midominio.com, se deben agregar estos a la base de
datos en las tablas correspondientes.
+HQU
ULVWLDQ
XHVWD
9HJD
'LJLWDOOVLJQHGE+HQU
ULVWLDQXHVWD9HJD
'1FQ +HQUULVWLDQXHVWD
9HJDJQ +HQUULVWLDQXHVWD
9HJDF ((FXDGRUO (
(FXDGRUR 0HJDSUR6VWHPV
RX 7HFQRORJtDVGH,QIRUPDFLyQ
H FULVWLDQFY#JPDLOFRP
5HDVRQ6RHODXWRUGHHVWH
GRFXPHQWR
/RFDWLRQ/RMD(FXDGRU
'DWH

More Related Content

What's hot

Zusammenführung von HCL Nomad Web und Domino ohne SafeLinx - So gehts
Zusammenführung von HCL Nomad Web und Domino ohne SafeLinx - So gehtsZusammenführung von HCL Nomad Web und Domino ohne SafeLinx - So gehts
Zusammenführung von HCL Nomad Web und Domino ohne SafeLinx - So gehtspanagenda
 
Prácticas de-comandos-basicos-de-la-consola-del-cmd
Prácticas de-comandos-basicos-de-la-consola-del-cmdPrácticas de-comandos-basicos-de-la-consola-del-cmd
Prácticas de-comandos-basicos-de-la-consola-del-cmdEva Verduzco
 
Practica de replicacion maestro esclavo en mysql
Practica de replicacion maestro esclavo en mysqlPractica de replicacion maestro esclavo en mysql
Practica de replicacion maestro esclavo en mysqlSinuhé Pérez Mtz
 
How to Bring HCL Nomad Web and Domino Together Without SafeLinx
How to Bring HCL Nomad Web and Domino Together Without SafeLinxHow to Bring HCL Nomad Web and Domino Together Without SafeLinx
How to Bring HCL Nomad Web and Domino Together Without SafeLinxpanagenda
 
Integración LDAP + SAMBA
Integración LDAP + SAMBAIntegración LDAP + SAMBA
Integración LDAP + SAMBAcyberleon95
 
Linux command line cheatsheet
Linux command line cheatsheetLinux command line cheatsheet
Linux command line cheatsheetWe Ihaveapc
 
Instalacion servicio e-mail Linux Mint
Instalacion servicio e-mail Linux MintInstalacion servicio e-mail Linux Mint
Instalacion servicio e-mail Linux MintGer Hernandez
 
Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1EQ SOFT EIRL
 
Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)jomadega1
 
Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2EQ SOFT EIRL
 
Conectando visual basic 6.0 a bases de datos
Conectando visual basic 6.0 a bases de datosConectando visual basic 6.0 a bases de datos
Conectando visual basic 6.0 a bases de datosRafaelAponte16
 
Investigacion servidores
Investigacion servidoresInvestigacion servidores
Investigacion servidoresRamicat
 
Manual de instalacion de Mongo db
Manual de instalacion de Mongo dbManual de instalacion de Mongo db
Manual de instalacion de Mongo dbRuby B. Blanca
 
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notesHow to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notesandrewscott01
 
Práctica Active Directory 1-12
Práctica Active Directory 1-12Práctica Active Directory 1-12
Práctica Active Directory 1-12Adrian Gabriel
 
Linux booting Process
Linux booting ProcessLinux booting Process
Linux booting ProcessGaurav Sharma
 
Operación de sistema operativo monousuario sobre ms dos
Operación de sistema operativo monousuario sobre ms dosOperación de sistema operativo monousuario sobre ms dos
Operación de sistema operativo monousuario sobre ms dosSaulo Flores
 
Servidor DNS con IPv6 en Linux
Servidor DNS con IPv6 en LinuxServidor DNS con IPv6 en Linux
Servidor DNS con IPv6 en LinuxErick Cruz
 

What's hot (20)

Xampp
XamppXampp
Xampp
 
Zusammenführung von HCL Nomad Web und Domino ohne SafeLinx - So gehts
Zusammenführung von HCL Nomad Web und Domino ohne SafeLinx - So gehtsZusammenführung von HCL Nomad Web und Domino ohne SafeLinx - So gehts
Zusammenführung von HCL Nomad Web und Domino ohne SafeLinx - So gehts
 
Prácticas de-comandos-basicos-de-la-consola-del-cmd
Prácticas de-comandos-basicos-de-la-consola-del-cmdPrácticas de-comandos-basicos-de-la-consola-del-cmd
Prácticas de-comandos-basicos-de-la-consola-del-cmd
 
Practica de replicacion maestro esclavo en mysql
Practica de replicacion maestro esclavo en mysqlPractica de replicacion maestro esclavo en mysql
Practica de replicacion maestro esclavo en mysql
 
How to Bring HCL Nomad Web and Domino Together Without SafeLinx
How to Bring HCL Nomad Web and Domino Together Without SafeLinxHow to Bring HCL Nomad Web and Domino Together Without SafeLinx
How to Bring HCL Nomad Web and Domino Together Without SafeLinx
 
Integración LDAP + SAMBA
Integración LDAP + SAMBAIntegración LDAP + SAMBA
Integración LDAP + SAMBA
 
Linux command line cheatsheet
Linux command line cheatsheetLinux command line cheatsheet
Linux command line cheatsheet
 
Instalacion servicio e-mail Linux Mint
Instalacion servicio e-mail Linux MintInstalacion servicio e-mail Linux Mint
Instalacion servicio e-mail Linux Mint
 
Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1
 
Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)
 
Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2
 
Conectando visual basic 6.0 a bases de datos
Conectando visual basic 6.0 a bases de datosConectando visual basic 6.0 a bases de datos
Conectando visual basic 6.0 a bases de datos
 
Investigacion servidores
Investigacion servidoresInvestigacion servidores
Investigacion servidores
 
Manual de instalacion de Mongo db
Manual de instalacion de Mongo dbManual de instalacion de Mongo db
Manual de instalacion de Mongo db
 
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notesHow to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
 
Xampp
XamppXampp
Xampp
 
Práctica Active Directory 1-12
Práctica Active Directory 1-12Práctica Active Directory 1-12
Práctica Active Directory 1-12
 
Linux booting Process
Linux booting ProcessLinux booting Process
Linux booting Process
 
Operación de sistema operativo monousuario sobre ms dos
Operación de sistema operativo monousuario sobre ms dosOperación de sistema operativo monousuario sobre ms dos
Operación de sistema operativo monousuario sobre ms dos
 
Servidor DNS con IPv6 en Linux
Servidor DNS con IPv6 en LinuxServidor DNS con IPv6 en Linux
Servidor DNS con IPv6 en Linux
 

Similar to Postfix y Dovecot con cuentas MariaDB en Debian Bullseye

Servidor de correo_mediante_postfix
Servidor de correo_mediante_postfixServidor de correo_mediante_postfix
Servidor de correo_mediante_postfixJuan Puente Diaz
 
Vps local virtualbox
Vps local virtualboxVps local virtualbox
Vps local virtualboxBaruch Ramos
 
Servidores Web en GNU/Linux
Servidores Web en GNU/LinuxServidores Web en GNU/Linux
Servidores Web en GNU/LinuxMartin Gregorio
 
Conexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLConexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLIvan Luis Jimenez
 
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-Sonia Garcia
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sasRafael Toro
 
Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor Francisco Aguilar Smith
 
Acceso a una base de datos mediante un servidor (Conexión a oracle y mysql)
Acceso a una base de datos mediante un servidor (Conexión a oracle y mysql)Acceso a una base de datos mediante un servidor (Conexión a oracle y mysql)
Acceso a una base de datos mediante un servidor (Conexión a oracle y mysql)Ivan Luis Jimenez
 
Instalación de MySQL en Linux Mint
Instalación de MySQL en Linux MintInstalación de MySQL en Linux Mint
Instalación de MySQL en Linux Mintkamui002
 
Manual de instalacion de servidor zentyal 3
Manual de instalacion de servidor zentyal 3Manual de instalacion de servidor zentyal 3
Manual de instalacion de servidor zentyal 3Marco Arias
 
Instalación service manager (mysql enterprise monitor)
Instalación service manager (mysql enterprise monitor)Instalación service manager (mysql enterprise monitor)
Instalación service manager (mysql enterprise monitor)Felix Ernesto Orduz Grimaldo
 
Apache centos configuración
Apache centos configuraciónApache centos configuración
Apache centos configuraciónxandra8556
 
Instalar y configurar wordpress en debian gnu
Instalar y configurar wordpress en debian gnuInstalar y configurar wordpress en debian gnu
Instalar y configurar wordpress en debian gnuIsidor Jiménez
 

Similar to Postfix y Dovecot con cuentas MariaDB en Debian Bullseye (20)

Servidor de correo_mediante_postfix
Servidor de correo_mediante_postfixServidor de correo_mediante_postfix
Servidor de correo_mediante_postfix
 
Vps local virtualbox
Vps local virtualboxVps local virtualbox
Vps local virtualbox
 
Servidores Web en GNU/Linux
Servidores Web en GNU/LinuxServidores Web en GNU/Linux
Servidores Web en GNU/Linux
 
Postfix Internet Site + Sasl
Postfix Internet Site + SaslPostfix Internet Site + Sasl
Postfix Internet Site + Sasl
 
Mysql
MysqlMysql
Mysql
 
Conexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLConexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQL
 
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-
8699418 manual-de-instalacion-y-configuracion-del-servidor-de-correo-postfix-
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sas
 
Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor
 
Php.y.my sql
Php.y.my sqlPhp.y.my sql
Php.y.my sql
 
Acceso a una base de datos mediante un servidor (Conexión a oracle y mysql)
Acceso a una base de datos mediante un servidor (Conexión a oracle y mysql)Acceso a una base de datos mediante un servidor (Conexión a oracle y mysql)
Acceso a una base de datos mediante un servidor (Conexión a oracle y mysql)
 
Instalación de MySQL en Linux Mint
Instalación de MySQL en Linux MintInstalación de MySQL en Linux Mint
Instalación de MySQL en Linux Mint
 
Manual de instalacion de servidor zentyal 3
Manual de instalacion de servidor zentyal 3Manual de instalacion de servidor zentyal 3
Manual de instalacion de servidor zentyal 3
 
Instalación service manager (mysql enterprise monitor)
Instalación service manager (mysql enterprise monitor)Instalación service manager (mysql enterprise monitor)
Instalación service manager (mysql enterprise monitor)
 
Instalación y configuración Servidor FTP y SSH
Instalación y configuración Servidor FTP y SSHInstalación y configuración Servidor FTP y SSH
Instalación y configuración Servidor FTP y SSH
 
Sesion n°6
Sesion n°6Sesion n°6
Sesion n°6
 
Manual de mysql
Manual de mysqlManual de mysql
Manual de mysql
 
Apache centos configuración
Apache centos configuraciónApache centos configuración
Apache centos configuración
 
Practica 7 servidor samba
Practica  7 servidor sambaPractica  7 servidor samba
Practica 7 servidor samba
 
Instalar y configurar wordpress en debian gnu
Instalar y configurar wordpress en debian gnuInstalar y configurar wordpress en debian gnu
Instalar y configurar wordpress en debian gnu
 

More from Henry Cristian Cuesta Vega

More from Henry Cristian Cuesta Vega (6)

Creación de certificados digitales con openssl CA local
Creación de certificados digitales con openssl CA localCreación de certificados digitales con openssl CA local
Creación de certificados digitales con openssl CA local
 
Plan de acondicionamiento para una semana
Plan de acondicionamiento para una semanaPlan de acondicionamiento para una semana
Plan de acondicionamiento para una semana
 
Inteligencia artificial prueba cognitiva
Inteligencia artificial prueba cognitivaInteligencia artificial prueba cognitiva
Inteligencia artificial prueba cognitiva
 
Aritmética de Computadores
Aritmética de ComputadoresAritmética de Computadores
Aritmética de Computadores
 
Simbolodiagramas de flujo
Simbolodiagramas de flujoSimbolodiagramas de flujo
Simbolodiagramas de flujo
 
Instalacion y configuracion servidor ftp
Instalacion y configuracion servidor ftpInstalacion y configuracion servidor ftp
Instalacion y configuracion servidor ftp
 

Recently uploaded

TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 

Recently uploaded (20)

TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 

Postfix y Dovecot con cuentas MariaDB en Debian Bullseye

  • 1. Servidor de Correo Debian (11) Bullseye con los paquetes: Postfix, Dovecot, y cuentas en base de datos MariaDB para su uso con TLS. En este documento guía, se detalla los pasos necesarios para configurar un servidor GNU/Linux Debian versión 11.2 (Bullseye) con usuarios almacenados en una base de datos MariaDB. (también debe ser funcional si aplica los mismos pasos de configuración si utiliza MySQL versión 5.5, que fue la última versión gratuita del gestor de base de datos, ya luego quienes se esforzaron por mantener el gestor como software de código abierto lo bautizaron como MariaDB, esto como dato para conocer a los recién llegados o que desconocenesta información. Listado de paquetes a instalar (hasta la fechade elaboración de esta guía): Debian versión: 11.2 de 64 bits Postfix versión: 3.5.6 Dovecot versión: 2.3.13 MariaDB Servidor: 10.5.12 Correos ejemplo: usuario@midominio.com, email1@midominio.com (No olvidar leer con atención y con calma hasta el final). Pasos a seguir: 1. Para proceder la instalación de los paquetes, iniciamos sesión conel usuario creado en nuestro sistema Debian, hay que asegurarse de tener privilegios administrativos ya que la edición de archivos de configuración y demás tareas como la instalación de los paquetes requieren privilegios elevados esto mediante el uso del comando “sudo” como ejemplo: #sudo comando opciones 2. Instalamos los paquetes necesarios para este tipo de configuración ingresando el siguiente comando: #sudo apt install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql mariadb-server -y Figura 1: Instalación de paquetes.
  • 2. 3. Cuando pregunte para seleccionar una configuración de Postfix, seleccionamos “Sitio de Internet” como se muestra en la imagen; más adelante se verificará el contenido de los archivos de configuración. Figura 2: Preconfiguración de Postfix 4. A continuación, solicita se ingrese el “Nombre del sistema de correo”, en él ingresamos el dominio que usaremos como ejemplo: “midominio.com”. Figura 3: Ingresando el nombre del Sistema de correo en preconfiguración de Postfix. Luego de esto la instalación continúa con normalidad. Hasta este momento se instaló los paquetes para soportar las 3 aplicaciones: Postfix, Dovecot y MariaDB. A continuación, se explicará la configuración individual de cada aplicación (servicio) para que funcionen conjuntamente.
  • 3. MariaDB Como tarea inicial, ejecutamos por primera vez el gestor de base de datos, esto mediante el comando: #sudo mysql Una vez dentro de la interfaz de MariaDB, ingresamos el siguiente comando para asignarle al usuario root una contraseña: #MariaDB[(none)]> alter user root@localhost identified by 'rootPassword'; Figura 4: Asignación de una contraseña para la cuenta root de MariaDB La contraseña indicadaentre comillas simple, será la contraseña asignada para el usuario root. Ahora para salir del gestor de base de datos lo hacemos mediante el comando: #MariaDB[(none)]> exit Primero crearemos una base de datos dedicada para el servidor de correo, con un respectivo usuario para ingresar losregistros correspondientes. Estatendrás 3tablas: Unapara dominios, otra condirecciones de correo y claves encriptadas y la última conseudónimos de correo (alias). Creaciónde la base de datos Aquí se indica cómo crear la base de datos y las tablas necesarias en MariaDB. 1. Iniciamos sesión en MariaDB como usuario root desde una terminal ingresando lo siguiente: #mysql –u root –p 2. Nos solicita la contraseña, tecleamos la clave ingresada para el usuario administrador (root) previamente asignada. 3. Creamos la base de datos conla siguiente instrucción: #MariaDB[(none)]> CREATE DATABASE postfixbd; Query OK, 1 row affected (0.03 sec) 4. Seleccionamosla base de datos creada anteriormente: #MariaDB[(none)]> use postfixbd; Database changed
  • 4. 5. Se asigna privilegios de la base de datos creada a un usuario específico: #MariaDB[postfixbd]> GRANT ALL PRIVILEGES ON postfixbd.* to ‘postfixuser’@‘127.0.0.1’ IDENTIFIED BY ‘postfix’; #MariaDB[postfixbd]> GRANT ALL PRIVILEGES ON postfixbd.* to ‘postfixuser’@‘localhost’ IDENTIFIED BY ‘postfix’; Figura 5: Asignando permisos al usuario postfixusera la base de datos. 6. Aplicamoslos permisos asignados conla siguiente orden: #MariaDB[postfixbd]> FLUSH PRIVILEGES; 7. Cerramos sesión en MariaDB para trabajar como el usuario recientemente creado. #MariaDB[postfixbd]> exit 8. Iniciamos sesión comoel usuario postfixuser, comose ve en la imagen. #mysql -u postfixuser -p Figura 6: Ingreso a MariaDB como usuario postfixuser, usuario para gestionar la base de datos. 9. Seleccionamos la base de datos postfixbd. Luego procedemos a crear las tablas que necesitaremos para nuestro servidor. #MariaDB[postfixbd]> use postfixbd; 10. Creamos la tabla para los dominios ingresando lo siguiente en la línea de comandos MariaDB: CREATE TABLE `virtual_domains` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`)
  • 5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 11. Creamos la tabla para las direcciones de correo y sus contraseñas ingresando lo siguiente en la línea de comandos MariaDB: CREATE TABLE `virtual_users` ( `id` int(11) NOT NULL auto_increment, `domain_id` int(11) NOT NULL, `password` varchar(106) NOT NULL, `email` varchar(100) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`), FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 12. Creamos la tabla para los alias de correo ingresando lo siguiente en la línea de comandos MariaDB: CREATE TABLE `virtual_aliases` ( `id` int(11) NOT NULL auto_increment, `domain_id` int(11) NOT NULL, `source` varchar(100) NOT NULL, `destination` varchar(100) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Hasta este puntoya tenemos creadas las tablasen la base dedatos para el servidor de correo, ahora procedemos a agregar datos a las tablas. Agregando datos a la base de datos. 1. Agregamos los dominios a la tabla virtual_domains.Sepuede agregar tantos dominios como queramos en la seccióndevalores en los comandos quese muestra a continuación,enel ejemplo se añade solo el dominio primario (midominio.com) el nombre de equipo (hostname) el FQDN (bullseyevm.midominio.comylocalhost.midominio.com,acadaunode estos registros se le asignará un valor únicode id. #MariaDB[postfixbd]> INSERT INTO `postfixbd`.`virtual_domains` (`id` ,`name`) VALUES ('1', 'midominio.com'), ('2', 'bullseyevm.midominio.com'), ('3', 'bullseyevm'), ('4', 'localhost.midominio.com'); 2. Agregamos los dominios a la tabla virtual_domains. Se puede agregar tantos dominios como queramos en la secciónde valores en loscomandos que se muestra a continuación,en el ejemplo se añade solo el dominio primario (tesisgad.com) el nombre de equipo (hostname) el FQDN (bullseyevm.midomonio.com)ylocalhost.midominio.com, a cada uno de estos registros se le asignará un valor únicode id.
  • 6. #MariaDB[postfixbd]> INSERT INTO `postfixbd`.`virtual_users` (`id`, `domain_id`, `password` , `email`) VALUES ('1', '1', ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@midominio.com'), ('2', '1', ENCRYPT('secondpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@midominio.com'); 3. Agregamos los alias de correo para las cuentas necesarias INSERT INTO `postfixbd`.`virtual_aliases` (`id`, `domain_id`, `source`, `destination`) VALUES ('1', '1', 'soporte@midominio.com', 'email1@midominio.com'), ('2', '1', 'postmaster@midominio.com', 'email1@midominio.com'); Consultas de prueba a la base de datos. Para constatar que los datos se ingresaron correctamente vamos a ingresar las siguientes consultas básicas: #MariaDB[postfixbd]> select * from virtual_domains; Figura 7: Consulta de todos los registros almacenados en la tabla virtual_domains. #MariaDB[postfixbd]> select * from virtual_users;
  • 7. Figura 8: Consulta de todos los registros almacenados en la tabla virtual_users. #MariaDB[postfixbd]> select * from virtual_aliases; Figura 9: Consulta de todos los registros almacenados en la tabla virtual_aliases. Configuración de Postfix para usuarios virtuales MariaDB 1. Hacemos una copia de respaldo del archivo /etc/main.cf #sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.orig 2. Abrimos el archivo/etc/postfix/main.cfparasuedición,en esta guía utilizo nano como editor, pueden usar cualquier otro editor a suelección como: vi o vim. #sudo nano /etc/postfix/main.cf 3. SASL (Simple Authentication and Security Layer). En español Capa Simple de Autenticación y Seguridad, es el conjunto estandarizado para autenticación que Postfix utiliza. La autenticación es necesaria para que solo los usuarios autorizados puedan usar tu servidor para enviar correos. En este caso le decimos a Postfix que utilice la autenticacióndeDovecot. smtpd_sasl_type = dovecot 4. A continuación se indica la ruta para el socket de autenticación se indica una ruta relativa o la ruta completa /var/spool/postfix/private/auth smtpd_sasl_path = private/auth 5. La siguiente línea le dice a Postfix que deje que las personas envíen correos usando este servidor si ellos son autenticados satisfactoriamente. Si esta se fija como desactivada, Postfix dejaría a las personas enviar correo solo si ellos ya estaban en el servidor. (por ejemplo: si ellos ya iniciaron sesión conSSH). smtpd_sasl_auth_enable = yes
  • 8. 6. La próxima línea le dice a Postfix que tipos de usuarios se les permitirá enviar correo a otras direcciones usando el servidor. (Específicamente esto aplica a mensajes que tienen el componente RCPT TO). Los dos primeros parámetros agregados le dicen a Postfix que permita enviar correo para usuarios autenticados conSASLyusuarios conectadosdesde una red listada en el parámetro mynetworks (En nuestro caso la interfaz de loopback y la red a la que pertenece el servidor). EL parámetro final le dice a Postfix que rechace enviar correos a menos que el destino sea para alguien en este servidor. smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination 7. En la siguiente línea reemplazamos el valor asignado a mydestinationporlocalhost.Esto nos permite usar los dominios virtuales listados en nuestra tabla MariaDB. Es importante que no haya superposiciones entre la tabla MariaDB y la entrada en mydestination. Mantener la entrada localhost en mydestination nos deja permanecer las cosas simples para el envío de correo dentro del servidor usando localhost, lo que puede ser de ayuda si siempre se tiene problemas conlos dominios virtuales. mydestination = localhost 8. Agregamos las siguientes líneas correspondientes a dominios, usuarios y alias virtuales: En cada uno de estos archivos se indica los detalles de cómo conectarse a MariaDB. 9. Procedemos a la creación de los 3 archivos antes mencionados; ajustamos losparámetros de acuerdo a la base de datos que creamos anteriormente. El contenido para el archivo de los dominios virtuales: /etc/postfix/mysql-virtual-mailbox-domains.cfserá: 10. Reiniciamos Postfix con el siguiente comando #sudo systemctl restart postfix user = postfixuser password = postfix hosts = 127.0.0.1 dbname = postfixbd query = SELECT 1 FROM virtual_domains WHERE name= '%s' virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
  • 9. 11. Ingresamos el siguiente comando para asegurarnos que Postfix puede encontrar tu primer dominio. El comando debe responder con1 si tuvo éxito, y si no se obtuvo nada es porque se tiene un inconveniente. #sudo postmap -q midominio.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf Figura 10: Consulta de midominio.com mediante postmap. 12. Creamos el archivo de conexión para las direcciones de correo /etc/postfix/mysql- virtual-mailbox-maps.cfconel siguiente contenido: 13. Reiniciamos Postfix una vez más. #sudo systemctl restart postfix 14. Ahora verificamos si puede encontrar la primera dirección de correo en nuestra tabla MariaDB. El resultado correcto es un 1 como salida. #sudo postmap -q email1@midominio.com mysql:/etc/postfix/mysql-virtual-mailbox- maps.cf Figura 11: Consulta de mailbox-maps mediante uso de postmap. 15. Creamos el archivo correspondiente a los alias virtuales, al igual que en los pasos anteriores la información debe corresponder a la utilizada para su base de datos MariaDB. El archivo /etc/postfix/mysql-virtual-alias-maps.cf,tendrá esta información: 16. Reiniciamos Postfix #sudo systemctl restart postfix 17. Ahora probamos si puede encontrar nuestros alias ingresando el siguiente comando: #sudo postmap -q soporte@midominio.com mysql:/etc/postfix/mysql-virtual-alias- maps.cf user = postfixuser password = postfix hosts = 127.0.0.1 dbname = postfixbd query = SELECT 1 FROM virtual_users WHERE email = '%s' user = postfixuser password = postfix hosts = 127.0.0.1 dbname = postfixbd query = SELECT destination FROM virtual_aliases WHERE source = '%s'
  • 10. Figura 12: Consulta de alias almacenados en virtual-alias-maps mediante uso de postmap. 18. Acontinuaciónagregamos las siguientes líneas para indicarlas rutas a certificados digitales (SSL) y así añadir seguridad mediante conexión TLS. smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key 19. Las siguientes líneas continuaciónobligan al servicio el usodel protocoloTLS. smtpd_use_tls = yes smtpd_tls_auth_only = yes 20. Revisamos el nombre del equipo, modificando el valor del siguiente apartado (o variable, deben ajustarlo de acuerdo a la configuración que estén usando). myhostname = bullseyevm.midominio.com 21. Revisamos el nombre del dominio que vamos a emplear en nuestro ejemplo (ovariable, deben ajustarlo de acuerdo a la configuración que estén usando). mydomain = midominio.com 22. En la sección de mis redes, agregamos la dirección de red correspondiente a nuestra red local (en mi caso voy hacer las pruebas desde otro equipo, no desde el mismo servidor Debian). mynetworks = 127.0.0.0/8, 192.168.134.0/24 23. Agregamos la siguiente línea para indicarle a Postfix que la bandeja de entrada la cree usando la estructura Maildir; así luego los emails se almacenaran en la carpeta: “Recibidos”. home_mailbox = Maildir/ 24. Agregamos la siguiente línea para indicarle a Postfix que utilice el agente lmtp para realizar los envíos de los correos y luego los pueda almacenar en la carpeta: “Enviados”. virtual_transport = lmtp:unix:private/dovecot-lmtp 25. Abrimos el archivo /etc/postfix/master.cf verificando que el contenido del archivo quede de la siguiente manera, comentando la línea que inicia con smtp, y descomentada la línea correspondiente a submission
  • 11. Figura 13: Fragmentode archivo /etc/postfix/master.cf activando submission. (No olvidar reiniciar el servicio Postfix con el comando correspondiente) Modificación de algunos archivos del sistema • Abrimos el archivo /etc/hostnamepara añadir el nombre completo del equipo su FQDN para esto ejecutamos el comando: #sudo nano /etc/hostname Figura 14: Contenido de archivo /etc/hostname. Donde bulleyevm corresponde al nombre del equipo o este nodo servidor y midominio.com (luego del punto), corresponde al dominio de nuestra organización (empresa o compañía), con esto claro el contenido completo del archivo se define como: “servidor.midominio.com”. Por ejemplo, si se trátase de un servidor web (www), el contenido sería: “www.midominio.com” • Siguiente archivo (opcional), se trata del archivo hosts, lo editamos tecleando el siguiente comando: #sudo nano /etc/hosts En este casoel contenido del archivo es el que se muestra en la Figura 14 Figura 15: Contenido de archivo: /etc/hosts en este casode Debian 11
  • 12. Detalles: La línea más relevante y básica es la línea dos que contiene: la dirección IP (primera columna), el FQDN (segunda columna) y nombre del host o nodo (tercera columna), como se observa ya tiene la información del servidor comotal. Las líneas 3, 4 y 5, pueden ser descomentadas, pero les son útiles solo si van a realizar las pruebas desde el mismo servidor, es decir instalar un cliente de correo comoMozilla ThunderBird dentro de Debian, para esta guía vamos a probar desde un cliente Windows entonces las líneas quedan comentadas. En el caso de modificar el archivo hosts en Windows la ruta a seguir es: C:WindowsSystem32driversetchosts Figura 15. Figura 16: Contenido del archivo hosts en Windows. Nota: Es necesario agregar estás líneas en ese archivo del sistema puesto que no contamos con un servidor DNS en la red local el que nos resuelva el direccionamiento correspondiente al servidor de correo; con esto el cliente Windows (Thunderbird) podrá encontrar el servidor en la red local, no se olviden de realizar todos los ajustes necesarios de acuerdo a sus configuraciones. • Archivo /etc/mailname,vamos a editar este archivo cuyo contenido es idéntico al del archivo /etc/hostname, es necesario editarlo para que sea reconocido en las variables del sistema dentro de Debian. Figura 17: Contenido del archive /etc/mailname. Dovecotcon soporte para MySQL Se modificará un total de 7 archivos de configuración para Dovecot.Esta es la lista: /etc/dovecot/dovecot.conf: Archivo principal de configuración. /etc/dovecot/conf.d/10-mail.conf: Negocia el sistema de archivos de servidor.
  • 13. /etc/dovecot/conf.d/10-auth.conf: Definecomo semaneja la autenticaciónde usuarios. /etc/dovecot/conf.d/auth-sql.conf.ext: Nuevo archivo de autenticación para el tipo de autenticación SQL. /etc/dovecot/dovecot-sql.conf.ext: Unarchivo de autenticaciónincluido conlos parámetros de conexión MYSQL. /etc/dovecot/conf.d/10-master.conf: En este archivo son configurados los sockets. /etc/dovecot/conf.d/10-ssl.conf: Aquí se especifica los parámetros relacionados a SSL. Pasos para configurar Dovecotpara soporte Mysql 1. Hacemos una copia de respaldo los archivos antes mencionados: 2. Procedemos a editar el archivo principal de configuración de Dovecot /etc/dovecot/dovecot.conf y verificamos que este incluyendo a los otros archivos de configuración. Esta opcióndebería estar habilitada por defecto: !include conf.d/*.conf 3. Agregamos la siguiente línea a /etc/dovecot/dovecot.conf protocols = imap pop3 lmtp Es para especificar los protocolosa utilizar conDovecot. 4. Abrimos el archivo /etc/dovecot/conf.d/10-mail.conf encontramos la variable mail_locationyla fijamos conel siguiente valor: mail_location = maildir:/home/vmail/%d/%n/ #sudo cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig #sudo cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.orig #sudo cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig #sudo cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.orig #sudo cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.orig #sudo cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.orig #sudo cp /etc/dovecot/conf.d/auth-sql.conf.ext /etc/dovecot/conf.d/auth- sql.conf.ext.orig
  • 14. Esto le dice a Dovecot donde realizar las búsquedas de correos. En este caso los correos serán almacenados en /home/vmail/midominio.com/usuario/ dónde midominio.com y usuario son variables que son obtenidas desde la dirección de correo electrónico que interviene enla conexión. 5. Guardamos los cambios en el archivo /etc/dovecot/conf.d/10-mail.conf 6. Creamos el usuariovmail convalor 5000 para usuario idy grupo id, lohacemos conlossiguientes comandos. Este usuario será el encargado de leer el correo desde el servidor. #sudo groupadd -g 5000 vmail #sudo useradd -g vmail -u 5000 vmail -d /home/vmail 7. Creamos una carpeta conel nombre del dominio a utilizar. #sudo mkdir -p /home/vmail/midominio.com 8. Verificamos el propietario actual para carpeta /home/vmailconelsiguiente comando: #sudo ls -ld /home/vmail 9. Comprobamos que el propietario/grupo sean los siguientes: drwxrwxrw- 7 vmail vmail 4096 nov 14 11:36 /home/vmail 10. En caso de estar asignado a otro usuario, tomamos propiedad del directorio con el siguiente comando: #sudo chown -R vmail:vmail /home/vmail 11. Abrimos el archivo de autenticación de usuario para edición, ingresando el comandoen la línea inferior. Se necesita fijar la autenticación entonces solo usuarios autenticados puedan leer correos en el servidor. También se necesita configurar un socket de autenticación para el correo saliente desde que le dijimos a Postfix que Dovecot maneje eso. #sudo nano /etc/dovecot/conf.d/10-auth.conf 12. Desactivamos la autenticación por texto plano descomentando esta línea: disable_plaintext_auth = yes 13. Fijamos el mecanismo de autenticación modificando la siguiente línea: auth_mechanisms = plain login
  • 15. 14. Agregamos un signo numeral (#) para comentar la línea de inicio de sesión para usuarios del sistema: #!include auth-system.conf.ext 15. Habilitamos la autenticación por MariaDB/MySql al descomentar la línea auth- sql.conf.ext, esa sección debería verse así: #!include auth-system.conf.ext !include auth-sql.conf.ext #!include auth-ldap.conf.ext #!include auth-passwdfile.conf.ext #!include auth-checkpassword.conf.ext #!include auth-vpopmail.conf.ext #!include auth-static.conf.ext 16. Guardamos los cambios realizados en el archivo: /etc/dovecot/conf.d/10-auth.conf 17. Ahora debemos editar el archivo: /etc/dovecot/conf.d/auth-sql.conf.ext con nuestra información de autenticación. #sudo nano /etc/dovecot/conf.d/auth-sql.conf.ext 18. Verificamos que los dos siguientes apartados posean esta información a continuación: passdb { driver = sql args = /etc/dovecot/dovecot-sql.conf.ext } userdb { driver = static args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n } Explicación de los parámetros: • passdb, Le dice a Dovecot como encontrar los usuarios para autenticación. Le decimos a Dovecot que use MariaDB/MySql. En la línea args, le especificamos el archivo que contiene la información de conexiónMariaDB/MySql. • userdb,Le dice a Dovecot dónde buscar los correos de los usuarios en el servidor. Nosotros usamos un controlador estático ya que la ruta estará en el mismo formato para cualquiera. 19. Guardamosloscambiosenel archivo /etc/dovecot/conf.d/auth-sql.conf.ext
  • 16. 20. Actualizamos el archivo: /etc/dovecot/dovecot-sql.conf.ext connuestra información personalizada de conexión MariaDB. Abrimos el archivo para edición ingresando el siguiente comando: #sudo nano /etc/dovecot/dovecot-sql.conf.ext 21. Descomentamos y fijamos el controlador como se muestra en la parte inferior: driver = mysql 22. Descomentamos la línea connect y fijamos nuestra información de conexiónMariaDB: connect = host=127.0.0.1 dbname=postfixbd user=postfixuser password=postfix 23. Descomentamos la línea default_pass_scheme y la fijamos a SHA512-CRYPT default_pass_scheme = SHA512-CRYPT 24. Descomentamos la línea de consulta de contraseña y la fijamos como se muestra. Esta es una consulta mysql que Dovecot usa para extraer la contraseña desde la base de datos. password_query = SELECT email as user, password FROM virtual_users WHERE email='%u'; Guardamos los cambiosen el archivo /etc/dovecot/dovecot-sql.conf.ext 25. Cambiamos el propietario y grupo para el directorio /etc/dovecot/ a vmail y dovecot ingresando el siguiente comando: #sudo chown -R vmail:dovecot /etc/dovecot 26. Cambiamos los permisos sobre el directorio /etc/dovecotingresando el siguiente comando: #sudo chmod -R o-rwx /etc/dovecot 27. Abrimos el archivo de configuración de sockets ingresando el siguiente comando: #sudo nano /etc/dovecot/conf.d/10-master.conf 28. Configuramos los números de puertos correspondientes a IMAP = 143 y POP3 = 110 respectivamente como se muestra en la parte inferior. Pese a ser los números de puertos usados por defecto, estos servicios brindan comunicaciones seguras gracias al uso de TLS.
  • 17. Extracto del archivo: /etc/dovecot/conf.d/10-master.conf service imap-login { inet_listener imap { port = 143 } ... } service pop3-login { inet_listener pop3 { port = 110 } ... } 29. Encuentra la sección del servicio lmtp y usa la configuración que se muestra debajo. Se debe agregar unas pocaslíneas en el bloque de escucha unix (unix_listener).Enesta sección hace el socket LMTP en lugar de decirle a Postfix donde buscarlo. Extracto del archivo: /etc/dovecot/conf.d/10-master.conf service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } # Create inet listener only if you can't use the above UNIX socket #inet_listener lmtp { # Avoid making LMTP visible for the entire internet #address = #port = #} } 30. Localizamos la sección service auth y usamos la configuración que se indica en la parte inferior. Se necesita crear un nuevo bloque de escucha unix (unix_listener), modificar el existente, descomentar y fijar el usuario. Esta sección hace el socket de autorización donde dijimos a Postfix que realice las búsquedas. Extracto del archivo: /etc/dovecot/conf.d/10-master.conf service auth { # auth_socket_path points to this userdb socket by default. It's typically # used by dovecot-lda, doveadm, possibly imap process, etc. Its default # permissions make it readable only by root, but you may need to relax these
  • 18. # permissions. Users that have access to this socket are able to get a list # of all usernames and get results of everyone's userdb lookups. unix_listener auth-userdb { mode = 0600 user = vmail #group = } # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix #} # Auth process is run as this user. user = dovecot } 31. En la sección service auth-worker,descomentamos la línea user y la fijamos a vmail,como se muestra debajo, luego guardamos el archivo con los cambiosrealizados: Extracto del archivo: /etc/dovecot/conf.d/10-master.conf service auth-worker { # Auth worker process is run as root by default, so that it can access # /etc/shadow. If this isn't necessary, the user should be changed to # $default_internal_user. user = vmail } 31. Abrimos el archivo de configuración SSLpara edición ingresando el siguiente comando. En este le decimos a Dovecot donde encontrar nuestro certificado y llave, además de cualquier otro parámetro relacionado a SSL. #sudo nano /etc/dovecot/conf.d/10-ssl.conf 32. Forzamos a tus clientes a usar encriptación SSL para todas las conexiones. Fijamos ssl to required ssl = required 33. Verificamos que la configuración de ssl_cert tenga la ruta hacia el certificado y que la configuración de ssl_keytenga la ruta de nuestra llave. La configuración por defecto aquí usa un certificado de Dovecot previamente creado durante la fase de instalación, entonces lo dejaremos tal y comose encuentra.
  • 19. Extracto del archivo: /etc/dovecot/conf.d/10-ssl.conf ssl_cert = </etc/dovecot/private/dovecot.pem ssl_key = </etc/dovecot/private/dovecot.key 34. Guardamos los cambios en el archivo /etc/dovecot/conf.d/10-ssl.conf Dovecot ha sido ya configurado. Y procedemos a reiniciar el servicio Dovecot ingresando el siguiente comando: #sudo systemctl restart dovecot Fuente: https://library.linode.com/email/postfix/postfix2.9.6-dovecot2.0.19-mysql (Los pasos indicados en el enlace me fueron muy útiles años atrás, lo comparto como agradecimi ento y reconocimiento). Pruebas del servidor desde un cliente de correo Mozilla Thunderbird Para llevar a cabo las pruebas necesitamos lo siguiente: • Sistema operativo, usado como cliente (Entorno escritorio instalado, para facilitar la interacción). En este caso Windows 10 de 64 bits. • Cliente de correo electrónico: En este caso Mozilla Thunderbird versión 91.6.1 de 64 bits Pasos a seguir: 1. Abrimos Mozilla Thunderbird, nos muestra la pestaña: “Configuración de cuenta”, y como contenido las cajas de texto para ingresar la información concerniente a nuestra cuenta de correo, entoncestecleamos la información en este caso concerniente a: emai1@midominio.com tal y comose aprecia en la siguiente figura: Figura 18: Agregando los datos de la cuenta correspondientes a email1@midominio.com
  • 20. 2. Una vez pulsado en el botón “Continuar” nos muestra el siguiente cuadro de dialogo en el que debemos pulsar en “Iniciar sesión”. Figura 19: Cuadro de diálogo de confirmación para enviar sus credenciales. 3. En instantes muestra un cuadro informativo con el nombre de dominio de los servicios encontrados entrante y saliente. Es muy importante haber modificado el archivo hosts de Windows previamente, así se garantiza que se va a conectaral servidor local ya configurado. En este cuadro dejamos en IMAP tal y como se observa en la figura a continuación (O también se puede seleccionar POP3). Una vez seleccionada la opciónpulsamos en “Listo”. Figura 20: Cuadro informativo acerca de los servicios encontrados. 4. A continuación, presenta una ventana emergente con información del servidor (servicio) “Agregar excepción de seguridad”, ésta se presenta cuando el servidor se identifica con certificado SSLque bien es certificado firmado localmente o auto firmado, en cambio cuando el certificado es firmado por una entidad certificadora (Es decir compramos un certificado SSL validado) está ventana no se muestra, entonces para continuar pulsamos en “Confirmar excepción de seguridad”.
  • 21. Figura 21: Confirmando excepción de seguridad para certificado de imap.midominio.com. 5. Luego de unos segundos de haber agregado el certificado y validado la información de la cuenta de correo, muestra la siguiente pestaña indicandoque se ha agregado correctamente, pulsamos en “Finalizar”. Figura 22: Pestaña indicando ingreso exitosode cuenta de correo. 6. Al finalizar carga la pestaña con información del buzón del correo ingresado, ahora se debe agregar al menos una segunda cuenta de correo para poder interactuar, para ello se presiona la
  • 22. tecla “Alt”, lo que muestra la barra de menú principal del programa, señalamos el menú “Herramientas” y clicamosen la opción“Configuración de cuentas”. Figura 23: Accediendo a Configuración de cuentas. 7. En la parte izquierda en el panel localizamos el menú “Acciones de cuenta”, pulsamos sobre el, elegimos la opción“Agregar cuenta de correo”. Figura 24: Accediendo a la opción “Agregarcuenta de correo”. 8. Esto nos muestra el formulario para agregar una nueva cuenta de correo a Thunderbird, repetimos los pasos indicados anteriormente y nos presenta una ventana conel mensaje que el segundo correo se ha añadido exitosamente al programa. Pulsamos en “Finalizar” para salir.
  • 23. Figura 25: Ventana indicando que se agregócorrectamente la segunda cuenta de correo. 9. Ya contando con dos direcciones de correo registradas, desde la ventana principal, vamos al panel de la izquierda y damos click en email1@midominio.comvamosa crear un mensaje, para ello clicamosen la opcióndel panel derecho “Redactar un mensaje nuevo”. Figura 26: Ubicación del botón para “Redactor un mensaje nuevo”. 10. En la ventana de redacción tipeamos la información necesaria para el mensaje, como destinatario, un título para el asunto, y el contenido. Para terminar, pulsamos en el botón “Enviar”.
  • 24. Figura 27: Ventana de redacción del Usuario email1. 11. En este instante nos presenta una ventana de confirmación emergente, como explique anteriormente en la sección de IMAP, se debe a que el certificado que identifica al servidor es auto firmado, para esta guía estoy usando los certificados que fueron creados al momento de la instalación de los paquetes de este servidor. Pulsamos en el botón“Aceptar”. Figura 28: Confirmación emergente notificando que el Certificado de smtp.midominio.com es auto firmado. 12. A continuación,presenta la ventana coninformación del certificado para el servicio SMTP, como se indicóen pasos antes, está ventana y la anterior se muestran al usuario solo cuandose trabaja con certificados auto firmados, esto no ocurre cuando los certificados utilizados en la configuración del servidor provienen firmados por una (CA) Autoridad Certificadora válida para el cliente de correo. Como dato útil vale mencionar que similar a los navegadores web, los clientes de correo, al momento de instalarse o actualizarlos añaden a su base de datos local del programa un listado de CA confiables, entonces cada vez que se encuentran con un sitio, aplicación o servicio que utiliza certificados firmados por estos CA lo considerara seguro y por ende no muestra las ventanas emergentes que se indica en este documento guía. Pulsamos en “Confirmar excepción de seguridad”.
  • 25. Figura 29: Confirmando excepción de seguridad para certificado de smtp.midominio.com. Para continuar se debe pulsar otra vez en el botón “Enviar” para que el mensaje sea enviado. 13. Ya cuando el mensaje fue enviado el programa nos lleva a la ventana de contenido principal, desde ahí nos vamos al panel de la izquierda, damos clic en email2@midominio.comyluego en bandeja de entrada, efectivamente se ha recibido un correo. Figura 30: Bandeja de entrada de email2@midominio.com. 14. Le damos dos clicssobre el título del mensaje para proceder conla lectura, muestra una pestaña nueva conel título del mensaje y su contenido.
  • 26. Figura 31: Leyendo mensaje recibido por cuenta email2@midominio.com Si has llegado hasta aquí, en hora buena lo has conseguido, tener un servidor de correo básico funcional, cuyo dominio es: “midominio.com”,recuerda agregar más cuentas de correo en la base de datos según como se necesite, si se desea utilizar otros alias, o ampliar el número de cuentas de correo como, por ejemplo: administrador@midominio.com, se deben agregar estos a la base de datos en las tablas correspondientes. +HQU ULVWLDQ XHVWD 9HJD 'LJLWDOOVLJQHGE+HQU ULVWLDQXHVWD9HJD '1FQ +HQUULVWLDQXHVWD 9HJDJQ +HQUULVWLDQXHVWD 9HJDF ((FXDGRUO ( (FXDGRUR 0HJDSUR6VWHPV RX 7HFQRORJtDVGH,QIRUPDFLyQ H FULVWLDQFY#JPDLOFRP 5HDVRQ6RHODXWRUGHHVWH GRFXPHQWR /RFDWLRQ/RMD(FXDGRU 'DWH