🐋
Apuntes Sistemas
  • ⚓Presentación
  • 📊Sistemas y Servidores
    • Personalizar el prompt de Windows
    • Utilidad de manejo de apps para Windows
    • PRACTICA: Arranque dual Windows y Ubuntu
    • 🚧SysLinuxOS: el SO para ASIX
    • Comandos Linux
      • PRACTICA - Ejercicio de práctica comandos
      • 🚧Instalación de paquetes
      • Apuntes Linux: blue/red team
      • Ejemplos de bash
      • Listado de comandos de Linux
    • Comandos Windows
      • 🚧Apuntes Powershell
      • Bucles FOR con batch
      • Scripts de práctica de Windows
    • Prácticas con Windows 10
    • Configuración de netplan
    • Terminal shell
      • SSH
      • 🚧Ghostty
      • 🚧Warp: la terminal inteligente
      • tmux: paneles de terminal
      • Tabby: Mejorar terminal
      • Conexión SSH en red NAT con VirtualBox
      • TheFuck!: Corrección de comandos
      • Wave: Mejorar terminal Linux
      • 🚧Registros de sesiones
    • Instalación manual de Wordpress en CDMON
    • 🏗️Proxmox
    • 🚧TrueNAS
    • Docker
      • Instalación de Docker
      • Dockerfiles
      • Volúmenes de docker
      • Deployment web con Docker con ejemplos
        • 🚧PRACTICA: Node.js con docker
      • Docker Compose
        • Ejemplo 1: Implantación de Wordpress
        • Ejemplo 2: Implementación de servidor con Nginx, Flask y mySQL
        • Ejemplo 3: Implantación de onlyoffice
        • 🚧Ejemplo 4: Passbolt
        • 🚧PRACTICA: Creando una web de emulación de juegos con docker-compose
      • Monitorización con Grafana en Docker
      • Pi-hole con docker
      • Actividad clase: Deployment app
      • Proyectos self-hosted de docker
    • 🚧Ansible
      • Configuración de laboratorio de ansible
    • 🚧Monitorización de servicios y redes
      • Servicios y cronjobs
      • 1Panel
      • 🚧WatchYourLAN
      • 🚧Uptime-kuma
      • 🚧Netdata
      • 🚧Prometheus + Grafana + Loki
    • LDAP
      • 🚧Gestión gráfica de LDAP
      • Carpetas compartidas NFS
      • PRACTICA: Infraestructura LDAP
  • 🗃️Servicios
    • 🚧Servidor hosting público
    • DHCP
      • DHCP con Ubuntu
      • 🦖DHCP & DNS script
      • DHCP con Alpine
        • Alpine - configuración de red
    • DNS
      • 😡Comprobación DNS
      • Script para enumeración DNS
      • DNS con ubuntu server
      • 🏗️DNSmasq
      • 🚧Securizar servidor DNS
    • Web
      • IIS con Windows server
      • Apache
        • Instalación de LAMP en Ubuntu
          • Prueba de servidor LAMP
          • 🚧Configuración de seguridad de Ubuntu
          • Creación de un VirtualHost en LAMP
          • Creación de varios VirtualHosts en LAMP
          • 🚧Instalación por script de LAMP
        • Aplicaciones con LAMP
          • Instalación de WP en entorno LAMP
          • 🚧Instalación de MantisBT en LAMP
            • 👷Guía de MantisBT
          • 🚧Instalación de QDPM con LAMP
      • Nginx
        • Virtualhosts
        • Instalando Wordpress en nginx
      • 👷MEAN stack
      • 👷‍♂️Caddy
      • 🚧Plesk
      • 🚧Ajenti -Web interface
    • 🏗️Proxy
      • Nginx como proxy inverso y balanceador
      • 🚧Zoraxy
    • Mailing
      • 🚧Servidor Mail con cloudfare
      • 🚧Reenvío de correos de root
      • 🚧Roundcube como MUA
      • Comprobación ESMTP
      • 🚧Seguridad en mailing
      • 🚧Mailhog
    • 🏗️File transfer
      • 🚧FTP
      • Git
    • Sistemas de comunicación instantánea
      • Comunicación mediante CLI
      • Ejabberd - XMPP
        • 🚧Ejabberd con docker
      • 🚧Openfire - XMPP
      • 🚧Comunicaciones servidor-móvil
    • 🏗️Multimedia services
      • Stremio
      • Ver anime por CLI
      • Jellyfin
      • 🚧HLS sobre Apache
      • 🚧Servicio autohospedado de videoconferencia
      • 🚧Morphos: Conversor docs
      • 🚧Reproductores de música en CLI
      • 🚧Icecast - música en streaming
      • 🚧RTMP-HLS server
      • 🚧Guacamole
  • 🖱️Hardware
    • 🚧Identificando conectores
    • Curso de electrónica analógica
    • Alcanzar los 3200MHz con la RAM
    • Calculadora de cuellos de botella
    • 🚧PXE: Bootear sistemas en red
    • 🚧PRÁCTICA - Clonación de disco con Clonezilla
    • Logitech iFixit
  • 🕸️Redes
    • Apuntes IPv4 Alina
    • ¿Cómo diferenciar tantos elementos de red?
    • 🚧IPv6
    • PRÁCTICA - Subneteo con IPcalc en Linux
    • PRÁCTICA - Comandos de red en Windows
    • 🚧PRÁCTICA - Comandos de red en Linux
    • Herramientas de red
      • 🚧TCPDump: analizado de paquetes en red
      • PRÁCTICA - Netsh
      • 🚧PRÁCTICA - mtr.ping.pe
      • 🚧Netcat
    • Wireshark
    • VPN y escritorio remoto
      • Comunicación punto a punto con ngrok
      • 🚧VPN
    • Escaneo de red
      • PRÁCTICA - Mapeado de red con Draw.io
      • 🚧PRÁCTICA - Nmap/Zenmap
    • Redes inalámbricas
      • Wi-fi
        • 🚧PRÁCTICA - Configuración de router
        • 🚧PRÁCTICA - Como hacer un Wifi Heatmap
        • 🚧Seguridad de redes inalámbricas
        • PRÁCTICA - Crackear la contraseña del Wifi con WPA/WPA2
    • PRÁCTICA - Usar SSH en Cisco packet tracer
  • 🛑Ciberseguridad
    • 🚧Securizando un servidor Linux
      • Protégete de ataques de fuerza bruta con Fail2ban
      • Firewall
        • UFW (uncomplicated firewall)
          • GUFW - Interfaz gráfica de ufw
        • 🚧IPTables
        • 🚧PFsense
          • 🚧DMZ con PFsense
      • 🚧Passbolt: gestor de contraseñas autohospedado
      • 🚧Hashes y encriptación
      • 🚧Certificados SSL/TLS
      • Copias de seguridad
    • 🚧Alerta de escaneo de puertos
    • 🚧Google dorks
    • 🚧Enumeración DNS
    • Comandos destructivos de linux
    • Webs enseñanza cyber
    • Wireless Pentesting CheatSheet Github
    • The password game!
    • Personal Security Checklist
  • 🔌Arduino
    • Termómetro e higrómetros digitales y online con Arduino
    • Construyendo un coche multipropósito
      • Multi
      • Montaje del auto
    • Arduino con Sigfox para IoT
    • 10 proyectos de Arduino
  • 📚Recursos y libros
    • Media library: libros varios
    • Herramientas básicas de sysadmin
  • 🌍Sostenibilidad y digitalización
    • Portfolio curso digitalización MOOC
    • 🚧Explotación de recursos por IA
    • 🚧Nuevas tecnologias y comunicaciones
    • 🚧Enlaces sobre Inteligencia artificial
