
Communication d’entreprise avec Synapse
Dans cet article, nous allons voir l’installation de Synapse, Un serveur propriétaire qui nous permettra de contrôler et de sécuriser les communications de messagerie entre nos utilisateurs, une comparaison de Slack. Nous serons en mesure de leur donner un accès sécurisé aux salles de réunion via une application mobile ou un site web, Messagerie privée, Intégration d’Active Directory, avec Jitsi, Suivantcloud…
Un outil qui nous permettra d’organiser beaucoup plus rapidement notre vie professionnelle à travers des canaux ou des salles où les utilisateurs pourront échanger leurs besoins, Une véritable alternative à l’email, Équipes, Slack et plus encore. Ils pourront discuter, Envoyer des fichiers, visioconférence intégrée à notre Jitsi, ou ce que j’ai dit, si vous avez Nextcloud, nous pouvons intégrer le client nativement.
Commencé! Matrix est un protocole ouvert et un réseau pour la communication décentralisée, où les utilisateurs peuvent participer à des salons de discussion publics et privés via des serveurs publics et privés (“Serveurs domestiques”); ainsi que tout client de votre choix, Tout comme nous le faisons avec l’e-mail. L’objectif est de fournir un réseau mondial libre et ouvert pour les communications cryptées de bout en bout, sans sacrifier la facilité d’utilisation, et ainsi pouvoir libérer les utilisateurs d’être piégés dans les applications de certains fabricants, qui est aujourd’hui devenu le plus courant.
Synapse est l’implémentation de serveur domestique Matrix la plus installée, est écrit en Python 3 et c’est open source. Dans cet article, nous allons voir plusieurs choses:
- Installer Synapse
- Activer le proxy inverse avec Nginx
- Installer le client Element
- Intégration de l’authentification Active Directory.
- Installer element-web
- Intégration Jitsi
- Intégration avec Nextcloud
Installation de Synapse
Pour faire l’installation, nous allons nous appuyer sur un serveur Ubuntu 21.04 que nous aurons mis à jour et avec une IP statique. Nous commençons par installer les exigences:
Sudo apt install build-essential python3-dev libffi-dev python3-pip python3-setuptools sqlite3 libssl-dev virtualenv libjpeg-dev libxslt1-dev
Nous téléchargeons le dépôt et les clés pour enfin installer Matrix Synapse:
sudo apt install -y lsb-release wget apt-transport-https sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg fait "Deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) principal" | sudo tee /etc/apt/sources.list.d/matrix-org.list sudo apt update sudo apt install matrix-synapse-py3
La prochaine question nous sautera aux yeux, nous devons indiquer le nom FQDN du serveur, quelque chose comme matrix.mydomain.eso que vous devez enregistrer sur vos serveurs DNS et résoudre contre l’IP de cette machine.
Si nous voulons envoyer des statistiques anonymes pour améliorer l’utilisation,
Nous initions et activons le service:
sudo SystemCTL Démarrer Matrix-Synapse.service sudo SystemCTL Activer Matrix-Synapse.service
Modifier le fichier de configuration Synapse: /etc/matrix-synapse/homeserver.yaml et nous verrons le port d’écoute, La direction de l’écoute (Nous pouvons partir 127.0.0.1 si nous accéderons avec le proxy inverse), si nous voulons TLS, ou important, si nous voulons permettre aux utilisateurs de s’inscrire librement dans notre environnement, Ou pas:
...
- port: 8008
TLS: Type False: x_forwarded http: Véritable bind_addresses: ['0.0.0.0']
Ressources:
- prénoms: [client, Fédération]
compresse: Faux
...
enable_registration: Faux
...
Si nous apportons des modifications, nous redémarrons le service:
sudo systemctl redémarrer matrix-synapse.service
Et si dans bind_address nous écoutons 0.0.0.0 Nous serons en mesure d’ouvrir un navigateur et de vérifier que le service est en cours d’exécution, Nous ouvrons contre HTTP://DIRECCION_IP_SYNAPSE:8008
Proxy inverse
Comme nous pouvons le voir, notre Synapse fonctionne sous HTTP, ce que nous allons faire ensuite, c’est installer Nginx et activer l’accès à Synapse à l’aide d’un proxy inverse et d’un cryptage SSL. Alors allez, nous avons installé Nginx, Nous le démarrons et le marquons comme démarrage automatique avec le système:
Sudo apt install nginx sudo systemctl start nginx.service sudo systemctl enable nginx.service
Nous avons créé le fichier de configuration du site web de Synapse, Nous l’appelons par exemple '/etc/nginx/sites-available/synapse’ et au moins nous remplacerons l’exemple FQDN que je vous laisse par celui de chacun d’entre vous:
Serveur { Écouter 80; server_name matrix.midominio.eso; Rendre 301 https://$server_name $ request_uri; } Serveur { Écouter 443 S.A.; Écouter [::]:443 S.A.; server_name matrix.midominio.eso; ssl_certificate /etc/ssl/certs/wildcard_midominio_eso.cer; ssl_certificate_key /etc/ssl/certs/wildcard_midominio_eso.key; # If you don't wanna serve a site, Commenter ceci racine /var/www/html; Indice index.html index.htm; Emplacement /_matrix { proxy_pass http://127.0.0.1:8008; proxy_set_header X-Forwarded-For $remote_addr; } Emplacement /.bien connu/matrice/serveur { Rendre 200 '{"m.serveur": "matrix.midominio.eso:443"}'; add_header Content-Type application/json; } Emplacement /.bien connu/matrice/client { Rendre 200 '{"m.homeserver": {"base_url": "https://matrix.midominio.eso"},"m.identity_server": {"base_url": "https://vector.im"}}'; add_header Content-Type application/json; add_header "Control-d’accès-allow-origin" *; } }
Creamos un enlace para habilitar el sitio de Synapse y reiniciamos Nginx:
sudo ln -s /etc/nginx/sites-available/synapse /etc/nginx/sites-enabled/ sudo systemctl restart nginx.service
Si todo ha ido bien podremos validarlo abriendo un navegador contra https://DIRECCION_IP_SYNAPSE/.bien-connu/matrice/serveur
Élément
Pas mal, pour vous connecter à notre serveur Synapse, Nous pouvons utiliser n’importe quel client comme nous l’avons dit ci-dessus, le plus courant est peut-être Element, anciennement connu sous le nom de Riot. Eh bien, Element peut être ouvert directement à partir de https://app.element.io ou nous pouvons Télécharger un client Localement, pour nos fenêtres, Linux, Mac, Android ou iOS.
Une fois l’élément ouvert, Nous devons indiquer que nous avons le compte hébergé sur notre propre serveur, nous indiquons notre FQDN et nous pouvons nous connecter. Mais avant de nous connecter… Devrons-nous avoir un compte? Non? Pas mal. si nous avons déjà configuré Synapse sur notre LDAP, nous pouvons essayer de nous connecter avec notre utilisateur Active Directory, Sinon, Nous devrons utiliser des utilisateurs locaux. Afin de créer des utilisateurs locaux, nous devons permettre aux utilisateurs de s’inscrire et pour cela, nous nous souvenons, Dans le fichier de configuration, nous définissons 'enable_registration: Vrai’ et nous redémarrons le service. Maintenant, nous pourrions créer un compte utilisateur. Mais bien sûr, Méfiez-vous des dossiers ouverts, Il est vrai que dans la configuration vous verrez que nous pouvons exiger un secret partagé précédent et donc qu’ils ne sont pas validés, mettre un CAPCHA… Normalement, nous laisserons les enregistrements désactivés.
Et rien, si nous entrons maintenant, Element nous accueille, nous permet d’envoyer des messages à nos contacts, Explorez les salles publiques ou créez des discussions de groupe, entre autres.
L’élément lui-même n’a pas de complications, Les utilisateurs manipulent ce type d’outils au quotidien, Mais celui-ci est open source, Sûr, crypté et s’exécute dans notre centre de données, Pas de fuites de données ou avec un maximum de confidentialité.
Configuration par rapport à Active Directory
La chose la plus pratique à faire est d’intégrer l’authentification Synapse à votre domaine Active Directory, pour cela, nous allons d’abord installer le connecteur LDAP et enfin dans la configuration Synapse nous indiquons les données de notre LDAP. Nous installons d’abord les exigences:
sudo apt-get install matrix-synapse-ldap3 -y
Modifier le fichier de configuration Synapse (/etc/matrix-synapse/homeserver.yaml) et ajouté les paramètres suivants dans la section correspondante:
password_providers: - module: "ldap_auth_provider. LdapAuthProvider" Configuration: Activé: URI vrai: "LDAP://DIRECCION_IP_DC:389" start_tls: Faux socle: "ou=OU_2,ou=OU_1,dc=DOMAINE,dc=LOCAL" Attributs: Uid: "sAMAccountName" courrier: "courrier" Nom: "givenName" bind_dn: "cn=USUARIO_LDAP_SYNAPSE,ou=OU_2,ou=OU_1,dc=DOMAINE,dc=LOCAL" bind_password: "MOT DE PASSE" #filtre: "(objectClass=posixAccount)"
Où bon, nous pourrions ajouter quelques lignes supplémentaires contre un autre DC, ainsi que de préférence configurer LDAPS mieux par le 636 et avec TLS et dans le BaseDN, nous aurons la base à partir de laquelle les utilisateurs nous chercheront, ainsi que si nous voulons mettre un filtre supplémentaire…
Et dès qu’après avoir redémarré le service Synapse, nous pourrons essayer de nous connecter avec les utilisateurs de notre domaine.
sudo systemctl redémarrer matrix-synapse.service
Element-web
Sur le serveur Synapse lui-même, nous pouvons installer Element-web, afin d’éviter que les utilisateurs n’aient à se rendre sur le site Web d’Element pour parler ou à faire installer un client hors ligne. Element-web nous fournira la même interface graphique mais fonctionnant sur notre serveur (dans Nginx), un client web, aller.
Ainsi, Nous créons le répertoire où nous allons enregistrer element-web, Nous l’avons téléchargé, Nous installons GNUPG, Les clés & Nous les installons, Nous décompressons l’élément, Nous créons un lien symbolique et corrigeons les permissions; Enfin, nous allons créer notre fichier de configuration:
sudo mkdir -p /var/www/html/element cd /var/www/html/element sudo wget https://github.com/vector-im/element-web/releases/download/v1.7.34/element-v1.7.34.tar.gz sudo apt install -y gnupg sudo wget https://github.com/vector-im/element-web/releases/download/v1.7.34/element-v1.7.34.tar.gz.asc sudo gpg --keyserver keyserver.ubuntu.com --search-keys D******@ri**.Im
sudo gpg --verify element-v1.7.34.tar.gz.asc sudo tar -xzvf element-v1.7.34.tar.gz sudo ln -s element-v1.7.34 element sudo chown www-data:www-data -R element cd element sudo cp config.sample.json config.json
Editamos el fichero de configuración (/var/www/html/element/element/config.json), modificamos la 'base_url’ con el FQDN completo de Synapse (matrix.midominio.eso); y 'server_name’ con el nombre del dominio (midominio.eso). Rester:
{ "default_server_config": { "m.homeserver": { "base_url": "https://matrix.midominio.eso", "server_name": "midominio.eso" }, "m.identity_server": { "base_url": "https://matrix.midominio.eso" } }, ...
Nous créons le fichier de configuration pour Nginx:
Serveur { Écouter 80; server_name element.mondomaine.eso; Rendre 301 https://$server_name $ request_uri; } Serveur { Écouter 443 S.A.; Écouter [::]:443 S.A.; server_name element.mondomaine.eso; ssl_certificate /etc/ssl/certs/wildcard_mi_dominio.cer; ssl_certificate_key /etc/ssl/certs/wildcard_mi_dominio.key; racine /var/www/html/element/element; Indice index.html; Emplacement / { try_files $uri $uri/ =404; } }
Nous activons le site et redémarrons Nginx:
sudo ln -s /etc/nginx/sites-available/element /etc/nginx/sites-enabled/ sudo systemctl restart nginx.service
Et nous avons essayé avec un navigateur d’accéder à https://element.mondomaine.eso et voilà! Nous pourrons désormais nous connecter avec nos utilisateurs directement sur le web, et je ne vous dirai pas si nous personnalisons le Start…
Intégration Jitsi
Si nous avons notre Propre serveur Visioconférence basée sur Jitsi, nous pouvons l’intégrer à Element-web et ainsi quand ils veulent passer un appel ou un appel vidéo, ou groupe, Utilisez nos ressources, Tout reste à la maison, sûr, chiffrement… Il suffit de modifier le fichier de configuration element-web (/var/www/html/element/element/config.json) dans la section Jitsi et mettez notre FQDN:
}, "Jitsi": { "preferredDomain": "jitsi.mondomaine.eso" }
Et ça aurait l’air super cool!
Intégration avec Nextcloud
Allez, c’est fini… C’est la même chose, si vous avez votre propre système d’échange de fichiers ou encore plus un Hub avec lequel connecter vos utilisateurs Suivantcloud vous pourrez intégrer un APA dans l’interface Nextcloud elle-même avec une application
Sur Nextcloud, connecté avec un compte avec des privilèges d’administrateur, Allons dans les applications > Intégration > et nous recherchons 'Element for Nextcloud', Cliquez sur “Téléchargez et activez”.
Si nous allons dans la partie Paramètres, dans le menu latéral, nous pouvons voir une nouvelle section appelée 'Element', nous devrons configurer l’URL du serveur Web Element.
Et maintenant, les utilisateurs auront une icône supplémentaire dans la barre supérieure, où ils peuvent parler directement, interagir avec le reste des camarades de classe… précieux!
Puits, que j’espère que vous avez trouvé intéressant, merci à tous ceux qui donnent des Likes et des Recommandations sur les réseaux sociaux, câlins à tod@s!