Webmail. Postfix(IV)
Warning: This information may be outdated. Please note the date of the post.
Descripción
(Tarea 10 y 12)
Vamos a instalar un webmail (Roundcube), sobre Debian Buster alojado en una máquina de OVH, para gestionar el correo del equipo mediante una interfaz web. Recibo y envío de correos.
RoundCube es un cliente de correo electrónico IMAP, de código abierto y escrito en PHP. Para instalar este webmail deberemos de tener en funcionamiento un servidor de correos.
1. Requisitos:
Tener en funcionamiento un servidor de web, en este caso usaremos Nginx
Un gestor de base de datos, usaremos MariaDB.
Servidor de correos, en este caso usaremos Postfix
Un servidor DNS, en este caso OVH se encarga de ello pero podemos configurarlo con Bind9, de forma que se cree un subdominio o dominio que se usará para roundcube, en este caso el subdominio será mail.iesgn05.es. que es un CNAME de nuestra máquina kiara.iesgn05.es.
2. Instalación de extensiones PHP
- Intalamos las extensiones que nos harán falta para roundcube
sudo apt-get install php php-cli php-gd php-intl php-fpm php-curl php-imagick php-mysql php-zip php-xml php-mbstring php-bcmath -y
- Establecer zona horaria en php.ini, según la nuestra evidentemente.
sudo sed -i 's/;date.timezone =/date.timezone = Europe\/Madrid/g' /etc/php/7.3/fpm/php.ini
- Reiniciar php-fpm
sudo systemctl restart php7.3-fpm
2. Configuración MariaDB. Crear usuario y base de datos para roundcube
- Entramos a MySQL como superusuario
sudo mysql -u root -p
- Creamos la base de datos para roundcube
CREATE DATABASE roundcube DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
- Creamos el usuario para la base de datos
CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'roundcube';
- Le otorgamos los permisos necesarios para la nueva base de datos
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube'@'localhost';
- Actualizamos los permisos
flush privileges;
- Salimos del MySQL
quit
3. Crear certificado para usar https con Letsencrypt
- Si no tenemos instalado LetsEncrypt lo instalamos
nano /etc/apt/sources.list
# Agregamos:
deb http://ftp.debian.org/debian buster-backports main
# Actualizamos:
apt-get update
# Instalamos:
apt install certbot -t buster-backports
# Una vez instlado comentamos la línea de backports de nuevo y volvemos a hacer un apt update, porque ya no nos hará falta.
- Paramos nuestro servidor web nginx
sudo systemctl stop nginx
- Creamos los certificados para correo.iesgn05.es
sudo certbot -d mail.iesgn05.es --agree-tos -m debian@iesgn05.es
4. Configuración de NGINX
Una vez instalado y configurado Nginx con un sitio web inicial y comprobado que el sitio web funciona vamos a configurar el virtualhost que va servir nuestro webmail.
- Crearemos un fichero de configuración nuevo
sudo nano /etc/nginx/sites-available/mail.iesgn05.es
- Le añadimos el siguiente contenido, como podemos ver hemos añadido la configuración pertinente para usar https y que sea un sitio de confianza. Tambien podemos ver que hemos añadido los parámetros pertinentes para que php funcione.
server {
listen 80;
server_name mail.iesgn05.es;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name mail.iesgn05.es;
root /var/www/roundcubemail;
index index.php index.htm index.html;
ssl_certificate /etc/letsencrypt/live/mail.iesgn05.es/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.iesgn05.es/privkey.pem;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php(?:$|/) {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_intercept_errors on;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
}
}
- Creamos el enlace
sudo ln -s /etc/nginx/sites-available/mail.iesgn05.es /etc/nginx/sites-enabled/
- Comprobamos la sintaxis
sudo nginx -t
5. Instalación de Roundcube
- Obtenemos el paquete
sudo wget https://github.com/roundcube/roundcubemail/releases/download/1.4.8/roundcubemail-1.4.8-complete.tar.gz -P /var/www/
- Lo descomprimimos en el documenroot
sudo tar zxvf /var/www/roundcubemail-1.4.8-complete.tar.gz -C /var/www/
- Renombramos el directorio
sudo mv /var/www/roundcubemail-1.4.8 /var/www/roundcubemail
- Le damos los permisos necesarios para nginx
sudo chown www-data:www-data -R /var/www/roundcubemail
- Comprobamos que la sintaxis de nginx es correcta, reinciamos el servicio y comprobamos que está en funcionamiento.
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl status nginx
- Nos dirigmos al navegador e introducimos la url: mail.iesgn05.es/installer
Nos saldrá el entorno de instalación de roundcube.

Le damos a NEXT y continuamos con la instalación.
Ahora vamos a crear la configuración:
- General configuration: Lo dejaremos por defecto.

- Logging & Debugging: Se trata de los ficheros de log, los dejaremos por defecto.

- Database setup: Aqui elegiremos la base de datos, El nombre de la base de datos, el usuario y la contraseña

Aquí se hará la configuración de IMAP, la dejaremos por defecto que coja el puerto 143.
Aquí se indicará la configuracion de SMTP

- Lo demás lo dejamos por defecto todo y le damos a ‘Create config’ y después a CONTINUE.
Ahora Vamos a comprobar la configuración, Inicializamos la base de datos para que se copien las tablas, en ‘Initialize database’

Ahora hacemos el test para el envío por SMTP

Comprobamos que lo recibimos

Por último comprobamos el IMAP

Una vez comprobado todo vamos a eliminar el instalador
sudo rm -fr /var/www/roundcubemail/installer/
Una vez eliminado vamos a abrir un navegador e indicar la url mail.iesgn05.es, nos pedirá el nombre de usuario y la contraseña para imap y se nos abrirá nuestro correo.

Probamos enviar y recibir correos desde Webmail y funciona correctamente




Fuentes: