Posts Servidor de correos en los servidores cloud
Post
Cancel

Servidor de correos en los servidores cloud

Esta tarea consiste en instalar y configurar un servidor de correo similar al de cualquier organización, capaz de enviar y recibir directamente correo, almacenar los usuarios en LDAP, filtrar el correo en busca de virus o spam y servirlo a sus usuarios a través de los protocolos POP, IMAP y configurar un Webmail.

  • El servidor de correos se va a instalar en croqueta (debian)
  • Los servidores que necesites para realizar la práctica serán los del cloud: salmorejo (servidor web) y croqueta (servidor dns y ldap).

Tarea 1: Documenta en redmine una prueba de funcionamiento, donde envíes desde tu servidor local al exterior. Muestra el log donde se vea el envío. Muestra el correo que has recibido.

Primero vamos a necesitar instalar los paquetes necesarios para el uso del servidor de correo.

1
2
debian@croqueta:~$ sudo apt install postfix
debian@croqueta:~$ sudo apt install mailutils

A partir de aquí ya podemos configurar postfix para su funcionamiento.

Tendremos que abrir el puerto 25 en el cloud.

Colocamos el relayhost en el siguiente fichero de configuración:

1
2
3
debian@croqueta:~$ sudo nano /etc/postfix/main.cf

relayhost = babuino-smtp.gonzalonazareno.org

Vamos a enviar un correo:

1
2
3
4
5
debian@croqueta:~$ mail vazquezgarciaernesto@gmail.com
Cc: 
Subject: Prueba Practica Correo
Esto es una prueba para la practica de servicios

Para ver el log del envio pondremos lo siguiente:

1
2
3
4
5
6
7
debian@croqueta:~$ sudo tail -f /var/log/mail.log 

Feb  5 09:06:32 croqueta postfix/pickup[31377]: B3D2A20ECC: uid=1000 from=<debian@croqueta.ernesto.gonzalonazareno.org>
Feb  5 09:06:32 croqueta postfix/cleanup[31440]: B3D2A20ECC: message-id=<20200205080632.B3D2A20ECC@croqueta.ernesto.gonzalonazareno.org>
Feb  5 09:06:32 croqueta postfix/qmgr[30358]: B3D2A20ECC: from=<debian@croqueta.ernesto.gonzalonazareno.org>, size=476, nrcpt=1 (queue active)
Feb  5 09:06:32 croqueta postfix/smtp[31442]: B3D2A20ECC: to=<vazquezgarciaernesto@gmail.com>, relay=babuino-smtp.gonzalonazareno.org[192.168.203.3]:25, delay=0.22, delays=0.15/0.01/0.04/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as D4094C9D82)
Feb  5 09:06:32 croqueta postfix/qmgr[30358]: B3D2A20ECC: removed

Ahora nos comprobamos si hemos recibido el correo.

Tarea 2: Documenta en redmine una prueba de funcionamiento, donde envíes un correo desde el exterior (gmail, hotmail,…) a tu servidor local. Muestra el log donde se vea el envío. Muestra cómo has leído el correo.

Vamos a responder al correo que hemos recibido para que se envie desde el exterior a nuestro servidor para posteriormente poder leer el correo.

Para leer la respuesta solamente tendremos que poner lo siguiente:

1
2
3
4
debian@croqueta:~$ mail
"/var/mail/debian": 1 message 1 new
>N   1 Ernesto Vázquez G Wed Feb  5 09:15  87/4902  Re: Prueba Practica
? 1

Vamos a ver el log una vez se ha enviado la respuesta.

1
2
3
4
5
6
7
8
9
debian@croqueta:~$ sudo tail -f /var/log/mail.log

