SOGo est un serveur collaboratif gratuit, open-source et collaboratif publié sous GNU GPL/LGPL v2 et supérieur. Il est livré avec une interface Web simple et facile à utiliser et prend en charge plusieurs clients natifs. Il fournit 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.
Fonctionnalités
- Prend en charge plusieurs langues.
- Partagez vos e-mails, agendas et carnets d'adresses avec d'autres utilisateurs.
- Définissez des alarmes pour les événements importants et recevez des alertes directement depuis votre navigateur.
- Recevoir des notifications sur le bureau.
- Rédigez des e-mails HTML avec l'éditeur de texte enrichi en ligne complet.
- Prend en charge plusieurs comptes de messagerie.
- Calendrier et boîte aux lettres d'importation et d'exportation.
- Prend en charge l'authentification à deux facteurs.
Dans ce tutoriel, nous allons vous montrer comment installer le serveur de groupware SOGo sur Debian 10.
Prérequis
- Un serveur exécutant Debian 10.
- Un mot de passe root est configuré sur le serveur.
Mise en route
Avant de commencer, il est recommandé de mettre à jour et de mettre à niveau votre serveur vers la dernière version. Vous pouvez le faire en exécutant la commande suivante :
apt-get update -y
apt-get upgrade -y
Une fois votre serveur mis à jour, redémarrez-le pour appliquer toutes les modifications.
Installer et configurer MariaDB
SOGo utilise MariaDB/MySQL comme backend de base de données. Vous devrez donc l'installer sur votre serveur. Vous pouvez l'installer en exécutant simplement la commande suivante :
apt-get install mariadb-server -y
Une fois MariaDB installée, vous devrez sécuriser l'installation de MariaDB. Vous pouvez le faire en exécutant le script suivant :
mysql_secure_installation
Répondez à 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 votre MariaDB sécurisée, connectez-vous à MariaDB avec la commande suivante :
mysql
Une fois connecté, créez 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, changez la base de données en SOGo et créez une table requise et insérez 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, videz les privilèges et quittez MariaDB avec la commande suivante :
MariaDB [sogo]> flush privileges;
MariaDB [sogo]> exit;
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer SOGo
Par défaut, SOGo n'est pas disponible dans le référentiel par défaut de Debian 10, vous devrez donc le télécharger depuis leur site officiel. Vous pouvez voir tous les packages sur la page de téléchargement de Sope et la page de téléchargement de Sogo. Vous pouvez également le télécharger manuellement à l'aide de 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 tous les packages téléchargés, installez-les tous en exécutant la commande suivante :
dpkg -i *.deb
Après avoir exécuté la commande ci-dessus, vous obtiendrez une erreur de dépendance. Vous pouvez installer toutes les dépendances manquantes en exécutant la commande suivante :
apt-get install -f
Une fois toutes les dépendances installées, démarrez le service SOGo et activez-le au redémarrage du système avec la commande suivante :
systemctl start sogo
systemctl enable sogo
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer et configurer le serveur Web Apache
Ensuite, vous devrez installer et configurer le serveur Web Apache pour servir SOGo via le port 80. Vous pouvez l'installer en exécutant la commande suivante :
apt-get install apache2 -y
Une fois le serveur Web Apache installé, exécutez la commande suivante pour activer tous les modules requis :
a2enmod proxy proxy_http headers rewrite
Ensuite, activez le fichier d'hôte virtuel par défaut de SOGo avec la commande suivante :
a2enconf SOGo.conf
Ensuite, vous devrez 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
Recherchez les lignes suivantes :
RequestHeader set "x-webobjects-server-port" "443" RequestHeader set "x-webobjects-server-url" "https://%{HTTP_HOST}e" env=HTTP_HOST
Et les remplacer par ce qui suit :
RequestHeader set "x-webobjects-server-port" "80" RequestHeader set "x-webobjects-server-url" "http://%{HTTP_HOST}e" env=HTTP_HOST
Enregistrez et fermez le fichier puis vérifiez le serveur Apache pour toute erreur de syntaxe en exécutant la commande suivante :
apachectl configtest
Si tout va bien, vous devriez obtenir le résultat suivant :
Syntax OK
Enfin, redémarrez le service Apache pour appliquer les modifications :
systemctl restart apache2
Vous pouvez également vérifier l'état du service Apache avec la commande suivante :
systemctl status apache2
Vous devriez 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é. Vous pouvez maintenant passer à l'étape suivante.
Configurer SOGo
Ensuite, vous devrez configurer SOGo pour utiliser MariaDB pour l'authentification, définir le profil SOGo, le dossier OCS, les sessions COS et le nom du superutilisateur. Vous pouvez le faire en éditant le fichier de configuration principal de SOGo :
nano /etc/sogo/sogo.conf
Ajoutez 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!
Enregistrez et fermez le fichier lorsque vous avez terminé, puis redémarrez le service SOGo pour appliquer les modifications :
systemctl restart sogo
Vous pouvez maintenant vérifier l'état du service SOGo en exécutant la commande suivante :
systemctl status sogo
Vous devriez obtenir le résultat suivant :
? 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 démarré et écoute sur le port 20000. Vous pouvez le vérifier avec la commande suivante :
ss -ntpl | grep -i sogo
Vous devriez 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 vous avez terminé, vous pouvez passer à l'étape suivante.
Accéder à l'interface Web SOGo
Maintenant, ouvrez votre navigateur Web et tapez l'URL http://your-server-ip/SOGo pour accéder à l'interface utilisateur Web SOGo. Vous serez redirigé vers la page suivante :
Indiquez votre nom d'utilisateur d'administrateur en tant qu'administrateur et le mot de passe en tant que "password" puis cliquez sur le > bouton. Vous devriez voir le tableau de bord par défaut de SOGo sur la page suivante :
Conclusion
Toutes nos félicitations! vous avez installé et configuré avec succès le groupware SOGo avec Apache sur Debian 10. Vous pouvez maintenant explorer le SOGo pour plus de fonctionnalités et le déployer dans votre environnement de production. N'hésitez pas à me demander si vous avez des questions.