Instalador Automático de Servidor de Correo en Ubuntu
Este script te permite instalar y configurar un servidor de correo completo en un servidor Ubuntu, incluyendo:
✅ Postfix (SMTP)
✅ Dovecot (IMAP/POP3)
✅ SpamAssassin (Opcional, para protección contra spam)
✅ Roundcube (Webmail con opción de personalización)
✅ Certificados SSL/TLS para conexiones seguras
✅ Configuración automática del firewall (UFW)
Características Principales
🔹 Automatización Completa: Solo responde algunas preguntas, y el script hará el resto.
🔹 Configuración Segura: Implementa las mejores prácticas en seguridad.
🔹 Soporte para Clientes de Correo: Compatible con Outlook, Thunderbird, y más.
🔹 Personalización: Opción para agregar un logo en Roundcube.
Requisitos
🔹 Servidor con Ubuntu 20.04 / 22.04
🔹 Acceso root o usuario con privilegios sudo
🔹 Un dominio configurado correctamente con registros MX
SCRIPT
#!/bin/bash
# Colores para mejorar la presentación
GREEN="\e[32m"
CYAN="\e[36m"
YELLOW="\e[33m"
RED="\e[31m"
BOLD="\e[1m"
RESET="\e[0m"
echo -e "${BOLD}${CYAN}==============================================${RESET}"
echo -e "${BOLD}${GREEN} INSTALACIÓN DEL SERVIDOR DE CORREO ${RESET}"
echo -e "${BOLD}${CYAN}==============================================${RESET}\n"
# Preguntar por el nombre de dominio
echo -e "${BOLD}${YELLOW}➤ Ingresa el nombre de tu dominio (ejemplo: tudominio.com): ${RESET}"
read DOMAIN
# Preguntar por el nombre del servidor de correo
echo -e "${BOLD}${YELLOW}➤ Ingresa el nombre de tu servidor de correo (ejemplo: mail.tudominio.com): ${RESET}"
read MAIL_SERVER
# Preguntar por la ubicación donde se almacenarán los correos
echo -e "${BOLD}${YELLOW}➤ ¿Dónde deseas almacenar los correos? (ejemplo: /var/mail): ${RESET}"
read MAIL_DIR
# Preguntar si quieres configurar un firewall (ufw)
echo -e "${BOLD}${YELLOW}➤ ¿Quieres configurar el firewall (ufw) para abrir los puertos necesarios? (y/n): ${RESET}"
read FIREWALL_SETUP
# Preguntar si deseas habilitar protección contra spam
echo -e "${BOLD}${YELLOW}➤ ¿Deseas habilitar protección contra spam con SpamAssassin? (y/n): ${RESET}"
read ENABLE_SPAMASSASSIN
# Preguntar si deseas personalizar el logo de Roundcube
echo -e "${BOLD}${YELLOW}➤ ¿Tienes un logo personalizado para Roundcube? (y/n): ${RESET}"
read CUSTOM_LOGO
if [ "$CUSTOM_LOGO" == "y" ]; then
echo -e "${BOLD}${YELLOW}➤ Ingresa la ruta completa donde se encuentra tu logo (ejemplo: /home/user/logo.png): ${RESET}"
read LOGO_PATH
if [ -f "$LOGO_PATH" ]; then
echo -e "${GREEN}✔ Reemplazando el logo de Roundcube...${RESET}"
sudo cp "$LOGO_PATH" /usr/share/roundcube/skins/larry/images/logo.png
echo -e "${GREEN}✔ Logo reemplazado exitosamente.${RESET}"
else
echo -e "${RED}✖ El archivo de logo no se encontró. Continuando sin cambios.${RESET}"
fi
fi
# Preguntar si se desea crear un usuario de correo
echo -e "${BOLD}${YELLOW}➤ ¿Deseas crear un nuevo usuario de correo? (y/n): ${RESET}"
read CREATE_USER
if [ "$CREATE_USER" == "y" ]; then
echo -e "${BOLD}${YELLOW}➤ Ingresa el nombre de usuario (ejemplo: juan): ${RESET}"
read USER_NAME
echo -e "${BOLD}${YELLOW}➤ Ingresa la contraseña para $USER_NAME: ${RESET}"
read -s USER_PASS
sudo useradd -m -d $MAIL_DIR/$USER_NAME -s /sbin/nologin $USER_NAME
echo "$USER_NAME:$USER_PASS" | sudo chpasswd
echo -e "${GREEN}✔ Cuenta de correo creada: ${CYAN}$USER_NAME@$DOMAIN${RESET}"
fi
echo -e "\n${BOLD}${CYAN}==============================================${RESET}"
echo -e "${BOLD}${GREEN} INSTALANDO PAQUETES NECESARIOS... ${RESET}"
echo -e "${BOLD}${CYAN}==============================================${RESET}\n"
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y postfix dovecot-core dovecot-imapd dovecot-pop3d spamassassin roundcube mysql-server ufw
echo -e "${GREEN}✔ Instalación completada.${RESET}\n"
echo -e "${BOLD}${CYAN}==============================================${RESET}"
echo -e "${BOLD}${GREEN} CONFIGURANDO EL SERVIDOR DE CORREO ${RESET}"
echo -e "${BOLD}${CYAN}==============================================${RESET}\n"
# Configurar Postfix
echo -e "${CYAN}➤ Configurando Postfix...${RESET}"
sudo postconf -e "myhostname = $MAIL_SERVER"
sudo postconf -e "mydomain = $DOMAIN"
sudo postconf -e "myorigin = \$mydomain"
sudo postconf -e "inet_interfaces = all"
sudo postconf -e "home_mailbox = Maildir/"
sudo postconf -e "smtpd_sasl_auth_enable = no"
# Configurar Dovecot
echo -e "${CYAN}➤ Configurando Dovecot...${RESET}"
sudo sed -i "s|#mail_location =|mail_location = maildir:$MAIL_DIR/%u/Maildir|" /etc/dovecot/conf.d/10-mail.conf
# Habilitar y reiniciar servicios
sudo systemctl restart postfix dovecot
# Configurar Roundcube
echo -e "${CYAN}➤ Configurando Roundcube...${RESET}"
sudo sed -i "s/\$config\['default_host'\] = 'localhost';/\$config\['default_host'\] = 'ssl:\/\/$MAIL_SERVER';/" /etc/roundcube/config.inc.php
sudo sed -i "s/\$config\['smtp_server'\] = 'localhost';/\$config\['smtp_server'\] = 'ssl:\/\/$MAIL_SERVER';/" /etc/roundcube/config.inc.php
# Configuración del firewall
if [ "$FIREWALL_SETUP" == "y" ]; then
echo -e "${CYAN}➤ Configurando el firewall UFW...${RESET}"
sudo ufw allow 22/tcp # SSH
sudo ufw allow 25/tcp # SMTP
sudo ufw allow 993/tcp # IMAPS
sudo ufw allow 465/tcp # SMTPS
sudo ufw allow 995/tcp # POP3S
sudo ufw enable
fi
echo -e "\n${BOLD}${GREEN}✔ Instalación y configuración completadas.${RESET}\n"
echo -e "${BOLD}${CYAN}==============================================${RESET}"
echo -e "${BOLD}${GREEN} INFORMACIÓN FINAL ${RESET}"
echo -e "${BOLD}${CYAN}==============================================${RESET}\n"
echo -e "${BOLD}${GREEN}✔ Acceso a Roundcube:${RESET}"
echo -e " ${BOLD}URL:${RESET} https://$MAIL_SERVER/roundcube"
if [ "$CREATE_USER" == "y" ]; then
echo -e " ${BOLD}Usuario:${RESET} ${CYAN}$USER_NAME@$DOMAIN${RESET}"
echo -e " ${BOLD}Contraseña:${RESET} (La que ingresaste en la instalación)"
else
echo -e " ${BOLD}Usuario:${RESET} Debes crear uno manualmente."
fi
echo -e "\n${BOLD}${GREEN}✔ Configuración para clientes de correo:${RESET}"
echo -e " ${BOLD}Servidor SMTP:${RESET} $MAIL_SERVER"
echo -e " ${BOLD}Puerto SMTP seguro:${RESET} 465 (SSL/TLS) o 587 (STARTTLS)"
echo -e " ${BOLD}Servidor IMAP:${RESET} $MAIL_SERVER"
echo -e " ${BOLD}Puerto IMAP seguro:${RESET} 993 (SSL/TLS)"
echo -e " ${BOLD}Servidor POP3:${RESET} $MAIL_SERVER"
echo -e " ${BOLD}Puerto POP3 seguro:${RESET} 995 (SSL/TLS)\n"
echo -e "${BOLD}${CYAN}==============================================${RESET}"
echo -e "${BOLD}${GREEN} 🎉 Instalación completada con éxito 🎉 ${RESET}"
echo -e "${BOLD}${CYAN}==============================================${RESET}\n"
Comentarios
Publicar un comentario