Cómo instalar SOGo Groupware en Debian 10

SOGo es un servidor de trabajo en grupo gratuito, de código abierto y colaborativo, publicado bajo la licencia GNU GPL/LGPL v2 y superior. Viene con una interfaz basada en la web, sencilla y fácil de usar, y admite múltiples clientes nativos. Ofrece soporte nativo para Microsoft ActiveSync y también es compatible con dispositivos móviles como Apple iPhone, Android, Windows Phone y BlackBerry.

Características

  • Soporta múltiples idiomas.
  • Comparte tu correo, calendarios y libretas de direcciones con otros usuarios.
  • Establece alarmas para eventos importantes y recibe alertas directamente desde tu navegador.
  • Recibe notificaciones en el escritorio.
  • Redacta correos HTML con el completo editor de texto enriquecido en línea.
  • Soporta múltiples cuentas de correo.
  • Importa y exporta calendarios y buzones.
  • Soporta la autenticación de dos factores.

En este tutorial, te mostraremos cómo instalar el servidor de groupware SOGo en Debian 10.

Requisitos previos

  • Un servidor que ejecute Debian 10.
  • Una contraseña de root configurada el servidor.

Cómo empezar

Antes de empezar, se recomienda actualizar y poner al día tu servidor a la última versión. Puedes hacerlo ejecutando el siguiente comando:

apt-get update -y
apt-get upgrade -y

Una vez actualizado tu servidor, reinícialo para aplicar todos los cambios.

Instalar y configurar MariaDB

SOGo utiliza MariaDB/MySQL como base de datos. Así que tendrás que instalarlo en tu servidor. Puedes instalarlo simplemente ejecutando el siguiente comando:

apt-get install mariadb-server -y

Una vez instalado MariaDB, tendrás que asegurar la instalación de MariaDB. Puedes hacerlo ejecutando el siguiente script:

mysql_secure_installation

Responde a todas las preguntas que se muestran a continuación para establecer la contraseña de root:

Enter current password for root (enter for none):
OK, successfully used password, moving on...
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Una vez que tu MariaDB esté asegurada, inicia sesión en la MariaDB con el siguiente comando:

mysql

Una vez iniciada la sesión, crea una base de datos y un usuario para SOGo con el siguiente comando:

MariaDB [(none)]> CREATE DATABASE sogo;
MariaDB [(none)]> GRANT ALL ON sogo.* TO 'sogo'@'localhost' IDENTIFIED BY 'password';

A continuación, cambia la base de datos a SOGo y crea una tabla necesaria e inserta algunos valores con el siguiente comando:

MariaDB [(none)]> USE sogo;
MariaDB [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));
MariaDB [sogo]> INSERT INTO sogo_users VALUES ('admin', 'admin', MD5('password'), 'Hitesh', '[email protected]');

A continuación, vacía los privilegios y sal de MariaDB con el siguiente comando:

MariaDB [sogo]> flush privileges;
MariaDB [sogo]> exit;

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar SOGo

Por defecto, SOGo no está disponible en el repositorio por defecto de Debian 10, por lo que tendrás que descargarlo desde su sitio web oficial. Puedes ver todos los paquetes en lapágina de descarga de Sope y en la página de descarga de SogoTambiénpuedes descargarlo manualmente utilizando el siguiente comando:

wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sogo/sogo_5.0.1.20201110-1_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sogo/sogo-activesync_5.0.1.20201110-1_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sogo/sogo-dbg_5.0.1.20201110-1_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sogo/sogo-dev_5.0.1.20201110-1_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsbjson2.3-dev_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsbjson2.3_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-appserver4.9-dev_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-appserver4.9_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-core4.9-dev_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-core4.9_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-gdl1-4.9-dev_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-gdl1-4.9_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-ldap4.9-dev_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-ldap4.9_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-mime4.9-dev_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-mime4.9_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-xml4.9-dev_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope-xml4.9_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/libsope4.9-dev_4.9.r1664.20201103_all.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/sope4.9-appserver_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/sope4.9-dbg_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/sope4.9-gdl1-mysql_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/sope4.9-gdl1-postgresql_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/sope4.9-libxmlsaxdriver_4.9.r1664.20201103_amd64.deb
wget https://packages.inverse.ca/SOGo/nightly/5/debian/pool/buster/s/sope/sope4.9-stxsaxdriver_4.9.r1664.20201103_amd64.deb

Una vez descargados todos los paquetes, instálalos todos ejecutando el siguiente comando:

dpkg -i *.deb

Después de ejecutar el comando anterior, obtendrás un error de dependencia. Puedes instalar todas las dependencias que faltan ejecutando el siguiente comando:

apt-get install -f

Una vez instaladas todas las dependencias, inicia el servicio SOGo y permite que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start sogo
systemctl enable sogo

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar y configurar el servidor web Apache

A continuación, tendrás que instalar y configurar el servidor web Apache para servir a SOGo a través del puerto 80. Puedes instalarlo ejecutando el siguiente comando:

apt-get install apache2 -y

Una vez instalado el servidor web Apache, ejecuta el siguiente comando para habilitar todos los módulos necesarios:

a2enmod proxy proxy_http headers rewrite

A continuación, habilita el archivo de host virtual por defecto de SOGo con el siguiente comando:

a2enconf SOGo.conf

A continuación, tendrás que editar el archivo de configuración del host virtual de SOGo y sustituir la conexión https por http y 443 por el puerto 80:

nano /etc/apache2/conf-enabled/SOGo.conf

Busca las siguientes líneas:

  RequestHeader set "x-webobjects-server-port" "443"
  RequestHeader set "x-webobjects-server-url" "https://%{HTTP_HOST}e" env=HTTP_HOST

