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:
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:
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.