Con tecnología de GitBook
En esta página
  • Postfix
  • - Instalación
  • - Configuración
  • Dovecot
  • - Instalación
  • - Configuración
  • - Comprobación
  • Mailutils
  • - Instalación
  • Comprobación del funcionamiento
  • Configuración de usuarios de correo
  • Verificación
  • Prueba de envío y recepción de correo
  • Prueba con Thunderbird
  • Configuramos Thunderbird
  • Prueba de envío de Thunderbird
  • Prueba de recibo de Thunderbird
  • Conclusiones
  • Webgrafía
  1. Servicios

Mailing

AnteriorZoraxySiguienteServidor Mail con cloudfare

Última actualización hace 1 mes

Para esta práctica realizaremos un servidor de correos SMTP e IMAP y lo haremos funcionar con clientes de correos. A continuación te dejo el índice de la guía:

  • - (MDA)

Postfix

- Instalación

sudo apt update
sudo apt install postfix

Durante la instalación de Postfix, se te pedirá que elijas el tipo de configuración. Selecciona "Sitio de Internet" para configurar Postfix como un servidor de correo independiente. Como dominio usaremos el que configuramos en el servidor DNS, alexdns.local

- Configuración

Una práctica conveniente es hacer una copia de seguridad de los archivos de configuración que vayamos a modificar. Para ello, hacemos:

sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.BKP

Dentro de la configuración, asegúrate de que las siguientes líneas estén configuradas adecuadamente:

myhostname = mail.alexdns.local  # Cambia este por el nombre de tu servidor
mydomain = alexdns.local         # Cambia este por tu dominio
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all

#Añade esto:
home_mailbox = Maildir/

La última linea nos servirá para que Postfix acepte Maildir.

