SOGO sobre Apache en Debian Bullseye como webmail (interfaz web) de Postfix + Dovecot + Sasl

Aca les dejo la instalación de SOGo para acceder a los correos de nuestro servidor de correos sobre Debian Bullseyes.   Espero les sea de utilidad.

SOGo es una aplicación muy buena para interfaz web de nuestros servidores de correos postfix+dovecot+sasl.

Se asume que el servidor de correos seguro (Imaps, smtps, sieve) es totalmente funcional, también que existe un Directorio Activo de windows.

El primer paso es instalar el sistema base de Debian Bullseyes.

Asignamos nombre al host

hostnamectl set-hostname sogo.tudominio.com.sv

Instalamos los siguientes paquetes que necesitaremos para descargar e instalar la llave publica del repositorio de sogo.

apt install gpg sudo wget

Luego agregamos el siguiente repositorio de sogo a nuestro archivo 

vi /etc/apt/sources.list 

deb https://packages.sogo.nu/nightly/5/debian/ bullseye bullseye

ejecutamos el siguiente comando

apt update

nos enviara el siguiente mensaje

Err:9 https://packages.sogo.nu/nightly/5/debian bullseye InRelease             
  Las firmas siguientes no se pudieron verificar porque su clave pública no está disponible: NO_PUBKEY F8A27B36A6E2EAE9
Des:10 http://deb.debian.org/debian bullseye/main Translation-en [6,239 kB]
Leyendo lista de paquetes... Hecho                                  
N: Repository 'http://deb.debian.org/debian bullseye InRelease' changed its 'Version' value from '11.4' to '11.5'
W: Error de GPG: https://packages.sogo.nu/nightly/5/debian bullseye InRelease: Las firmas siguientes no se pudieron verificar porque su clave pública no está disponible: NO_PUBKEY F8A27B36A6E2EAE9
E: El repositorio «https://packages.sogo.nu/nightly/5/debian bullseye InRelease» no está firmado.
N: No se puede actualizar de un repositorio como este de forma segura y por tanto está deshabilitado por omisión.
N: Vea la página de manual apt-secure(8) para los detalles sobre la creación de repositorios y la configuración de usuarios.

Ejecutamos los siguientes comandos para descargar la llave publica del repositorio de sogo

sudo wget -O- "https://keys.openpgp.org/vks/v1/by-fingerprint/74FFC6D72B925A34B5D356BDF8A27B36A6E2EAE9" | sudo gpg --dearmor | sudo apt-key add -

apt update

apt upgrade

Estamos listos para instalar sogo.

Lo primero es instalar nuestros servidores Apache y MariaDB

apt install mariadb-server apache2

Aseguramos MariaDB corriendo el siguiente script

mysql_secure_installation

apt install sogo


Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes NUEVOS:
  sogo
