Ou comment remplacer Slack par de l’open source.
Aujourd’hui, petit article autour d’une solution Opensource très intéressante.
Pour ceux ou celles qui travaillent dans une entreprise informatique et qui ont un besoin de communiquer de façon générale ou compartimentée, il existe une solution qui se prénomme Slack.
C’est une messagerie de type collaboratif.
Slack est très bien, ergonomique, facile d’utilisation et presque gratuit.
Mais Slack à deux défauts majeurs pour moi.
Un, il est gratuit jusqu’à un certain point, vous ne pouvez pas remonter trop loin dans le temps de vos posts et certaines fonctions ne sont disponibles que moyennant un abonnement.
Le deuxième point qui me perturbe pour une messagerie collaborative entreprise, c’est son coté propriétaire, rien ne peut vous garantir une parfaite confidentialité des données qui y transitent.
Les serveurs et le soft étant la propriété de Slack Technologies Limited.
Voila pourquoi j’ai décidé de vous montrer une alternative que j’utilise à titre personnel et que je ne peux que recommander.
Il s’agit de Mattermost.
Mattermost n’est ni plus ni moins qu’un Slack Opensource.
Il peut être utilisé sur, Windows, MacOs, Linux, Android et IOS.
Soit grâce à un navigateur web, une application en dur ou avec votre smartphone via une app dédiée.
Vous pouvez, si l’envie est la, monter votre propre messagerie d’entreprise, dans vos serveurs ou Datacenter.
Je vous laisse jeter un œil sur leur page Web.
Dans cet article, nous allons donc mettre en place sur une sandbox OVH, un serveur Mattermost.
Cette présentation se découpera en deux parties.
La première partie concernera la mise en place de l’application ainsi que son utilisation.
la deuxième s’axera sur la partie sécurité des transactions.
1er Partie
Mise en place de la BDD
Pour commencer, il faudra bien entendu disposer d’une sandbox ou d’une vm avec un accès à l’extérieur.
Personnellement, je vais utiliser un vps OVH.
Je pouvais le faire chez AWS mais la pour le coup, c est OVH qui s’y colle.
Avant toute chose, il serait bon de disposer d’un nom de domaine ( pas obligatoire pour ce Tuto) pour faciliter l’utilisation de Mattermost.
La première chose à faire est de mettre à jour votre vm/vps.
Ensuite nous allons installer la base de donnée.
Pour le tuto, Mysql sera ma BDD (c est possible avec Postgres aussi).
1 – Installation de Mysql
sudo apt install mysql-server
2 – On sécurise à minima celle-ci avec :
mysql_secure_installation
3 – On se log à la BDD
sudo mysql
4 – On va créer l’utilisateur qui servira à Mattermost ainsi que le mot de passe
J’utilise le nom « mattermost » ainsi que le password « 123456 » pour l’exemple.
create user 'mattermost'@'%' identified by '123456';
5 – On se cree la BDD qui servira à Mattermost
create database mattermost;
6 – On donne les droits de l’utilisateur précédemment créé à la BDD.
grant all privileges on mattermost.* to 'mattermost'@'%';
6.1 – Ou pour un truc plus safety (on précise les actions que peut réaliser l’utilisateur « mattermost » au sein de la BDD).
GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE ON mattermost.* TO 'mattermost'@'%';
7 – On quitte la BDD
exit;
2e partie
Installation de Mattermost
1 – Téléchargement de la dernière version de Mattermost en date du 03/2020.
wget https://releases.mattermost.com/5.20.1/mattermost-5.20.1-linux-amd64.tar.gz
2 – On décompresse l’archive
tar xvf mattermost-5.20.1-linux-amd64.tar.gz
3 – On déplace le dossier « mattermost » vers /opt
sudo mv mattermost /opt/
4 – On va créer le dossier qui va recevoir les fichiers comme les images ou tous les autres types de fichiers.
Bien s’assurer d’avoir suffisamment d’espace disque avant de le créer.
Ou d’avoir utiliser lvm lors de la création des disques.
C’est toujours plus facile de le faire maintenant qu’après (sauf avec lvm)
sudo mkdir /opt/mattermost/data
5 – Ici, on va créer le group et le user « mattermost » pour permettre au service de fonctionner et de se lancer.
sudo useradd --system --user-group mattermost
6 – On donne les droits à l’utilisateur et group « mattermost » au dossier /opt/mattermost
Le « -R » étant pour le récursif et le « : » pour signifier que c’est le groupe appartenant à l’utilisateur « mattermost »
sudo chown -R mattermost: /opt/mattermost
7 – On donne au groupe « mattermost » le droit d’écriture de manière récursive
sudo chmod -R g+w /opt/mattermost
8 – Nous allons configurer le driver de Mysql en modifiant le fichier config.json de Mattermost (toujours penser à faire une copie avant modifications).
sudo nano /opt/mattermost/config/config.json
On cherche
« DriverName » et « DataSource » (l’un à la suite de l’autre).
Voila ce que donne ma configuration avant les modifications
"DriverName": "mysql",
"DataSource": "mmuser:mostest@tcp(localhost:3306)/mattermost_test?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Et après
"DriverName": "mysql",
"DataSource": "mattermost:123456789@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Cette partie la « »mattermost:123456789 » correspond à l’utilisateur Mysql et l’autre après « : » à son mot de passe.
Attention aussi à bien supprimer le »_test » après « mattermost » sinon Mattermsot ne trouvera pas la bonne BDD lors du test.
Il faudra aussi penser à modifier dans le même fichier « SiteURL » et y rajouter votre nom de domaine.
9 – Une fois ceci fait, on teste le bon fonctionnement du server Mattermost.
Se rendre dans le dossier mattermost
cd /opt/mattermost
Et taper la commande suivante
sudo -u mattermost ./bin/mattermost
Ici, il faudra bien vérifier que le serveur écoute bien sur le port 8065.
Il sera aussi possible de le faire via la commande
sudo netstat -petulan | grep '8065'
10 – On passe maintenant à la partie systemd et le service Mattermost
sudo touch /lib/systemd/system/mattermost.service
On modifie le fichier en y rajoutant ceci
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service
[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
[Install]
WantedBy=mysql.service
On relance le service de gestion des daemon
sudo systemctl daemon-reload
On vérifie bien que le service existe (il est off)
sudo systemctl status mattermost.service
On lance le service
sudo systemctl start mattermost.service
On check l’état de celui-ci
Un petit curl pour voir si on recupere bien les infos HTML du serveur
http://ip_du_serveur:8065
Si c est bon, on peut enfin activer le lancement du service au demarrage du serveur.
sudo systemctl enable mattermost.service
A ce stade, vous devriez pouvoir vous connecter à Mattermost via le navigateur Web (ou avec l’ip du serveur ou via son nom de domaine).
Vous devriez tomber sur cette page.
Le 1er utilisateur crée sera l’administrateur, veuillez donc à bien choisir votre mot de passe.
Et l’interface, pas trop mal je trouve.
Petit rappel pas inutile, c’est une partie sensible qu’une messagerie d’entreprise, il faudra mettre en place des règles rigoureuses au niveau des accès et du firewall.
Je ne parle même pas de la BDD à protéger encore plus.
Voila, c est la fin de cette première partie.
Rendez-vous bientôt pour la suite de cet article.
Tips pour Mattermost
Je mets en fin d’article les aides pour Mattermost en fonction de mon utilisation.
Pour ce premier tips, comment supprimer un groupe.
Toujours faire un backup de votre BDD avant chaque intervention sur celle-ci.
Se rendre au niveau du dossier /opt/mattermost et taper la commande suivante :
sudo -u mattermost bin/mattermost team delete test2 --confirm
Alors « test2 » et le nom du groupe que vous souhaitez supprimer (préciser le votre).
Et l’option « — comfirm » évite de devoir valider la confirmation de suppression.
Il faudra penser à relancer le service Mattermost en fin d’opération.
Le 2e tips va servir à connaître la version de Mattermost
La commande à taper est la suivante :
sudo -u mattermost bin/mattermost version