En correos electrónicos, existen dos formatos muy extendidos para almacenar el correo electrónico: Mbox y Maildir:

  • Mbox permite guardar todos los mensajes en un solo archivo

  • Maildir utiliza un directorio para guardar los mensajes en ficheros individuales.

En la configuración por defecto de Postfix y mailutils se utiliza el formato Mbox, pero ambos soportan Maildir, así que vamos a utilizar este formato.

Para que funcionen los cambios, se reinicia Postfix:

sudo systemctl restart postfix

Dovecot

- Instalación

Para la instalación de Dovecot, existen tres modulos principales (dovecot-core, dovecot-imapd y dovecot-pop3d) de las cuales instalaremos el software principal "dovecot-imapd" que es el que usaremos principalmente para el trabajo de descarga de correos en local:

sudo apt install dovecot-imapd

- Configuración

Para Dovecot, configuraremos la autenticación y, como antes, el uso del formato Maildir en sustitución de mBox. Una vez instalado podemos comprobar que Dovecot:

  • Está escuchando en los puertos 143 y 993 que corresponden a IMAP e IMAPS.

  • Utiliza el mismo log file /var/log/mail.log que Postfix (MTA).

La configuración está dividida en varios ficheros dentro del directorio /etc/dovecot .

Ahora vamos a configurar los mailboxes para aceptar Maildir. Para ello primero realizaremos la copia de seguridad del archivo de configuración:

sudo cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.BKP

Observa en este punto del archivo de configuración 10-mail.conf que nos dice explícitamente que podemos hacer el cambio. Así que vamos y editamos el archivo:

sudo nano /etc/dovecot/conf.d/10-mail.conf

y buscamos la directiva mail_location y descomentamos la que corresponde a esta:

mail_location = maildir:~/Maildir

y comentamos la que esta activa actualmente.

- Comprobación

Por último, reinicia el servicio para que los cambios surtan efecto:

sudo systemctl restart dovecot

Para mostrar la configuración actual de Dovecot en formato legible (incluyendo todos los parámetros y valores configurados en los archivos de configuración) podemos usar el siguiente comando:

dovecot -n

Mailutils

Mailutils nos servirá como MUA para poder enviar/recibir correos por línea de comandos. Maildir-utils son una serie de herramientas que nos facilitaran la navegación entre correos por terminal.

- Instalación

La instalación será como siempre:

sudo apt-get install mailutils maildir-utils

Existen alternativas de clientes de correos por terminal como son mutt, alpine o notmuch

Comprobación del funcionamiento

Configuración de usuarios de correo

Por ahora tendremos el handicap de que los usuarios de cliente de correo deben ser los mismos del servidor así que, para crear usuarios de correo, utilizamos el comando adduser para añadir el usuario "larios":

sudo adduser larios

Puedes revisar todos los usuarios creados con getent passwd por ejemplo

Verificación

Puedes verificar si Postfix y Dovecot están funcionando correctamente con los siguientes comandos:

sudo postfix check

Prueba de envío y recepción de correo

Puedes enviar un correo electrónico a una cuenta en tu servidor y luego comprobar si se ha recibido correctamente utilizando este cliente de correo electrónico usando comandos como mail.

Para probar el servicio de correo vía terminal basta escribir algo como lo siguiente:

echo "Este es el body del email" | mail -s "Este el asunto" ubuntu@alexdns.local

Si vamos al home del único usuario instalado en el sistema, "ubuntu", veremos que existe un directorio llamado Maildir que contiene la estructura básica de un buzón de correos. Vamos a la carpeta o directorio /home/ubuntu/Maildir/new y vemos que hay dos correos sin enviar.

Si vamos a comprobar algún correo en cuestión:

ls -R ~/Maildir

Veremos ahora el correo recien llegado y podemos leerlo con:

more /home/ubuntu/Maildir/new/16589874301.V587458I62M354.ubuntu

Prueba con Thunderbird

Para la prueba con Thunderbird deberás acceder a la otra MV cliente y configurar:

  • Thunderbird instalado

Configuramos Thunderbird

Dentro de la interfaz de configuración de usuario de Thunderbird, deberemos añadir cualquiera de los dos usuarios creados con el dominio correspondiente.

Al clicar directamente en aceptar, hará la autodetección del servidor, en ese momento, si todo ha ido bien, se mostrará algo parecido a lo siguiente:

Prueba de envío de Thunderbird

Ahora ya podemos dedicarnos a excribir y comunicarnos con el otro usuario creado:

Te puede poner varios problemas para enviarlo sin el correspondiente certificado pero obvia los mensajes y vuelve a intentarlo.