0 actualizados, 1 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 20.2 MB de archivos.
Se utilizarán 54.8 MB de espacio de disco adicional después de esta operación.
Des:1 https://packages.sogo.nu/nightly/5/debian bullseye/bullseye amd64 sogo amd64 5.7.1.20220919-1 [20.2 MB]
Descargados 20.2 MB en 4s (5,320 kB/s)
Seleccionando el paquete sogo previamente no seleccionado.
(Leyendo la base de datos ... 44401 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar .../sogo_5.7.1.20220919-1_amd64.deb ...
Desempaquetando sogo (5.7.1.20220919-1) ...
Configurando sogo (5.7.1.20220919-1) ...
======= Important SOGo post-installation note =======

SOGo database schemas are _not_ automatically upgraded by
the packaging system.

Please check the list of database schema upgrade scripts
inside /usr/share/doc/sogo/ and apply them if needed.

More details can be found in the Upgrading section:
https://sogo.nu/files/docs/SOGoInstallationGuide.html#_upgrading

Procesando disparadores para libc-bin (2.31-13+deb11u4) ...

 

Configurando la base de datos

ingresamos a mariadb 

# mysql

Ejecutamos las siguientes instrucciones.

CREATE DATABASE sogo;
GRANT ALL ON sogo.* TO 'sogo'@'localhost' IDENTIFIED BY 'tupassword';

USE sogo;
CREATE TABLE sogo_users (c_uid VARCHAR(10) PRIMARY KEY, c_name VARCHAR(10), c_password VARCHAR(32), c_cn VARCHAR(128), mail VARCHAR(128));

INSERT INTO sogo_users VALUES ('sosorio', 'sosorio', MD5('123456'), 'Salvador Osorio', 'sosorio@tudominio.com.sv');
flush privileges;
exit;

 

Configurando sogo modificamos el archivo de configuración

vi /etc/sogo/sogo.conf 


  /* Base de Datos */
  SOGoProfileURL = "mysql://sogo:tupassword@127.0.0.1:3306/sogo/sogo_user_profile";
  OCSFolderInfoURL = "mysql://sogo:tupassword@127.0.0.1:3306/sogo/sogo_folder_info";
  OCSSessionsFolderURL = "mysql://sogo:tupasswordi@127.0.0.1:3306/sogo/sogo_sessions_folder";
  OCSEMailAlarmsFolderURL = "mysql://sogo:tupassword@127.0.0.1:3306/sogo/sogo_alarms_folder";

  /* Mail */
  SOGoDraftsFolderName = INBOX.Drafts;
  SOGoSentFolderName = INBOX.Sent;
  SOGoTrashFolderName = INBOX.Trash;
  SOGoJunkFolderName = INBOX.Junk;
  SOGoIMAPServer = "imaps://mail.tudominio.com.sv:993/?ssl=YES";
  SOGoSMTPServer = "smtps://mail.tudominio.com.sv:465/?ssl=YES";
  SOGoSieveServer = "sieve://mail.tudominio.com.sv:4190/?tls=YES&tlsVerifyMode=allowInsecureLocalhost";
  SOGoMailDomain = tudominio.com.sv;
  SOGoMailingMechanism = smtp;
  SOGoForceExternalLoginWithEmail = YES;
  SOGoMailSpoolPath = /var/spool/sogo;
  NGImap4ConnectionStringSeparator = ".";

   SOGoUserSources = (
    {
      type = ldap;
      CNFieldName = cn;
      IDFieldName = sAMAccountName;
      UIDFieldName = sAMAccountName;
      baseDN = "ou=Usuarios,dc=tudominio,dc=local";
      bindDN = "cn=mail,DC=tudominio,DC=local";
      bindFields = (sAMAccountName, mail);
      bindPassword = tupassword_ldap;
      canAuthenticate = YES;
      displayName = "Contactos tudominio";
      hostname = "ldap://ad.tudominio.com.sv:389";
      filter = "mail = '*'";
      id = directory;
      isAddressBook = YES;
    }
  );

  WOPidFile = "/var/run/sogo/sogo.pid";

  // para Debian es necesario especificar el puerto
  SOGoMemcachedHost = "127.0.0.1:11211";

   SOGoUIxDebugEnabled = YES;  //esta opcion es necesaria para que funcionen los temas (theme.js)
    SOGoUIAdditionalJSFiles = (
      js/theme.js
    );

Modificamos el tema en el siguiente archivo

/usr/lib/GNUstep/SOGo/WebServerResources/js/theme.js


Configurando Apache

hacemos un enlace simbólico al archivo de configuración de Sogo

ln -s /etc/apache2/conf.d/SOGo.conf /etc/apache2/conf-available/

agregamos las siguientes lineas al archivo para redireccionar hacia https

vi /etc/apache2/conf-available/SOGo.conf

# Redirect / to /SOGo
RedirectMatch ^/$ https://tudominio.com.sv/SOGo
RewriteRule /SOGo(.*) https://%{HTTP_HOST}%{REQUEST_URI}

Configuramos el certificado ssl en el siguiente archivo

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

#reemplazamos las siguientes lineas con su certificado letsencrypt

SSLCertificateFile /etc/letsencrypt/live/tudominio.com.sv/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/tudominio.com.sv/privkey.pem

Finalmente ejecutamos los siguientes comandos

a2enmod proxy proxy_http headers rewrite ssl
a2enconf SOGo.conf

a2dissite 000-default.conf

a2ensite default-ssl.conf

systemctl restart apache2 sogo


Desde un navegador accedemos a nuestro sitio web https://dogo.tudominio.com.sv

Con un usuario y contraseña del directorio ya debería poder accesar a su webmail

Con un poco de investigación adicional pueden personalizar su instalación de sogo.

Espero le sirva, saludos y que Dios derrame bendiciones sobre usted.

Comentarios