Unternehmenskommunikation mit Synapse

In diesem Beitrag sehen wir die Installation von Synapse, einen eigenen Server, der es uns ermöglicht, die Nachrichtenkommunikation zwischen unseren Benutzern zu kontrollieren und zu sichern, ein Gleichnis von Slack. Wir können ihnen über eine mobile App oder eine Website sicheren Zugang zu Besprechungsräumen gewähren, private Nachrichten, Active Directory-Integration, mit Jitsi, Nextcloud…

Ein Tool, das uns sehr rationalisieren wird, indem es unser Arbeitsleben über Kanäle oder Räume organisiert, in denen Benutzer ihre Bedürfnisse austauschen können, eine echte Alternative zu E-Mail, Teams, Slack und so weiter. Sie werden in der Lage sein zu chatten, Dateien senden, Videokonferenzen integriert mit unserem Jitsi, oder der, Wenn Sie Nextcloud haben, können wir den Client nativ integrieren.

wir begannen! Matrix ist ein offenes Protokoll und Netzwerk für dezentrale Kommunikation, wo Benutzer über öffentliche und private Server an öffentlichen und privaten Chatrooms teilnehmen können (“Heimserver”); sowie jeder Kunde Ihrer Wahl, genau wie wir es mit E-Mail tun. Ziel ist es, ein kostenloses und offenes globales Netzwerk für eine Ende-zu-Ende-verschlüsselte Kommunikation bereitzustellen, ohne auf Benutzerfreundlichkeit zu verzichten, und damit Nutzer aus der Gefangenschaft in den Apps bestimmter Hersteller befreien können, das ist heute am häufigsten geworden.

Synapse ist die am häufigsten installierte Matrix-Heimserver-Implementierung, ist in Python geschrieben 3 und es ist Open Source. In diesem Beitrag werden wir mehrere Dinge sehen:

  • Instalare Synapse
  • Reverse-Proxy mit Nginx aktivieren
  • Element-Client installieren
  • Authentifizierungsintegration mit Active Directory.
  • Webelement installieren
  • Integration mit Jitsi
  • Integration mit Nextcloud

Synapse-Installation

Für die Installation werden wir auf einem Ubuntu-Server basieren 21.04 que tendremos actualizadito y con una IP estática. Comenzamos instalando los requisitos:

sudo apt install build-essential python3-dev libffi-dev python3-pip python3-setuptools sqlite3 libssl-dev virtualenv libjpeg-dev libxslt1-dev

Nos descargamos la repo y las claves para finalmente instalar 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
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) Main" | sudo tee /etc/apt/sources.list.d/matrix-org.list
sudo apt update
sudo apt install matrix-synapse-py3

Nos saltará la siguiente pregunta, tenemos que indicar el nombre FQDN del servidor, so etwas wie matrix.midominio.eso, das Sie bei Ihren DNS-Servern registrieren und gegen die IP dieses Computers auflösen müssen.

Wenn wir anonyme Statistiken senden möchten, um die Nutzung zu verbessern,

Wir starten und aktivieren den Dienst:

sudo systemctl start matrix-synapse.service
sudo systemctl enable matrix-synapse.service

Wir bearbeiten die Synapse-Konfigurationsdatei: /etc / matrix-synapse / homeserver.yaml und wir werden den Listening-Port sehen, Hörrichtung (wir können gehen 127.0.0.1 wenn wir mit dem Reverse-Proxy zugreifen), wenn wir TLS wollen, oder wichtig, wenn wir es Benutzern ermöglichen möchten, sich in unserer Umgebung frei zu registrieren, o nein:

...
- Hafen: 8008
    tls: falsch
    Typ: http
    x_weitergeleitet: wahr
    bind_adressen: ['0.0.0.0']

    Ressourcen:
      - Namen: [Klient, Föderation]
        Kompresse: falsch
...
enable_registration: falsch
...

Wenn wir Änderungen vornehmen, starten wir den Dienst neu:

sudo systemctl restart matrix-synapse.service

Und wenn wir in bind_address abhören 0.0.0.0 Wir können einen Browser öffnen und überprüfen, ob der Dienst ausgeführt wird, wir öffnen gegen http://SYNAPSE_IP_ADDRESS:8008

Reverse Proxy

wie wir sehen,, unsere Synapse läuft unter HTTP, Als nächstes installieren wir Nginx und ermöglichen den Zugriff auf Synapse über Reverse-Proxy und SSL-Verschlüsselung. Also komm schon, Instalamos Nginx, wir starten es und markieren es als automatischer Start mit dem System:

sudo apt installieren nginx
sudo systemctl starte nginx.service
sudo systemctl aktivieren nginx.service

Wir erstellen die Konfigurationsdatei für die Synapse-Website, wir nennen es zum Beispiel '/etc/nginx/sites-available/synapse’ und zumindest werden wir den Beispiel-FQDN, den ich euch hinterlasse, durch den von jedem von euch ersetzen:

Server {
       hören 80;
       server_name matrix.midominio.eso;
       Rückkehr 301 https://$server_name$request_uri;
}

Server {
    hören 443 ssl;
    hören [::]:443 ssl;
    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, comment this out
    root /var/www/html;
    index index.html index.htm;

    location /_matrix {
      proxy_pass http://127.0.0.1:8008;
      proxy_set_header X-Forwarded-For $remote_addr;
    }
    location /.well-known/matrix/server {
      Rückkehr 200 '{"m.server": "matrix.midominio.eso:443"}';
      add_header Content-Type application/json;
    }
    location /.well-known/matrix/client {
      Rückkehr 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 "Access-Control-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/.well-known/matrix/server

Element

gut, um sich mit unserem Synapse-Server zu verbinden, Wir können jeden Client verwenden, wie wir oben gesagt haben, am häufigsten ist Element, früher bekannt als Riot. Nun, Element kann direkt von geöffnet werden https://app.element.io wir können Laden Sie uns einen Client herunter lokal, für unsere Windows, Linux, Mac, Android oder iOS.

Sobald Element geöffnet ist, wir müssen angeben, dass wir das Konto auf unserem eigenen Server gehostet haben, Wir geben unseren FQDN an und können uns einloggen. Aber bevor wir uns einloggen… Müssen wir ein Konto haben?? Nein? gut. Wenn wir Synapse bereits für unser LDAP konfiguriert haben, können wir versuchen, mit unserem Active Directory-Benutzer einzutreten., Wenn dies nicht der Fall ist, wir müssen lokale Benutzer verwenden. Um lokale Benutzer zu erstellen, müssen wir Benutzern erlauben, sich zu registrieren und dafür, wenn wir uns erinnern, in der Konfigurationsdatei setzen wir ‘enable_registration: wahr’ und wir starten den Dienst neu. Jetzt könnten wir ein Benutzerkonto erstellen. aber natürlich, achte auf offene Aufzeichnungen, Es stimmt, dass Sie in der Konfiguration sehen können, dass wir ein vorheriges gemeinsames Geheimnis anfordern können und daher nicht validiert werden, setze ein CAPCHA… Normalerweise werden wir die Aufzeichnungen deaktiviert lassen.

und nichts, wenn wir jetzt eintreten, heißt uns Element willkommen, ermöglicht es uns, Nachrichten an Kontakte zu senden, Erkunden Sie öffentliche Räume oder erstellen Sie unter anderem Gruppenchats.

Element selbst hat keine Komplikationen, Benutzer handhaben diese Art von Tools täglich, aber das ist Open Source, sicher, verschlüsselt und läuft in unserem Rechenzentrum, keine Datenlecks oder maximale Privatsphäre.

Konfiguration gegen Active Directory

Am bequemsten ist es, die Synapse-Authentifizierung in unsere Active Directory-Domäne zu integrieren., für sie, Zuerst installieren wir den LDAP-Connector und schließlich geben wir in der Synapse-Konfiguration die Daten unseres LDAP an. Wir installieren zuerst die Anforderungen:

sudo apt-get install matrix-synapse-ldap3 -y

Wir bearbeiten die Synapse-Konfigurationsdatei (/etc/matrix-synapse/homeserver.yaml) und wir fügen die folgende Konfiguration im entsprechenden Abschnitt hinzu:

Passwortanbieter:
    - Modul: "ldap_auth_provider.LdapAuthProvider"
      Config:
        aktiviert: wahr
        uri: "ldap://DIRECTION_IP_DC:389"
        start_tls: falsch
        Base: "oder = OR_2, oder = OR_1, dc = DOMAIN,dc=LOCAL"
        Attribute:
           uid: "sAMAccountName"
           Post: "Post"
           Name: "Vorname"
        bind_dn: "cn=USUARIO_LDAP_SYNAPSE,oder = OR_2, oder = OR_1, dc = DOMAIN,dc=LOCAL"
        bind_password: "PASSWORT"
        #Filter: "(objectClass=posixAccount)"

Wo gut, wir könnten eine zusätzliche Zeile gegen einen anderen DC hinzufügen, sowie die LDAPS vorzugsweise besser konfigurieren durch die 636 und mit TLS und im BaseDN haben wir die Basis, wo die Benutzer nach uns suchen werden, sowie wenn wir einen zusätzlichen Filter setzen möchten…

Und nichts nach dem Neustart des Synapse-Dienstes können wir versuchen, uns bei unseren Domain-Benutzern anzumelden.

sudo systemctl restart matrix-synapse.service

Element-Web

Auf dem Synapse-Server selbst können wir Element-web installieren, damit wir vermeiden können, dass Benutzer die Element-Website besuchen müssen, um zu sprechen oder einen Client offline installieren zu lassen. Element-web wird uns die gleiche GUI zur Verfügung stellen, aber auf unserem Server laufen (und Nginx), ein Web-Client, gehen.

so, Wir erstellen das Verzeichnis, in dem wir element-web speichern, Wir laden es herunter, wir installieren gnupg, die Schlüssel & wir installieren sie, wir dekomprimieren element, wir erstellen einen symbolischen Link und korrigieren die Berechtigungen; Schließlich erstellen wir unsere Konfigurationsdatei:

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 releases@richot.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

Wir bearbeiten die Konfigurationsdatei (/var/www/html/element/element/config.json), wir ändern die 'base_url’ mit dem vollständigen Synapse FQDN (matrix.midominio.eso); und 'server_name’ mit dem Domainnamen (meinedomain das). Bleiben:

{
    "default_server_config": {
        "m.homeserver": {
            "base_url": "https://matrix.midominio.eso",
            "Servername": "meinedomain das"
        },
        "m.identity_server": {
            "base_url": "https://matrix.midominio.eso"
        }
    },
...

Creamos el fichero de configuración para Nginx:

Server {
       hören 80;
       server_name element.midominio.eso;
       Rückkehr 301 https://$server_name$request_uri;
}

Server {
    hören 443 ssl;
    hören [::]:443 ssl;
    server_name element.midominio.eso;

    ssl_certificate /etc/ssl/certs/wildcard_mi_dominio.cer;
    ssl_certificate_key /etc/ssl/certs/wildcard_mi_dominio.key;

    root /var/www/html/element/element;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Habilitamos el sitio y reiniciamos Nginx:

sudo ln -s /etc/nginx/sites-available/element /etc/nginx/sites-enabled/
sudo systemctl restart nginx.service

Y probamos con un navegador a acceder a https://element.midominio.eso ¡et voilà! Wir können uns jetzt mit unseren Benutzern direkt im Web einloggen, und ich werde Ihnen nicht sagen, ob wir den Start anpassen…

Integration mit Jitsi

Wenn wir unsere haben eigener Server Jitsi-basierte Videokonferenzen, wir können es in Element-web integrieren und so, wenn sie einen Anruf oder einen Videoanruf tätigen möchten, oder Gruppe, wird unsere Ressourcen nutzen, alles bleibt zu hause, Versicherung, Verschlüsselung… Bearbeiten Sie einfach die Element-Web-Konfigurationsdatei (/var/www/html/element/element/config.json) in der Jitsi-Sektion und setzen Sie unseren FQDN:

},
"Jitsi": {
    "bevorzugteDomain": "jitsi.midominio.eso"
}

Und es wäre super cool!

Integration mit Nextcloud

Komm wir sind fertig… das ist das gleiche, wenn Sie ein eigenes Dateiaustauschsystem oder noch mehr einen Hub haben, um Ihre Benutzer mit zu verbinden Nextcloud Mit einer App können Sie ein Gerät in die Nextcloud-Schnittstelle einbinden

En Nextcloud, mit einem Konto mit Administratorrechten angemeldet, lass uns zu den Apps gehen > Integration > und wir suchen nach ‚Element for Nextcloud‘, klicken Sie auf “Herunterladen und aktivieren”.

Wenn wir zum Konfigurationsteil gehen, Im Seitenmenü sehen wir einen neuen Abschnitt namens 'Element', wir müssen die URL des Element-Webservers konfigurieren.

Und jetzt haben Benutzer ein zusätzliches Symbol in der oberen Leiste, wo sie direkt sprechen können, sich mit anderen Kollegen austauschen… kostbar!

gut, Ich hoffe, Sie fanden es interessant, Danke an alle die Likes und Empfehlungen in sozialen Netzwerken geben, umarmt alle!

Letzte Artikel von Hector Herrero (Alle anzeigen)