Desde el servidor, ahora podemos comprobar el mail. Si volvemos a /home/ubuntu/Maildir/new deberíamos ver un nuevo correo en almacenado en el inbox. Con un cat o un more podemos ver (a excepción de la imagen obviamente que s envía en base64 ) el contenido del mensaje:

El contenido del archivo será este:

Para revisar mejor el contenido del correo, podemos usar el comando mu view seguido de la ruta al archivo de mensaje dentro del directorio Maildir. Por ejemplo:

mu view /home/ubuntu/Maildir/new/1712214375.Vfd00I47d4dM557656.jupiter 

Deberías ver algo así:

Prueba de recibo de Thunderbird

Una vez completado esto, podemos hacer el proceso contrario; vamos a enviar correo del servidor por comandos al usuario con el cliente de Thunderbird conectado.

Empezamos por escribir un correo y le adjuntaremos algún archivo creado:

sudo nano laranamagica.txt

Ahora pasamos a crear el mail con el adjunto:

mail -A /home/laranamagica.txt larios@alexdns.local

Esto nos desplegará las opciones;

  1. lo primero que te pedirá será usuarios en copia (CC), pulsa Enter al terminar.

  2. lo siguiente ingresar el asunto del correo electrónico en la primera línea, pulsa Enter al terminar.

  3. Finalmente, escribir el cuerpo del correo electrónico, pula Enter y en la nueva linea, pulsa Ctrl+D para enviar. El procedimiento sería algo así:

Cc: [Enter]
Subject: Mira lo que hace la rana![Enter]
Para verlo tendrás que abrir el adjunto.[Enter]
[Enter]
Ánimo![Return]
[Ctrl+D]

Al guardar no saldrá ningún mensaje de completado pero si vamos al cliente de Thunderbird, deberíamos ver ahora el mensaje:

PRACTICA: Habilita notificaciones de inicio de sesión por correo/alerta

Configurar un pequeño script para generar una alerta cada vez que alguien inicia sesión como root a través de SSH es una de las mejores cosas que puedes hacer para controlar las conexiones entrantes de SSH.

Entonces, primero abre el archivo de configuración SSH:

sudo nano /etc/ssh/sshd_config

Luego, agrega o modifica las siguientes líneas para configurar notificaciones por correo:

# Habilita la notificación de inicio de sesión por correo
UsePAM yes

# Especifica la dirección de correo para recibir notificaciones
AddressNotificationAddress correo@dominio.com

Una vez configurado Postfix, puedes utilizar el servidor de correo para enviar notificaciones de inicio de sesión.

No olvides guardar los cambios realizados en /etc/ssh/sshd_config y reiniciar el servicio SSH para que los cambios surtan efecto:

sudo service ssh restart

Conclusiones

Como ves, tener un servidor de correos es una utilidad muy interesante y divertida para nuestro servidor. Aunque la mayoría de empresas externalicen el servidor de correo con outlook, gmail o cualquier servicio de dominio propio, como administradores de sistemas es importante saber manejar estos protocolos y software.

Webgrafía

Asegurar que el con de la MV servidor da red al cliente

.

Como curiosidad, en la siguiente pagina puedes revisar el estado de tu dominio de correo:

DHCP
DNS
Usuario nuevo creado con nombre de usuario, nombre completo y password
https://mxtoolbox.com/
https://punkymo.gitbook.io/miwiki/servicios/servidores-de-correo/clientes-de-correo
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-20-04-es
https://mailutils.org/manual/html_section/mail.html
https://www.baeldung.com/linux/mail-system-mailutils
https://jamon.ca/articles/how-to-install-and-configure-postfix-on-ubuntu-22-04/
🗃️
Postfix como servidor de correo SMTP - (MTA)
Dovecot-imapd como servidor IMAP
Mailutils como cliente para el terminal (MUA)
Thunderbird como cliente, en un entorno gráfico (MUA)
Page cover image
Funcionamiento servicio de mailing
El dominio deberá ser el configurado en el dns
Esto está usando la información de Dovecot con el protocolo IMAP configurado y Postfix para el SMTP, ambos con STARTTLS básico.
A resultas de lo anteriormente mencionado, saldrá este mensaje de desconfianza del certificado, más adelante veremos como implementar un certificado SSL útil. De momento confirmaremos.
Si todo ha ido bien, veremos este mensaje
Ejemplo de envío de mail
En el Maildir veremos todos los mensajes almacenados
Como ves, no solo contiene el mensaje, sino toda la información relativa al email en un solo archivo como ya se ha explicado con el formato Maildir.
Como ves, la imagen sigue sin poder reproducirse. Con maildir-utils ahora vemos solo el contenido del mensaje con la información básica.
Añadamos un archivo de ASCII art por ejemplo
Como ves, el adjunto se encuentra en la parte inferior del mensaje.