• 如何在Ubuntu18.04上设置Prosody XMPP服务器

    Prosody是一个用Lua编写的免费开源XMPP服务器。它又快又轻。XMPP是一个很棒的即时通讯协议。本教程将向您展示如何在Ubuntu18.04上安装和配置Prosody XMPP服务器。完成本教程后,您将拥有自己的聊天服务器。 第一步:在Ubuntu 18.04上安装Prosody Prosody包含在默认的Ubuntu存储库中,但它已经过时了。Prosody团队维护一个包存储库。如果想要获得最新版本,那么需要使用以下命令添加韵律库。 echo 'deb https://packages.prosody.im/debian bionic main' | sudo tee /etc/apt/sources.list.d/prosody.list 然后运行以下命令下载并导入Prosody公钥,这允许APT package manager验证从该存储库下载的包的完整性。 wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add - 接下来,更新本地包索引并安装最新版本的Prosody。 sudo apt update sudo apt install prosody 一旦安装,Prosody将自动启动。您可以通过以下方式检查其状态: systemctl status prosody 输出: ● prosody.service - Prosody XMPP Server Loaded: loaded (/lib/systemd/system/prosody.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-04-19 13:58:40 UTC; 16s ago Docs: https://prosody.im/doc Main PID: 1894 (lua5.2) Tasks: 1 (limit: 1108) CGroup: /system.slice/prosody.service └─1894 lua5.2 /usr/bin/prosody -F Apr 19 13:58:40 localhost systemd[1]: Started Prosody XMPP Server. 如果它没有运行,你可以从 sudo systemctl start prosody 要在系统启动时启用自动启动,请运行 sudo systemctl enable prosody 第2步:打开防火墙中的端口 默认情况下,它监听公共IP地址的TCP端口5269和5222,如下命令所示。(如果你的Ubuntu没有netstat命令,你可以用sudo-apt-install-net工具安装它。) sudo netstat -lnptu | grep lua 端口5222用于客户端到服务器的连接。 端口5269用于服务器到服务器的连接。 如果你已经在Ubuntu上启用了UFW防火墙,那么你需要用下面的命令打开上面的端口。 sudo ufw允许52225269/tcp 第3步:配置Prosody XMPP服务器 使用命令行文本编辑器(如Nano)编辑主配置文件。 sudo nano/etc/韵律/韵律。cfg。卢阿 在模块_中启用{…}节中,可以取消注释一行以启用特定模块,或注释掉一行以禁用特定模块。每个模块都有一个描述,告诉你它的功能。您可能希望启用BOSH模块,它代表同步HTTP上的双向流。它允许通过HTTP进行XMPP通信。 接下来,在配置文件中向下滚动。如果希望允许从XMPP客户端注册帐户,请将allow_registration设置为true。请注意,在进行此操作之前,您必须知道如何防止滥用。如果您是XMPP新手,可能不希望允许XMPP客户机自己注册帐户。 允许注册=真; Prosody只允许加密通信,如下两行所示。 c2s_require_encryption=true s2s_require_encryption=true 然而,我们需要创建一个虚拟主机并安装TLS证书,这样连接就可以被加密。默认情况下,Prosody中只有一个虚拟主机:localhost,如下行所示。 虚拟主机“本地主机” 现在我们创建另一个虚拟主机,比如聊天。实例通用域名格式。在此文件中添加以下行。 VirtualHost“chat.example.com” 保存并关闭文件。然后我们需要从Let's Encrypt获取并安装一个受信任的TLS证书。 第4步:从Let's Encrypt获取受信任的TLS证书 发布以下命令,从官方PPA在Ubuntu服务器上安装Let's Encrypt client(certbot)。 sudo-apt-install软件属性常见sudo-add-apt-repository-ppa:certbot/certbot-sudo-apt-install-certbot 如果您还没有运行web服务器,我建议您安装一个(Apache或Nginx),因为使用web服务器比使用其他方法更容易获取和安装TLS证书。 如果使用Apache web服务器,则需要安装Apache插件。(如果系统上尚未安装Apache web服务器,则以下命令将安装该服务器。) sudo apt安装python3 certbot apache 如果使用Nginx web服务器,请安装Nginx插件。(如果系统上尚未安装Nginx web服务器,则以下命令将安装该服务器。) sudo apt安装python3 certbot nginx 使用Apache Web服务器获取TLS证书 你需要有一个Apache虚拟主机来聊天。实例在获得TLS证书之前,让我们加密TLS证书。创建虚拟主机文件: sudo nano/etc/apache2/网站可用/韵律。形态 然后将以下文本粘贴到文件中。取代聊天。实例使用你的真实域名。别忘了为它设置一个记录。 <虚拟主机*:80>服务器名聊天。实例com DocumentRoot/var/www/prosody&lt/VirtualHost> 保存并关闭文件。然后创建webroot目录。 sudo mkdir/var/www/prosody 将www数据(Apache用户)设置为webroot的所有者。 sudo chown www-data:www-data/var/www/prosody-R 启用此虚拟主机。 sudo是一种轻快的韵律。形态 重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 创建并启用虚拟主机后,运行以下命令以获取并安装Let's Encrypt TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email protected]-d聊天。实例通用域名格式 用实际数据替换红色文本。您应该看到以下内容,这意味着该证书已成功获得。您还可以查看证书存储的目录。 使用Nginx Web服务器获取TLS证书 你需要有一个用于聊天的Nginx虚拟主机。实例在获得TLS证书之前,让我们加密TLS证书。创建虚拟主机文件: sudo nano/etc/nginx/conf.d/prosody。形态 接下来,将以下文本粘贴到文件中。取代聊天。实例使用你的真实域名。别忘了为它设置一个记录。 服务器{listen 80;listen[:]:80;server_name chat.example.com;root/var/www/prosody/;location~/.著名的/acme挑战{allow all;} 保存并关闭文件。然后创建web根目录。 sudo mkdir/var/www/prosody/ 将www数据(Nginx用户)设置为web根目录的所有者。 sudo chown www-data:www-data/var/www/prosody-R 重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 创建并启用虚拟主机后,运行以下命令以获取并安装Let's Encrypt certificate with Nginx plugin。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email protected]-d聊天。实例通用域名格式 您应该看到以下内容,这意味着该证书已成功获得。您还可以查看证书存储的目录。 第5步:在Prosody中安装TLS证书 编辑主配置文件。 sudo nano/etc/韵律/韵律。cfg。卢阿 转到Prosody虚拟主机并添加TLS证书和密钥文件。 ssl={key=“/etc/letsencrypt/live/chat.example.com/privkey.pem”;certificate=“/etc/letsencrypt/live/chat.example.com/fullchain.pem”;] 这样地: 保存并关闭文件。由于Prosody XMPP服务器作为Prosody用户运行,我们需要允许Prosody用户使用以下命令读取TLS证书和密钥文件。 sudo apt安装acl sudo setfacl-R-mu:prosody:rx/etc/letsencrypt/ 第6步:创建用户帐户 可以使用以下命令创建Prosody XMPP服务器的用户帐户。系统将提示您输入密码。 sudo prosodyctl adduser[电子邮件和#160;受保护] 要更改密码,请运行 sudo prosodyctl passwd[电子邮件和#160;受保护] 第7步:重新开始韵律 通过运行以下命令检查配置文件语法: sudo prosodyctl检查配置 如果语法正确,重新启动Prosody以使更改生效。 sudo systemctl重启韵律 第8步:配置XMPP客户端 本教程使用Pidgin instant messenger作为XMPP客户端。同理心是你可以使用的另一个客户。它们可以通过运行以下命令安装在Ubuntu桌面上: sudo apt安装洋泾浜sudo apt安装共情 在第一次发布时,您需要在Pidgin中添加一个帐户。点击添加按钮。 然后从协议列表中选择XMPP,并输入用户名、域和密码。 点击添加按钮,您将登录。 设置波什 正如我们之前解释的,BOSH允许您在HTTP上使用XMPP,即在web浏览器中。例如,Jitsi Meet视频会议软件使用BOSH将韵律整合到网页中,因此与会者可以在参加在线视频会议时进行文本聊天。 如果启用了BOSH模块,则编辑韵律配置文件(/etc/Prosody/Prosody.cfg.lua),并在配置文件末尾添加以下两行。 考虑_bosh_secure=true;cross_domain_bosh=true;https_ssl={certificate=“/etc/letsencrypt/live/chat.example.com/fullchain.pem”;key=“/etc/letsencrypt/live/chat.example.com/privkey.pem”;} 哪里: 第一行强制执行安全的HTTPS连接。 第二行将COR头添加到BOSH响应中,以允许来自任何域的请求。 https_ssl参数为BOSH服务指定TLS证书和密钥文件。 保存并关闭文件。然后重新开始韵律。 sudo systemctl重启韵律 如果您已经在Ubuntu服务器上启用了UFW防火墙,那么您需要使用以下命令打开端口5280和5281。 sudo ufw允许52805281/tcp 完成本教程后,BOSH端点将在以下地址可用。端口5280用于纯文本HTTP,端口5281用于HTTPS。 http://chat.example.com:5280/http-束缚 或 https://chat.example.com:5281/http-绑定。 BOSH端点是客户端通过HTTP连接到XMPP服务器的URL。 多用户聊天室 要启用MUC(多用户聊天),请在韵律配置文件中添加以下行。取代会议。实例com与您首选的子域。 组件“conference.example.com”“muc”restrict_room_creation=“admin” 第二行只允许管理员创建房间。要为XMPP服务器定义admin,首先需要使用sudo prosodyctl adduser命令创建帐户,如上所示。然后在配置文件中,将帐户添加到admin{…}如下所示。 管理员={“[email protected]”,“[email protected]” 通过运行以下命令检查配置文件语法: sudo prosodyctl检查配置 如果语法正确,重新启动Prosody以使更改生效。 sudo systemctl重启韵律 故障排除 韵律的主要日志文件是/var/log/Prosody/Prosody。日志还有一个错误日志/var/log/prosody/prosody。犯错误如果韵律没有像你预期的那样工作,那么错误日志是一个检查的好地方。 自动更新TLS证书 您可以创建Cron作业来自动续订TLS证书。打开root用户的crontab文件。 sudo crontab-e 如果使用ApacheWeb服务器,请在文件底部添加以下行。 @每日certbot更新——安静与&systemctl重新加载韵律apache2 如果您使用的是Nginx web服务器,请添加以下行。 @每日certbot更新——安静与&systemctl重新加载韵律nginx 重新加载Prosody和web服务器是使这些程序获取新证书和私钥所必需的。 收尾 就这样!我希望本教程能帮助您在Ubuntu18.04上安装和配置Prosody XMPP服务器。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门?

    2022.03.23 浏览:91
  • 如何在Ubuntu20.04上设置Prosody XMPP服务器

    Prosody是一个用Lua编写的免费开源XMPP服务器。它又快又轻。XMPP是一个很棒的即时通讯协议。本教程将向您展示如何在Ubuntu20.04上安装和配置Prosody XMPP服务器。完成本教程后,您将拥有自己的聊天服务器。 第一步:在Ubuntu 20.04上安装Prosody Prosody包含在默认的Ubuntu存储库中。Prosody团队还维护一个包存储库。如果想要获得最新版本,那么需要使用以下命令添加韵律库。 echo 'deb https://packages.prosody.im/debian focal main' | sudo tee /etc/apt/sources.list.d/prosody.list 然后运行以下命令下载并导入Prosody公钥,这允许APT package manager验证从该存储库下载的包的完整性。 wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add - 接下来,更新本地包索引并安装最新版本的Prosody。 sudo apt update sudo apt install prosody 一旦安装,Prosody将自动启动。您可以通过以下方式检查其状态: systemctl status prosody 输出: ● prosody.service - Prosody XMPP Server Loaded: loaded (/lib/systemd/system/prosody.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-04-19 13:58:40 UTC; 16s ago Docs: https://prosody.im/doc Main PID: 1894 (lua5.2) Tasks: 1 (limit: 1108) CGroup: /system.slice/prosody.service └─1894 lua5.2 /usr/bin/prosody -F Apr 19 13:58:40 localhost systemd[1]: Started Prosody XMPP Server. 如果它没有运行,你可以从 sudo systemctl start prosody 要在系统启动时启用自动启动,请运行 sudo systemctl enable prosody 第2步:打开防火墙中的端口 默认情况下,它监听公共IP地址的TCP端口5269和5222,如下命令所示。(如果你的Ubuntu没有netstat命令,你可以用sudo-apt-install-net工具安装它。) sudo netstat -lnptu | grep lua 端口5222用于客户端到服务器的连接。 端口5269用于服务器到服务器的连接。 如果你已经在Ubuntu上启用了UFW防火墙,那么你需要用下面的命令打开上面的端口。 sudo ufw allow 5222,5269/tcp 第3步:配置Prosody XMPP服务器 使用命令行文本编辑器(如Nano)编辑主配置文件。 sudo nano /etc/prosody/prosody.cfg.lua 在模块_中启用{…}节中,可以取消注释一行以启用特定模块,或注释掉一行以禁用特定模块。每个模块都有一个描述,告诉你它的功能。您可能希望启用BOSH模块,它代表同步HTTP上的双向流。它允许通过HTTP进行XMPP通信。 接下来,在配置文件中向下滚动。如果希望允许从XMPP客户端注册帐户,请将allow_registration设置为true。请注意,在进行此操作之前,您必须知道如何防止滥用。如果您是XMPP新手,可能不希望允许XMPP客户机自己注册帐户。 allow_registration = true; Prosody只允许加密通信,如下两行所示。 c2s_require_encryption = true s2s_require_encryption = true 然而,我们需要创建一个虚拟主机并安装TLS证书,这样连接就可以被加密。默认情况下,Prosody中只有一个虚拟主机:localhost,如下行所示。 VirtualHost "localhost" 现在我们创建另一个虚拟主机,比如聊天。实例通用域名格式。在此文件中添加以下行。 VirtualHost "chat.example.com" 保存并关闭文件。然后我们需要从Let's Encrypt获取并安装一个受信任的TLS证书。 第4步:从Let's Encrypt获取受信任的TLS证书 发出以下命令在Ubuntu服务器上安装Let's Encrypt client(certbot)。 sudo apt install certbot 如果您还没有运行web服务器,我建议您安装一个(Apache或Nginx),因为使用web服务器比使用其他方法更容易获取和安装TLS证书。 如果使用Apache web服务器,则需要安装Apache插件。(如果系统上尚未安装Apache web服务器,则以下命令将安装该服务器。) sudo apt install python3-certbot-apache 如果使用Nginx web服务器,请安装Nginx插件。(如果系统上尚未安装Nginx web服务器,则以下命令将安装该服务器。) sudo apt install python3-certbot-nginx 使用Apache Web服务器获取TLS证书 你需要有一个Apache虚拟主机来聊天。实例在获得TLS证书之前,让我们加密TLS证书。创建虚拟主机文件: sudo nano /etc/apache2/sites-available/prosody.conf 然后将以下文本粘贴到文件中。取代聊天。实例使用你的真实域名。别忘了为它设置一个记录。 <VirtualHost *:80> ServerName chat.example.com DocumentRoot /var/www/prosody </VirtualHost> 保存并关闭文件。然后创建webroot目录。 sudo mkdir /var/www/prosody 将www数据(Apache用户)设置为webroot的所有者。 sudo chown www-data:www-data /var/www/prosody -R 启用此虚拟主机。 sudo a2ensite prosody.conf 重新加载Apache以使更改生效。 sudo systemctl reload apache2 创建并启用虚拟主机后,运行以下命令以获取并安装Let's Encrypt TLS证书。 sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d chat.example.com 用实际数据替换红色文本。您应该看到以下内容,这意味着该证书已成功获得。您还可以查看证书存储的目录。 使用Nginx Web服务器获取TLS证书 你需要有一个用于聊天的Nginx虚拟主机。实例在获得TLS证书之前,让我们加密TLS证书。创建虚拟主机文件: sudo nano /etc/nginx/conf.d/prosody.conf 接下来,将以下文本粘贴到文件中。取代聊天。实例使用你的真实域名。别忘了为它设置一个记录。 server { listen 80; listen [::]:80; server_name chat.example.com; root /var/www/prosody/; location ~ /.well-known/acme-challenge { allow all; } } 保存并关闭文件。然后创建web根目录。 sudo mkdir /var/www/prosody/ 将www数据(Nginx用户)设置为web根目录的所有者。 sudo chown www-data:www-data /var/www/prosody -R 重新加载Nginx以使更改生效。 sudo systemctl reload nginx 创建并启用虚拟主机后,运行以下命令以获取并安装Let's Encrypt certificate with Nginx plugin。 sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d chat.example.com 您应该看到以下内容,这意味着该证书已成功获得。您还可以查看证书存储的目录。 第5步:在Prosody中安装TLS证书 编辑主配置文件。 sudo nano /etc/prosody/prosody.cfg.lua 转到Prosody虚拟主机并添加TLS证书和密钥文件。 ssl = { key = "/etc/letsencrypt/live/chat.example.com/privkey.pem"; certificate = "/etc/letsencrypt/live/chat.example.com/fullchain.pem"; } 这样地: 保存并关闭文件。由于Prosody XMPP服务器作为Prosody用户运行,我们需要允许Prosody用户使用以下命令读取TLS证书和密钥文件。 sudo apt install acl sudo setfacl -R -m u:prosody:rx /etc/letsencrypt/ 第6步:创建用户帐户 可以使用以下命令创建Prosody XMPP服务器的用户帐户。系统将提示您输入密码。 sudo prosodyctl adduser [email protected] 要更改密码,请运行 sudo prosodyctl passwd [email protected] 第7步:重新开始韵律 通过运行以下命令检查配置文件语法: sudo prosodyctl check config 如果语法正确,重新启动Prosody以使更改生效。 sudo systemctl restart prosody 第8步:配置XMPP客户端 本教程使用Pidgin instant messenger作为XMPP客户端。同理心是你可以使用的另一个客户。它们可以通过运行以下命令安装在Ubuntu桌面上: sudo apt install pidgin sudo apt install empathy 在第一次发布时,您需要在Pidgin中添加一个帐户。点击添加按钮。 然后从协议列表中选择XMPP,并输入用户名、域和密码。 点击添加按钮,您将登录。 设置波什 正如我们之前解释的,BOSH允许您在HTTP上使用XMPP,即在web浏览器中。例如,Jitsi Meet视频会议软件使用BOSH将韵律整合到网页中,因此与会者可以在参加在线视频会议时进行文本聊天。 如果启用了BOSH模块,则编辑韵律配置文件(/etc/Prosody/Prosody.cfg.lua),并在配置文件末尾添加以下两行。 consider_bosh_secure = true; cross_domain_bosh = true; https_ssl = { certificate = "/etc/letsencrypt/live/chat.example.com/fullchain.pem"; key = "/etc/letsencrypt/live/chat.example.com/privkey.pem"; } 哪里: 第一行强制执行安全的HTTPS连接。 第二行将COR头添加到BOSH响应中,以允许来自任何域的请求。 https_ssl参数为BOSH服务指定TLS证书和密钥文件。 保存并关闭文件。然后重新开始韵律。 sudo systemctl restart prosody 如果您已经在Ubuntu服务器上启用了UFW防火墙,那么您需要使用以下命令打开端口5280和5281。 sudo ufw allow 5280,5281/tcp 完成本教程后,BOSH端点将在以下地址可用。端口5280用于纯文本HTTP,端口5281用于HTTPS。 http://chat.example.com:5280/http-bind 或 https://chat.example.com:5281/http-bind. BOSH端点是客户端通过HTTP连接到XMPP服务器的URL。 多用户聊天室 要启用MUC(多用户聊天),请在韵律配置文件中添加以下行。取代会议。实例com与您首选的子域。 Component "conference.example.com" "muc" restrict_room_creation = "admin" 第二行只允许管理员创建房间。要为XMPP服务器定义admin,首先需要使用sudo prosodyctl adduser命令创建帐户,如上所示。然后在配置文件中,将帐户添加到admin{…}如下所示。 admins = { "[email protected]", "[email protected]" } 通过运行以下命令检查配置文件语法: sudo prosodyctl check config 如果语法正确,重新启动Prosody以使更改生效。 sudo systemctl restart prosody 故障排除 韵律的主要日志文件是/var/log/Prosody/Prosody。日志还有一个错误日志/var/log/prosody/prosody。犯错误如果韵律没有像你预期的那样工作,那么错误日志是一个检查的好地方。 自动更新TLS证书 您可以创建Cron作业来自动续订TLS证书。打开root用户的crontab文件。 sudo crontab -e 如果使用ApacheWeb服务器,请在文件底部添加以下行。 @daily certbot renew --quiet && systemctl reload postfix dovecot apache2 如果您使用的是Nginx web服务器,请添加以下行。 @daily certbot renew --quiet && systemctl reload postfix dovecot nginx 重新加载Postfix、Dovecot和web服务器是使这些程序获取新证书和私钥所必需的。 收尾 就这样!我希望本教程能帮助您在Ubuntu20.04上安装和配置Prosody XMPP服务器。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门?

    2022.03.23 浏览:111