GNU/Linux >> Tutoriales Linux >  >> Debian

Instale el cliente de correo web basado en WebMail Lite PHP en Debian 9.1

En esta guía, le mostraremos cómo instalar la última versión de WebMail Lite PHP en Debian 9.1 y le mostraremos cómo configurar la aplicación para obtener correos electrónicos del popular servicio de correo Yahoo! Correo. Usaremos Yahoo! Los servicios de correo solo tienen fines de demostración, pero siéntase libre de usar su propio dominio para el manejo del correo con WebMail Lite, ya que el procedimiento para agregar la configuración del dominio es prácticamente el mismo que para configurar Yahoo! Servicios de correo. Usaremos el cliente WebMail Lite como una interfaz para los servicios IMAP y SMTP proporcionados por Yahoo! cuenta y todos los correos electrónicos se manejarán localmente en nuestro propio servidor web privado.

WebMail Lite es un agente de usuario de correo o cliente web gratuito de código abierto escrito en PHP e implementado en Linux bajo los componentes Apache/Nginx, PHP y MySQL/MariaDB que forman la pila LEMP/LAMP. WebMail Lite se puede utilizar para acceder al correo a través de los protocolos IMAP/S y/o SMTP/S para sincronizar archivos de correo y/o enviar mensajes de correo.

Requisitos

  • Instalación mínima de Debian 9 en una máquina completa o en un servidor privado virtual.
  • Una dirección IP estática configurada para una de las tarjetas de interfaz de red de su sistema.
  • privilegios de raíz sudo para una cuenta local o remota o acceso directo a la cuenta raíz.
  • Un nombre de dominio, privado o público, según su implementación, con los registros DNS adecuados configurados.
  • Un servicio de correo debidamente configurado en sus instalaciones con acceso remoto a sus servicios IMAP y SMTP.

Configuración inicial

Antes de comenzar a instalar y configurar WebMail Lite desde la fuente en su propio servidor, primero asegúrese de que el sistema cumpla con todos los requisitos de software para compilar e instalar la aplicación. En el primer paso, actualice los repositorios de su sistema y los paquetes de software emitiendo el siguiente comando.

apt update
apt upgrade

En el siguiente paso, ejecute el siguiente comando para instalar algunas utilidades que se utilizarán para administrar aún más su sistema desde la línea de comandos.

apt install wget bash-completion unzip

A continuación, configure el nombre de su sistema ejecutando el siguiente comando. Reemplace su variable de nombre de host en consecuencia.

hostnamectl set-hostname mail

Verifique el nombre de host de la máquina y el archivo de hosts emitiendo los siguientes comandos.

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

Finalmente, reinicie el servidor Debian para aplicar las actualizaciones del núcleo y el nombre de host cambie correctamente.

systemctl reboot

WebMail Lite es un cliente de correo web escrito principalmente en lenguaje de programación del lado del servidor PHP. Para ejecutar scripts de archivo PHP de WebMail Lite, se debe instalar y operar en el sistema un servidor web, como un servidor Apache HTTP, y una puerta de enlace de procesamiento de PHP. Para instalar el servidor web Apache y el intérprete PHP junto con todos los módulos PHP necesarios para que la aplicación se ejecute correctamente, ejecute el siguiente comando en la consola de su servidor.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-xml php7.0-mcrypt php7.0-opcache php7.0-mbstring php7.0-curl

Después de que se hayan instalado Apache y PHP, pruebe si el servidor web está funcionando y escuchando las conexiones de red en el puerto 80 emitiendo el siguiente comando con privilegios de root.

netstat –tlpn

En caso de que la utilidad de red netstat no esté instalada de forma predeterminada en su sistema Debian, ejecute el siguiente comando para instalarla.

apt install net-tools

Al inspeccionar el resultado del comando netstat, puede ver que el servidor web Apache está escuchando las conexiones de red entrantes en el puerto 80. Para la misma tarea, también puede usar ss comando, que se instala automáticamente de forma predeterminada en Debian 9.

ss- tlpn

En caso de que tenga un firewall habilitado en su sistema, como la aplicación de firewall UFW, debe agregar una nueva regla para permitir que el tráfico HTTP pase a través del firewall emitiendo el siguiente comando.

ufw allow WWW

o

ufw allow 80/tcp