Feb  5 09:13:25 croqueta postfix/smtpd[31455]: connect from babuino-smtp.gonzalonazareno.org[192.168.203.3]
Feb  5 09:13:25 croqueta postfix/smtpd[31455]: 127BC20ECA: client=babuino-smtp.gonzalonazareno.org[192.168.203.3]
Feb  5 09:13:25 croqueta postfix/cleanup[31463]: 127BC20ECA: message-id=<CAEXXkz_Uw+jM2svcCkSmZhp1a+uujhJ46Mf7Ou=QL1qryOpX_A@mail.gmail.com>
Feb  5 09:13:25 croqueta postfix/smtpd[31455]: disconnect from babuino-smtp.gonzalonazareno.org[192.168.203.3] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Feb  5 09:13:25 croqueta postfix/qmgr[30358]: 127BC20ECA: from=<vazquezgarciaernesto@gmail.com>, size=4005, nrcpt=1 (queue active)
Feb  5 09:13:25 croqueta postfix/local[31464]: 127BC20ECA: to=<debian@croqueta.ernesto.gonzalonazareno.org>, relay=local, delay=0.22, delays=0.18/0.01/0/0.03, dsn=2.0.0, status=sent (delivered to mailbox)
Feb  5 09:13:25 croqueta postfix/qmgr[30358]: 127BC20ECA: removed

Tarea 3: Documenta en redmine una prueba de funcionamiento, donde envíes desde tu cliente de correos al exterior. ¿Cómo se llama el servidor para enviar el correo? (Muestra la configuración).

Debemos habilitar el envío de correo desde cliente de nuestra red. Para ello vamos a añadir nuestra red local en la directiva mynetworks:

1
2
3
debian@croqueta:~$ sudo nano /etc/postfix/main.cf

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 172.22.0.0/16

Una vex configurado la red local, es hora de usar un cliente de correos en mi caso voy a utilizar evolution.

Tendremos que indicarle el nombre de nuestro servidor de correos.

Vamos a ver la configuración:

Tarea 4: Documenta en redmine una prueba de funcionamiento, donde recibas un correo desde el exterior (gmail, hotmail,…) y lo leas en tu cliente de correo. Utiliza el protocolo POP. ¿Cómo se llama el servidor para enviar el correo? (Muestra la configuración). Muestra una prueba de funcionamiento de cómo funciona el protocolo POP.

Primero tenemos que abrir el puerto en el servidor:

A continuación vamos a instalar los paquetes necesarios:

1
debian@croqueta:~$ sudo apt-get install dovecot-pop3d

Editamos los siguientes ficheros de configuración:

1
2
3
4
debian@croqueta:~$ sudo nano /etc/postfix/main.cf

home_mailbox = Maildir/
mailbox_command =
1
2
3
debian@croqueta:~$ sudo nano /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no
1
2
3
4
debian@croqueta:~$ sudo nano /etc/dovecot/conf.d/10-mail.conf

#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:~/Maildir

Agregamos las entrada en el DNS:

1
2
3
4
debian@croqueta:~$ sudo nano /var/cache/bind/db.ernesto.gonzalonazareno.org 

imap            IN      CNAME   croqueta
pop3            IN      CNAME   croqueta

Por último solo queda configurar Evolution:

Una vez configurado, ya podremos enviar el correo para que lo pueda recibir el cliente.

Tarea 5: Documenta en redmine una prueba de funcionamiento, donde recibas un correo desde el exterior (gmail, hotmail,…) y lo leas en tu cliente de correo. Utiliza el protocolo IMAP. ¿Cómo se llama el servidor para enviar el correo? (Muestra la configuración). Muestra una prueba de funcionamiento de cómo funciona el protocolo IMAP.

Vamos a configurar en Evolution el tipo de servidor IMAP

Abrimos los puertos de IMAP en el cloud como hemos realizado anteriormente para POP.

Y como podemos apreciar ya tendremos el nuevo correo desde IMAP.

Comprobamos el log:

1
2
3
4
5
6
7
8
9
10
11
12
debian@croqueta:~$ sudo tail /var/log/mail.log

