
使用 Synapse 进行企业传播
在这篇文章中,我们将了解 Synapse 的安装, 一个专有服务器,将使我们能够控制和保护用户之间的消息传递通信, Slack 的比喻. 我们将能够让他们通过移动应用程序或网站安全地访问会议室, 私人消息, Active Directory 集成, 与 Jitsi, Nextcloud…
该工具将使我们更快地通过用户可以交换需求的渠道或房间来组织我们的工作生活, 电子邮件的真正替代品, 团队, Slack 等. 他们将能够聊天, 发送文件, 与我们的 Jitsi 集成的视频会议, 或者我说了什么, 如果您有 Nextcloud,我们可以原生集成客户端.
开始! Matrix 是一个用于去中心化通信的开放协议和网络, 用户可以通过公共和私人服务器参与公共和私人聊天室 (“家庭服务器”); 以及您选择的任何客户, 就像我们对电子邮件所做的那样. 目标是为端到端加密通信提供免费和开放的全球网络, 在不牺牲易用性的情况下, 从而能够将用户从某些制造商的应用程序中解放出来, 这在今天已成为最常见的.
Synapse 是安装最多的 Matrix 主服务器实现, 是用 Python 编写的 3 而且它是开源的. 在这篇文章中,我们将看到几件事:
- 安装 Synapse
- 使用 Nginx 启用反向代理
- 安装 Element 客户端
- Active Directory 身份验证集成.
- 安装 Element-web
- Jitsi 集成
- 与 Nextcloud 集成
安装 Synapse
要进行安装,我们将依赖 Ubuntu 服务器 21.04 我们将更新并使用静态 IP. 我们首先安装需求:
sudo apt install build-essential python3-dev libffi-dev python3-pip python3-setuptools sqlite3 libssl-dev virtualenv libjpeg-dev libxslt1-dev
我们下载存储库和密钥以最终安装 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 完成 "黛博 [签名者=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) 主要" | sudo tee /etc/apt/sources.list.d/matrix-org.list sudo apt update sudo apt install matrix-synapse-py3
下一个问题将跳向我们, 我们需要指示服务器的 FQDN 名称, 类似于 matrix.mydomain.eso 的东西,您必须在 DNS 服务器上注册并根据此机器的 IP 进行解析.
如果我们想发送匿名统计数据以提高使用率,
我们启动并启用服务:
sudo SystemCTL 启动矩阵-Synapse.servicesudo SystemCTL 启用矩阵-Synapse.service
编辑 Synapse 配置文件: /etc/matrix-synapse/homeserver.yaml 中,我们将看到侦听端口, 聆听方向 (我们可以离开 127.0.0.1 我们是否会使用反向代理访问), 如果我们想要 TLS, 或重要, 如果我们想允许用户在我们的环境中自由注册, 或者没有:
...
- 港口: 8008
TLS: False 类型: HTTP x_forwarded: true bind_addresses: ['0.0.0.0']
资源:
- 名字: [客户, 联邦]
压缩: 假
...
enable_registration: 假
...
如果我们进行任何更改,我们将重新启动服务:
sudo systemctl restart matrix-synapse.service
如果在 bind_address 中我们监听 0.0.0.0 我们将能够打开浏览器并验证服务是否正在运行, 我们针对 HTTP 开放://DIRECCION_IP_SYNAPSE:8008
反向代理
正如我们所看到的, 我们的 Synapse 在 HTTP 下运行, 我们接下来要做的是安装 Nginx 并使用反向代理和 SSL 加密启用对 Synapse 的访问. 所以来吧, 我们安装了 Nginx, 我们启动它并将其标记为系统自动启动:
sudo apt install nginx sudo systemctl start nginx.service sudo systemctl enable nginx.service
我们为 Synapse 网站创建了配置文件, 例如,我们将其称为 '/etc/nginx/sites-available/synapse’ 至少我们会用你们每个人的 FQDN 替换我留给您的示例 FQDN:
服务器 { 听 80; server_name matrix.mydomain.eso; 返回 301 https://$server_name request_uri 美元; } 服务器 { 听 443 SSL认证; 听 [::]:443 SSL认证; server_name matrix.mydomain.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, 注释掉 root /var/www/html; 索引 index.html index.htm; 位置 /_matrix { proxy_pass http://127.0.0.1:8008; proxy_set_header X-Forwarded-For $remote_addr; } 位置 /.well-known/matrix/server { 返回 200 '{"m.server 服务器": "矩阵.midominio.eso:443"}'; add_header Content-Type application/json; } 位置 /.well-known/matrix/client { 返回 200 '{"m.home服务器": {"base_url": "https://矩阵.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
元素
不错, 连接到我们的 Synapse 服务器, 正如我们上面所说的,我们可以使用任何客户, 最常见的可能是 Element, 前身为 Riot. 好吧,Element 可以直接从 https://app.element.io 或者我们可以 下载客户端 本地, 适用于我们的 Windows, Linux的, 苹果电脑, Android 或 iOS.
打开 Element 后, 我们必须表明我们在自己的服务器上托管了该帐户, 我们指示我们的 FQDN,然后我们可以登录. 但在我们登录之前… 我们得有个账号吗? 不? 不错. 如果我们已经针对 LDAP 配置了 Synapse,我们可以尝试使用我们的 Active Directory 用户登录, 如果没有,, 我们需要使用本地用户. 为了创建本地用户,我们必须允许用户注册,为此我们记住, 在配置文件中,我们设置了 'enable_registration: 真’ 然后我们重新启动服务. 现在我们可以创建一个用户帐户. 但当然, 谨防公开记录, 确实,在配置中,您将看到我们可能需要以前的共享密钥,因此不会对其进行验证, 放一个CAPCHA… 通常我们会禁用记录.
什么都没有, 如果我们现在进入,Element 欢迎我们, 允许我们向联系人发送消息, 探索公共房间或创建群聊等.
Element 本身没有并发症, 用户每天都会处理这些类型的工具, 但这个是开源的, 确定, 加密并在我们的数据中心运行, 无数据泄露或具有最大程度的隐私.
针对 Active Directory 的配置
最方便的做法是将 Synapse 身份验证与您的 Active Directory 域集成, 为此, 首先,我们将安装 LDAP 连接器,最后在 Synapse 配置中,我们指示 LDAP 的数据. 我们首先安装需求:
sudo apt-get install matrix-synapse-ldap3 -y
编辑 Synapse 配置文件 (/etc/matrix-synapse/homeserver.yaml) 并在相应部分添加了以下设置:
password_providers: - 模块: "ldap_auth_provider。LdapAuthProvider" 配置: 启用: True uri: "LDAP 协议://DIRECCION_IP_DC:389" start_tls: 假基数: "ou=OU_2,ou=OU_1,dc=域,dc=本地" 属性: uid: "sAMAccount名称" 邮件: "邮件" 名字: "givenName (给定名称)" bind_dn: "cn=USUARIO_LDAP_SYNAPSE,ou=OU_2,ou=OU_1,dc=域,dc=本地" bind_password: "密码" #滤波器: "(对象类=posixAccount)"
哪里好, 我们可以针对另一个 DC 添加一些额外的行, 以及最好通过 636 使用 TLS 和 BaseDN,我们将拥有用户寻找我们的基础, 以及我们是否要放置任何额外的过滤器…
重新启动 Synapse 服务后,我们将能够尝试使用我们的域用户登录.
sudo systemctl restart matrix-synapse.service
元素 web
在 Synapse 服务器本身上,我们可以安装 Element-web, 这样我们就可以避免用户必须去 Element 网站交谈或离线安装客户端. Element-web 将为我们提供相同的 GUI,但在我们的服务器上运行 (在 Nginx 中), Web 客户端, 去.
所以, 我们创建将保存 element-web 的目录, 我们下载了它, 我们安装 GNUPG, 键 & 我们安装它们, We unzip 元素, 我们创建一个符号链接并更正权限; Finalmente crearemos nuestro fichero de configuración:
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**.我
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 元素 cd 元素 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 (矩阵.midominio.eso); y 'server_name’ Con el nombre del dominio (midominio.eso). 住:
{ "default_server_config": { "m.home服务器": { "base_url": "https://矩阵.midominio.eso", "server_name": "midominio.eso" }, "m.identity_server": { "base_url": "https://矩阵.midominio.eso" } }, ...
我们为 Nginx 创建配置文件:
服务器 { 听 80; server_name element.mydomain.eso; 返回 301 https://$server_name request_uri 美元; } 服务器 { 听 443 SSL认证; 听 [::]:443 SSL认证; server_name element.mydomain.eso; ssl_certificate /etc/ssl/certs/wildcard_mi_dominio.cer; ssl_certificate_key /etc/ssl/certs/wildcard_mi_dominio.key; 根目录 /var/www/html/element/element; 索引 index.html; 位置 / { try_files $uri $uri/ =404; } }
我们启用站点并重新启动 Nginx:
sudo ln -s /etc/nginx/sites-available/element /etc/nginx/sites-enabled/ sudo systemctl restart nginx.service
我们尝试用浏览器访问 https://element.mydomain.eso et voilà! 我们现在将能够直接在 Web 上与我们的用户一起登录, 我不会告诉你我们是否自定义 Start…
Jitsi 集成
如果我们有 自己的服务器 基于 Jitsi 的视频会议, 我们可以将其与 Element-web 集成,因此当他们想要拨打电话或视频通话时, 或组, 使用我们的资源, 一切都在家里, 确定, 加密… 只需编辑 element-web 配置文件 (/var/www/html/element/element/config.json) 在 Jitsi 部分中,并将我们的 FQDN:
}, "吉西": { "preferredDomain (首选域名)": "jitsi.mydomain.eso" }
而且它看起来超级酷!
与 Nextcloud 集成
来吧,我们完成了… 这是一样的, 如果您有自己的 File Exchange 系统,甚至拥有用于连接用户的 Hub Nextcloud 您将能够通过应用程序将 APA 集成到 Nextcloud 界面本身
在 Nextcloud 上, 使用具有管理员权限的帐户登录, 让我们去应用程序 > 集成 > ,然后我们搜索 'Element for Nextcloud', 点击 “下载并激活”.
如果我们转到 个人设置 部分, 在侧边菜单中,我们可以看到一个名为 'Element' 的新部分, 我们需要配置 Element Web 服务器的 URL.
现在,用户将在顶部栏中看到一个额外的图标, 他们可以直接交谈的地方, 与其他同学互动… 珍贵!
井, 我希望你觉得有趣, 感谢所有在社交网络上提供点赞和推荐的人, 拥抱tod@s!