Si está utilizando iptables reglas sin procesar para administrar las reglas del cortafuegos en su servidor Debian, agregue la siguiente regla para permitir el tráfico entrante del puerto 80 en el cortafuegos para que los visitantes puedan navegar por la aplicación en línea.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

A continuación, habilite los siguientes módulos de Apache que se utilizarán para proteger algunas partes de la aplicación WebMail Lite, emitiendo el siguiente comando.

a2enmod rewrite
systemctl restart apache2

Finalmente, pruebe si la página web predeterminada del servidor web Apache se puede mostrar en los navegadores de sus clientes visitando la dirección IP de su máquina Debian o su nombre de dominio o servidor FQDN a través del protocolo HTTP. Si no conoce la dirección IP de su máquina, ejecute ifconfig o ip a comandos para revelar la dirección IP de su servidor. La página predeterminada de Apache para Debian se mostrará en su navegador.

http://tu_dominio.tld

Para instalar y acceder a la aplicación WebMail Lite a través del protocolo HTTPS que asegurará el tráfico para sus clientes, emita el siguiente comando para habilitar el módulo SSL del servidor web Apache y el archivo de configuración del sitio SSL.

a2enmod ssl
a2ensite default-ssl.conf

A continuación, abra el archivo de configuración del sitio SSL predeterminado de Apache con un editor de texto y habilite las reglas de reescritura de URL agregando las siguientes líneas de código después de DocumentRoot directiva, como se muestra en el siguiente ejemplo:

nano /etc/apache2/sites-enabled/default-ssl.conf

Extracto del archivo de configuración del sitio SSL:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Además, realice el siguiente cambio en la línea VirtualHost para que se vea como se muestra en el siguiente extracto:

        <VirtualHost *:443>

Cierre el archivo Apache SSL y abra /etc/apache2/sites-enabled/000-default.conf para editar y agregar las mismas reglas de reescritura de URL que para el archivo de configuración SSL. Inserte las líneas de código después de DocumentRoot declaración como se muestra en el siguiente ejemplo.

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Finalmente, reinicie el demonio Apache para aplicar todas las reglas configuradas hasta el momento y visite su dominio a través del protocolo HTTP. Debido a que está utilizando los pares de certificados autofirmados automáticamente emitidos por Apache en la instalación, debería mostrarse una advertencia de error en el navegador, como se muestra en la siguiente captura de pantalla.

systemctl restart apache2

https://tudominio.tld

Acepte la advertencia para continuar y ser redirigido a la página web predeterminada de Apache a través de HTTPS.

En caso de que la aplicación de firewall UFW bloquee las conexiones de red entrantes al puerto HTTPS, debe agregar una nueva regla para permitir que el tráfico HTTPS pase a través del firewall emitiendo el siguiente comando.

ufw allow 'WWW Full'

o

ufw allow 443/tcp

Si iptables es la aplicación de firewall predeterminada instalada para proteger su sistema Debian a nivel de red. Agregue la siguiente regla para permitir el tráfico entrante del puerto 443 en el firewall para que los visitantes puedan navegar por su nombre de dominio.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

En el siguiente paso, debemos realizar algunos cambios adicionales en el archivo de configuración predeterminado de PHP para garantizar que las siguientes variables de PHP estén habilitadas y la zona horaria de PHP la configuración está configurada correctamente y coincide con la ubicación geográfica de su sistema. Abra /etc/php/7.0/apache2/php.ini para editarlo y asegúrese de que las siguientes líneas estén configuradas de la siguiente manera. Además, inicialmente, haga una copia de seguridad del archivo de configuración de PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Busque, edite y cambie las siguientes variables en php.ini archivo de configuración:

file_uploads = On
allow_url_fopen = On
memory_limit = 128 M
upload_max_file_size = 64M
date.timezone = Europe/London

Aumentar memoria_límite como adecuada para admitir archivos adjuntos de gran tamaño y reemplazar la time.zone variable de acuerdo a su tiempo físico consultando la lista de zonas horarias proporcionada por PHP docs en el siguiente enlace http://php.net/manual/en/timezones.php

Si desea aumentar la velocidad de carga de las páginas de su sitio web a través del complemento OPCache disponible para PHP7, agregue la siguiente configuración de OPCache en la parte inferior del archivo de configuración del intérprete de PHP, como se detalla a continuación:

opcache.enable=1 
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Cierre el archivo de configuración php.ini y verifique si verifica el final del archivo de configuración de PHP para verificar si las variables se agregaron correctamente emitiendo el siguiente comando.

tail /etc/php/7.0/apache2/php.ini

Una vez que haya realizado todos los cambios explicados anteriormente, reinicie el demonio apache para aplicar los nuevos cambios emitiendo el siguiente comando.

systemctl restart apache2

Finalmente, cree un archivo de información de PHP ejecutando el siguiente comando y verifique si la zona horaria de PHP se ha configurado correctamente visitando el archivo de script de información de PHP desde un navegador en la siguiente URL, como se ilustra en la imagen a continuación. Desplácese hacia abajo hasta fecha configuración para verificar la configuración de la zona horaria de php.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

https://dominio.tld/info.php

El cliente de correo web WebMail Lite almacena diferentes configuraciones, como usuarios, sesiones, contactos y otros, en una base de datos RDBMS. En esta guía, configuraremos WebMail Lite para usar la base de datos MariaDB como backend. Ejecute el siguiente comando para instalar la base de datos MariaDB y el módulo PHP necesario para acceder a la base de datos mysql.

apt install mariadb-server php7.0-mysql

Una vez que haya instalado MariaDB, verifique que el daemon se esté ejecutando y escuchando conexiones en localhost, puerto 3306, ejecutando netstat o ss comando.

netstat –tlpn | grep mysql

Luego, inicie sesión en la consola MySQL y asegure la cuenta raíz de MariaDB emitiendo los siguientes comandos.

mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit

En el siguiente paso, asegure MariaDB ejecutando el script mysql_secure_installation . Mientras se ejecuta el script, se le harán una serie de preguntas diseñadas para asegurar la base de datos MariaDB, tales como:cambiar la contraseña raíz de MySQL, eliminar usuarios anónimos, deshabilitar los inicios de sesión raíz remotos y eliminar la base de datos de prueba. Ejecute el script emitiendo el siguiente comando y asegúrese de escribir sí a todas las preguntas formuladas para asegurar completamente el demonio MySQL. Use la salida del script a continuación, excepto como guía.

sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
 
You already have a root password set, so you can safely answer 'n'.
 
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
 
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
 
Remove anonymous users? [Y/n] y
 ... Success!
 
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
 
Disallow root login remotely? [Y/n] y
 ... Success!
 
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
 
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
 
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
 
Reload privilege tables now? [Y/n] y
 ... Success!
 
Cleaning up...
 
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
 
Thanks for using MariaDB!

Para probar la seguridad de MariaDB, intente iniciar sesión en la base de datos desde la consola sin contraseña de root. Se debe denegar el acceso a la base de datos si no se proporciona una contraseña para la cuenta raíz. Si se proporciona la contraseña, el proceso de inicio de sesión debe otorgarse a la consola MySQL, como se muestra en la siguiente captura de pantalla.

mysql -h localhost -u root
mysql -h localhost -u root –p

A continuación, inicie sesión en la consola de la base de datos de MariaDB, cree una base de datos para usarla para WebMail Lite y un usuario con una contraseña que se usará para administrar esta base de datos, emitiendo los siguientes comandos. Reemplace el nombre, el usuario y la contraseña de la base de datos de WebMail Lite según corresponda.

mysql –u root -p
create database webmaillite;
grant all privileges on webmaillite.* to 'webmail_user'@'localhost' identified by 'webmail_pass';
flush privileges;
exit

Para aplicar todos los cambios realizados hasta el momento, reinicie los demonios de MySQL y Apache y verifique si los demonios se están ejecutando emitiendo los siguientes comandos.

systemctl restart mysql apache2
systemctl status mysql apache2

Instalar WebMail Lite

Una vez que se cumplan todos los requisitos del sistema, visite la página web de WebMail Lite en https://afterlogic.org/download/webmail-lite-php y descargue el archivo comprimido del paquete zip más reciente mediante la ejecución de la utilidad wget, como se ilustra en el siguiente ejemplo.

wget https://afterlogic.org/download/webmail_php.zip

Una vez finalizada la descarga del archivo zip, extraiga el archivo comprimido zip de WebMail Lite y enumere los archivos extraídos emitiendo los siguientes comandos. Además, elimine el archivo index.html predeterminado instalado por el servidor web Apache en la ruta webroot y también elimine el archivo info.php creado anteriormente.