Feb 12 10:05:19 croqueta postfix/cleanup[14472]: F3EA220E4B: message-id=<CAEXXkz9TOGDbyr9vqS22DWHYg1fDOtbuErPeiaHYUFeH8Dfx_A@mail.gmail.com>
Feb 12 10:05:19 croqueta postfix/smtpd[14462]: disconnect from babuino-smtp.gonzalonazareno.org[192.168.203.3] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Feb 12 10:05:19 croqueta postfix/qmgr[14374]: F3EA220E4B: from=<vazquezgarciaernesto@gmail.com>, size=2984, nrcpt=1 (queue active)
Feb 12 10:05:19 croqueta postfix/local[14473]: F3EA220E4B: to=<debian@croqueta.ernesto.gonzalonazareno.org>, relay=local, delay=0.13, delays=0.1/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to maildir)
Feb 12 10:05:19 croqueta postfix/qmgr[14374]: F3EA220E4B: removed
Feb 12 10:08:39 croqueta postfix/anvil[14468]: statistics: max connection rate 1/60s for (smtp:192.168.203.3) at Feb 12 10:05:18
Feb 12 10:08:39 croqueta postfix/anvil[14468]: statistics: max connection count 1 for (smtp:192.168.203.3) at Feb 12 10:05:18
Feb 12 10:08:39 croqueta postfix/anvil[14468]: statistics: max cache size 1 at Feb 12 10:05:18
Feb 12 10:09:39 croqueta dovecot: imap-login: Login: user=<debian>, method=PLAIN, rip=172.22.0.50, lip=10.0.0.10, mpid=14489, session=<27kQVV2elsisFgAy>
Feb 12 10:09:43 croqueta dovecot: imap-login: Login: user=<debian>, method=PLAIN, rip=172.22.0.50, lip=10.0.0.10, mpid=14491, session=<Vz9GVV2emMisFgAy>

Tarea 6: Configura el cron para enviar correo al usuario root. Comprueba que están llegando esos correos al root. Crea un nuevo alias para que se manden a un usuario sin privilegios. Comprueban que llegan a ese usuario. Por último crea una redirección para enviar esos correo a tu correo de gmail.

Vamos a usar nano con el siguiente comando:

1
2
3
4
5
6
7
8
9
10
11
12
debian@croqueta:~$ crontab -e
no crontab for debian - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /usr/bin/joe
  2. /usr/bin/jstar
  3. /usr/bin/jpico
  4. /usr/bin/jmacs
  5. /bin/nano        <---- easiest
  6. /usr/bin/vim.basic
  7. /usr/bin/rjoe
  8. /usr/bin/vim.tiny
1
2
3
4
5
6
debian@croqueta:~$ crontab -e
MAILTO = root
2 * * * * /home/debian/auto-update.sh

no crontab for debian - using an empty one
crontab: installing new crontab

Permisos al script:

1
debian@croqueta:~$ sudo chmod 744 auto-update.sh 

Como podemos apreciar ya se está instalando la nueva tarea de cron.

Ahora vamos a configurar la redirección para enviar esos correo a tu correo de gmail.

1
2
3
root@croqueta:~# nano /etc/aliases

root: debian

Ejecutamos la instrucción newaliases para que los cambios tengan efecto.

1
root@croqueta:~# newaliases

Hacemos la prueba de la redireccion, enviando un correo a root:

1
2
3
4
root@croqueta:~# mail -s "Prueba de redireccion para root" root
Cc: 
Prueba
Esto es una prueba tarea 6 correo

Como podemos apreciar ya nos ha llegado el correo de root en nuestro usuario.

Ahora vamos a realizar el .forward en el usuario debian para que envie los correos a nuestro gmail

1
2
debian@croqueta:~$ nano .forward
vazquezgarciaernesto@gmail.com

Como podemos ver se ha realizado correctamente el script con cron y no ha enviado a nuestro correo.

This post is licensed under CC BY 4.0 by the author.