Comment installer le logiciel de groupe SOGo sur Debian 10

SOGo est un serveur de groupware gratuit, open-source et collaboratif publié sous la licence GNU GPL/LGPL v2 et plus. Il est doté d’une interface Web simple et facile à utiliser et prend en charge plusieurs clients natifs. Il offre une prise en charge native de Microsoft ActiveSync et prend également en charge les appareils mobiles tels que Apple iPhone, Android, Windows Phone et BlackBerry.

Caractéristiques

  • Prend en charge plusieurs langues.
  • Partage ton courrier, tes calendriers et tes carnets d’adresses avec d’autres utilisateurs.
  • Définis des alarmes pour les événements importants et sois alerté directement depuis ton navigateur.
  • Reçois des notifications sur ton bureau.
  • Compose du courrier HTML avec l’éditeur de texte riche en ligne complet.
  • Prend en charge plusieurs comptes de messagerie.
  • Importe et exporte le calendrier et la boîte aux lettres.
  • Prend en charge l’authentification à deux facteurs.

Dans ce tutoriel, nous allons te montrer comment installer le serveur groupware SOGo sur Debian 10.

Conditions préalables

  • Un serveur fonctionnant sous Debian 10.
  • Un mot de passe root est configuré sur le serveur.

Démarrage

Avant de commencer, il est recommandé de mettre à jour et de mettre à niveau ton serveur à la dernière version. Tu peux le faire en exécutant la commande suivante :

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

Une fois que ton serveur est mis à jour, redémarre-le pour appliquer toutes les modifications.

Installe et configure MariaDB

SOGo utilise MariaDB/MySQL comme backend de base de données. Tu devras donc l’installer sur ton serveur. Tu peux l’installer en exécutant simplement la commande suivante :

apt-get install mariadb-server -y

Une fois que MariaDB est installé, tu devras sécuriser l’installation de MariaDB. Tu peux le faire en exécutant le script suivant :

mysql_secure_installation

Réponds à toutes les questions comme indiqué ci-dessous pour définir le mot de passe 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

Une fois que ton installation MariaDB est sécurisée, connecte-toi à MariaDB avec la commande suivante :

mysql

Une fois connecté, crée une base de données et un utilisateur pour SOGo avec la commande suivante :

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

Ensuite, change la base de données pour SOGo et crée une table nécessaire et insère quelques valeurs avec la commande suivante :

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]');

Ensuite, vide les privilèges et sors de MariaDB avec la commande suivante :

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

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installe SOGo

Par défaut, SOGo n’est pas disponible dans le référentiel par défaut de Debian 10. Tu devras donc le télécharger depuis leur site officiel. Tu peux voir tous les paquets sur lapage de téléchargement de Sope et la page de téléchargement de SogoTupeux aussi le télécharger manuellement en utilisant la commande suivante :

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

Une fois que tous les paquets sont téléchargés, installe-les tous en exécutant la commande suivante :

dpkg -i *.deb

Après avoir exécuté la commande ci-dessus, tu obtiendras une erreur de dépendance. Tu peux installer toutes les dépendances manquantes en exécutant la commande suivante :

apt-get install -f

Une fois que toutes les dépendances sont installées, démarre le service SOGo et active-le pour qu’il démarre au redémarrage du système avec la commande suivante :

systemctl start sogo
systemctl enable sogo

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installe et configure le serveur Web Apache

Ensuite, tu devras installer et configurer le serveur Web Apache pour servir SOGo via le port 80. Tu peux l’installer en exécutant la commande suivante :

apt-get install apache2 -y

Une fois le serveur Web Apache installé, exécute la commande suivante pour activer tous les modules requis :

a2enmod proxy proxy_http headers rewrite

Ensuite, active le fichier d’hôte virtuel par défaut de SOGo avec la commande suivante :

a2enconf SOGo.conf

Ensuite, tu devras modifier le fichier de configuration de l’hôte virtuel SOGo et remplacer la connexion https par http et 443 par le port 80 :

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

Trouve les lignes suivantes :

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

Et, remplace-les par les lignes suivantes :

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

Sauvegarde et ferme le fichier puis vérifie que le serveur Apache n’a pas d’erreur de syntaxe en exécutant la commande suivante :

apachectl configtest

Si tout va bien, tu devrais obtenir la sortie suivante :

Syntax OK

Enfin, redémarre le service Apache pour appliquer les modifications :

systemctl restart apache2

Tu peux aussi vérifier l’état du service Apache avec la commande suivante :

systemctl status apache2

Tu devrais obtenir le résultat suivant :

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

À ce stade, le serveur Web Apache est installé et configuré. Tu peux maintenant passer à l’étape suivante.

Configurer SOGo

Ensuite, tu devras configurer SOGo pour utiliser MariaDB pour l’authentification, définir le profil SOGo, le dossier OCS, les sessions COS et le nom du superutilisateur. Tu peux le faire en modifiant le fichier de configuration principal de SOGo :

nano /etc/sogo/sogo.conf

Ajoute les lignes suivantes avant la dernière ligne } :

SOGoProfileURL = "mysql://sogo:[email protected]:5432/sogo/sogo_user_profile";
OCSFolderInfoURL = "mysql://sogo:[email protected]:5432/sogo/sogo_folder_info";
OCSSessionsFolderURL = "mysql://sogo:[email protected]: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!

Sauvegarde et ferme le fichier lorsque tu as terminé puis redémarre le service SOGo pour appliquer les modifications :

systemctl restart sogo

Tu peux maintenant vérifier l’état du service SOGo en exécutant la commande suivante :

systemctl status sogo

Tu devrais obtenir la sortie suivante :

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

À ce stade, SOGo est lancé et écoute sur le port 20000. Tu peux le vérifier avec la commande suivante :

ss -ntpl | grep -i sogo

Tu devrais obtenir le résultat suivant :

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))

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Accède à l’interface Web de SOGo

Maintenant, ouvre ton navigateur Web et tape l’URL http://your-server-ip/SOGo pour accéder à l’interface Web de SOGo. Tu seras redirigé vers la page suivante :

  • Connexion SOGo

Indique ton nom d’utilisateur admin comme admin et le mot de passe comme « password » puis clique sur le bouton >. Tu devrais voir le tableau de bord par défaut de SOGo sur la page suivante :

Tableau de bord SOGo Groupware

Conclusion

Félicitations ! Tu as réussi à installer et à configurer le groupware SOGo avec Apache sur Debian 10. Tu peux maintenant explorer SOGo pour plus de fonctionnalités et le déployer dans ton environnement de production. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...