rm /var/www/html/index.html
rm /var/www/html/info.php
unzip webmail_php.zip
ls

Luego, copia recursivamente los archivos extraídos del webmail directorio a la ruta webroot de su dominio emitiendo el siguiente comando. Además, puede enumerar la ruta webroot para ver si todos los archivos del directorio de correo web se transfieren completamente a webroot.

ls webmail
cp -rf webmail/* /var/www/html/
ls -l /var/www/html/

A continuación, ejecute los siguientes comandos para otorgar al usuario de tiempo de ejecución de Apache permisos completos de escritura en la ruta raíz web. Usar ls Comando para enumerar los permisos para los archivos de instalación de Prestashop ubicados en el directorio /var/www/html/.

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

Continúe con el proceso de instalación de WebMail Lite abriendo un navegador y navegue por la dirección IP o el nombre de dominio de su servidor a través del protocolo HTTPS hasta /instalar directorio. En la primera pantalla de instalación, la secuencia de comandos del instalador de WebMail Lite realizará una serie de comprobaciones del sistema para determinar si todas las extensiones y módulos de PHP necesarios están instalados en su servidor y si el usuario de Apache tiene permisos de escritura para datos. directorio y al archivo de configuración, como se muestra en la siguiente imagen. Si se cumplen todos los requisitos del servidor, presione el botón Siguiente para pasar a la siguiente pantalla de instalación.

https://tudominio.tld/instalar

En la siguiente pantalla de instalación, lea y acepte los términos del acuerdo de licencia y haga clic en Acepto para continuar, como se ilustra en la imagen de abajo.

En la siguiente pantalla de instalación, elija el tipo de base de datos MySQL y especifique la dirección de host de la base de datos MySQL, el nombre de la base de datos y las credenciales creadas anteriormente para acceder a la base de datos de WebMail Lite. Pruebe la conexión de su base de datos presionando Prueba de base de datos y si la conexión a la base de datos MySQL es exitosa, marque Crear tablas de base de datos para que el instalador cree las tablas requeridas y presione el botón Siguiente para pasar a la siguiente pantalla de instalación.

En la siguiente pantalla de instalación, proporcione una contraseña segura para mailadm usuario y presione el botón siguiente para continuar. Este usuario se utilizará para administrar diferentes aspectos de WebMail Lite a través del panel de administración.

Ahora comprobaremos si la conexión a un servidor de correo funciona como se esperaba a través de los protocolos IMAP y SMP. Con fines de demostración, configuraremos y probaremos la conexión a los servicios de correo proporcionados por Yahoo! Correo. Puede cambiar el dominio de los servicios de correo en consecuencia. Para probar la conexión SMTP de Yahoo! Servidores de correo, escriba la siguiente dirección en el campo de host del servidor de correo electrónico, smtp.mail.yahoo.com , marque la casilla de verificación SMTP y presione el botón de prueba de conexión. Si la conexión a Yahoo! El servidor SMTP se estableció con éxito, un mensaje verde le informará que puede enviar correos electrónicos salientes a través de SMTP desde Yahoo! Correo.

Para comprobar si las conexiones IMAP cifradas están permitidas para Yahoo! Servidor de correo, ingrese imap.mail.yahoo.com:993 en el campo de host del servidor de correo electrónico, marque la casilla de verificación IMAP4 y presione el botón Probar conexión. Si la conexión a Yahoo! El servidor IMAP se estableció con éxito, un mensaje verde le informará que puede verificar y descargar los correos electrónicos entrantes a través de IMAPS desde Yahoo! Correo. Cuando termine, presione el botón siguiente para pasar al último paso de instalación.

Una vez completado el proceso de instalación, el instalador le informará que la aplicación web WebMail Lite se instaló correctamente y que debe eliminar el directorio del instalador de la raíz web de su dominio. Presione el botón Salir para salir de la pantalla e ir al panel de administración de WebMail Lite.

Navegue a la siguiente dirección para acceder al panel de administración de WebMail Lite. Reemplace el nombre de dominio o la dirección IP según corresponda.

https://tudominio.tld/panel de administración

Inicie sesión en el panel de administración con mailadm configuración de nombre de usuario y contraseña para este usuario durante el proceso de instalación, como se ilustra en la siguiente captura de pantalla.

Para configurar los servicios de correo de su dominio para WebMail Lite, vaya a Dominios -> Configuración predeterminada . Para fines de demostración, en esta guía, configuraremos WebMail Lite para administrar los correos electrónicos de Yahoo! cuenta de correo, pero siéntete libre de configurar tu propio dominio agregando las configuraciones requeridas.

En el campo de correo entrante, agregue la dirección IMAP de Yahoo! Servidor de correo:  imap.mail.yahoo.com y el puerto 993 . Además, marque Usar SSL casilla de verificación para recuperar correos electrónicos a través de una conexión segura.

En el campo de correo saliente, agregue la dirección SMTP de Yahoo! Servidor de correo:smtp.mail.yahoo.com y el puerto 465. Además, marque Usar SSL casilla de verificación para enviar correos electrónicos a través de una conexión segura.

En Autenticación SMTP, marque 'Usar el nombre de usuario/contraseña del correo entrante del usuario' para autenticarse en Yahoo! Servidores de correo SMTP.

Finalmente, también puede tener las opciones para agregar un nombre para su sitio, cambiar el tema de la aplicación WebMail Lite y permitir que los usuarios accedan a la configuración de la interfaz. Además, puede cambiar la configuración regional de su aplicación, como se ilustra en la siguiente captura de pantalla. Para guardar y aplicar la configuración, presione el botón Guardar.

El panel de administración de WebMail Lite ofrece otras opciones que se pueden usar para modificar la configuración de su aplicación, como habilitar el registro, cambiar mailadm nombre de cuenta y contraseña o integrar la interfaz de correo web con otros servicios externos. Cuando termine de configurar su configuración personalizada, presione el botón Cerrar sesión.

Para iniciar sesión en la aplicación WebMail Lite con un Yahoo! cuenta de correo, navegue hasta su nombre de dominio a través del protocolo HTTP y proporcione su Yahoo! Credenciales de correo como se muestra en la imagen de abajo. Los correos electrónicos de tu Yahoo! la cuenta aparecerá en la interfaz de WebMail Lite.

Para obligar a los visitantes a navegar por la interfaz de WebMail Lite a través del protocolo HTTPS y proteger el directorio de instalación y el archivo de versión, vaya a la consola de su servidor y cree un nuevo .htaccess archivo en la ruta raíz del documento de su servidor web con el siguiente contenido.

nano /var/www/html/.htaccess

.htaccess extracto del archivo:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

RewriteEngine on
Options -Indexes
# return a 403 forbidden error for install dir and version file
RewriteRule ^install/?$ - [F,L]
RewriteRule ^VERSION/?$ - [F,L]

Crea un nuevo .haccess archivo en el directorio de instalación con el siguiente contenido:

nano /var/www/html/install/.htaccess

.htaccess extracto del archivo:

RewriteEngine on
Options -Indexes
Require all denied

¡Eso es todo! Ha instalado y configurado con éxito WebMail Lite en Debian 9.1. Sin embargo, debido a que su servidor Apache HTTP utiliza certificados autofirmados para cifrar el tráfico entre el servidor y los navegadores de los visitantes, siempre se generará y mostrará un mensaje de advertencia en su navegador. En este caso, debe comprar un certificado emitido por una autoridad de certificación de confianza u obtener un par de certificados gratuitos de Let's Encrypt CA. Para otras configuraciones personalizadas con respecto a WebMail Lite, visite la página de documentación en la siguiente dirección:https://afterlogic.com/docs/webmail-lite


Debian
  1. Cómo instalar PHP 8.0 en Debian 11

  2. Cómo instalar PHP 8.0 en Debian 10 / Debian 9

  3. Instale el servidor Wireguard en Debian 10/11

  4. Instale el servidor OpenVPN en Debian 10/11

  5. Cómo instalar PHP 7.4 en Debian 10

Cómo instalar PyroCMS basado en Laravel en Debian 9

Cómo instalar el servidor LAMP en Debian 9

Pasos para instalar PHP 8 en Debian Server 10 | 9

Cómo instalar ImageMagick y su módulo PHP en el servidor Debian 11

Instale el cliente Nextcloud en Debian 11 Bullseye Linux

Cómo instalar el servidor y cliente Telnet en Debian 11 Bullseye linux