Y, sustitúyelas por las siguientes:

  RequestHeader set "x-webobjects-server-port" "80"
  RequestHeader set "x-webobjects-server-url" "http://%{HTTP_HOST}e" env=HTTP_HOST

Guarda y cierra el archivo y, a continuación, comprueba si el servidor Apache tiene algún error de sintaxis ejecutando el siguiente comando:

apachectl configtest

Si todo está bien, deberías obtener la siguiente salida:

Syntax OK

Por último, reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

También puedes verificar el estado del servicio Apache con el siguiente comando:

systemctl status apache2

Deberías obtener la siguiente salida:

? apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-11-12 04:17:37 UTC; 14s ago
     Docs: https://httpd.apache.org/docs/2.4/
  Process: 15278 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 15282 (apache2)
    Tasks: 55 (limit: 4701)
   Memory: 17.2M
   CGroup: /system.slice/apache2.service
           ??15282 /usr/sbin/apache2 -k start
           ??15283 /usr/sbin/apache2 -k start
           ??15284 /usr/sbin/apache2 -k start

Nov 12 04:17:37 debian10 systemd[1]: Starting The Apache HTTP Server...

En este punto, el servidor web Apache está instalado y configurado. Ahora puedes pasar al siguiente paso.

Configurar SOGo

A continuación, tendrás que configurar SOGo para que utilice MariaDB para la autenticación, definir el perfil de SOGo, la carpeta OCS, las sesiones COS y el nombre del superusuario. Puedes hacerlo editando el archivo de configuración principal de SOGo:

nano /etc/sogo/sogo.conf

Añade las siguientes líneas antes de la última línea }:

SOGoProfileURL = "mysql://sogo:password@localhost:5432/sogo/sogo_user_profile";
OCSFolderInfoURL = "mysql://sogo:password@localhost:5432/sogo/sogo_folder_info";
OCSSessionsFolderURL = "mysql://sogo:password@localhost:5432/sogo/sogo_sessions_folder";

SOGoPasswordChangeEnabled = YES;

SOGoUserSources =
  (
    {
      type = sql;
      id = users;
     viewURL = "mysql://sogo:[email protected]:3306/sogo/sogo_users";
     canAuthenticate = YES;
     isAddressBook = NO;
      userPasswordAlgorithm = md5;
    }
  );

  SOGoPageTitle = SOGo;
  SOGoVacationEnabled = YES;
  SOGoForwardEnabled = YES;
  SOGoSieveScriptsEnabled = YES;
  SOGoMailAuxiliaryUserAccountsEnabled = YES;
  SOGoTrustProxyAuthentication = NO;
  SOGoXSRFValidationEnabled = YES;

  SOGoSuperUsernames = (admin); // This is an array - keep the parens!

Guarda y cierra el archivo cuando hayas terminado y reinicia el servicio SOGo para aplicar los cambios:

systemctl restart sogo

Ahora puedes verificar el estado del servicio SOGo ejecutando el siguiente comando:

systemctl status sogo

Deberías obtener la siguiente salida:

? sogo.service - LSB: SOGo server
   Loaded: loaded (/etc/init.d/sogo; generated)
   Active: active (running) since Thu 2020-11-12 04:19:00 UTC; 3s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 15422 ExecStart=/etc/init.d/sogo start (code=exited, status=0/SUCCESS)
    Tasks: 4 (limit: 4701)
   Memory: 44.9M
   CGroup: /system.slice/sogo.service
           ??15493 /usr/sbin/sogod -WOWorkersCount 3 -WOPidFile /var/run/sogo/sogo.pid -WOLogFile /var/log/sogo/sogo.log
           ??15495 /usr/sbin/sogod -WOWorkersCount 3 -WOPidFile /var/run/sogo/sogo.pid -WOLogFile /var/log/sogo/sogo.log
           ??15496 /usr/sbin/sogod -WOWorkersCount 3 -WOPidFile /var/run/sogo/sogo.pid -WOLogFile /var/log/sogo/sogo.log
           ??15497 /usr/sbin/sogod -WOWorkersCount 3 -WOPidFile /var/run/sogo/sogo.pid -WOLogFile /var/log/sogo/sogo.log

Nov 12 04:19:00 debian10 systemd[1]: Starting LSB: SOGo server...
Nov 12 04:19:00 debian10 sogo[15422]: Starting SOGo: sogo.
Nov 12 04:19:00 debian10 systemd[1]: Started LSB: SOGo server.

En este momento, SOGo está iniciado y escuchando en el puerto 20000. Puedes comprobarlo con el siguiente comando:

ss -ntpl | grep -i sogo

Deberías obtener la siguiente salida:

LISTEN    0         5                127.0.0.1:20000            0.0.0.0:*        users:(("sogod",pid=15497,fd=3),("sogod",pid=15496,fd=3),("sogod",pid=15495,fd=3),("sogod",pid=15493,fd=3))

Una vez que hayas terminado, puedes pasar al siguiente paso.

Acceder a la interfaz web de SOGo

Ahora, abre tu navegador web y escribe la URL http://your-server-ip/SOGo para acceder a la interfaz web de SOGo. Serás redirigido a la siguiente página:

  • Inicio de sesión en SOGo

Proporciona tu nombre de usuario como admin y la contraseña como «password» y haz clic en el botón >. Deberías ver el panel de control por defecto de SOGo en la siguiente página:

Panel de control de SOGo Groupware

Conclusión

Enhorabuena! has instalado y configurado con éxito el software de grupo SOGo con Apache en Debian 10. Ahora puedes explorar SOGo para obtener más funciones y desplegarlo en tu entorno de producción. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...