Clients XMPP
Aquest mòdul de xat es basa en el protocol XMPP, també conegut com Jabber. Per tant, és possible connectar-se als xats mitjançant programari client XMPP. Això pot ser útil, per exemple, per facilitar les operacions de moderació.
Per obtenir la documentació d’usuari associada a aquestes funcions, consulteu la pàgina de documentació de l’usuari.
L’habilitació d’aquestes funcions requereix canvis de configuració al servidor i als registres DNS. No és possible activar-los només des de la interfície PeerTube, i això requereix unes habilitats bàsiques d’administració del sistema.
Iniciar sessió amb el vostre compte de PeerTube
Aquesta funcionalitat encara no està disponible i arribarà en una versió futura del connector.
Iniciar sessió amb un compte XMPP extern
Per habilitar aquesta funció haureu de configurar el vostre servidor i els registres DNS, de manera que els clients XMPP puguin trobar i accedir al servidor Prosody que aquest connector utilitza internament.
Configuració del connector
Comenceu anant a la configuració del connector de Livechat de la vostra instància i, a continuació, activeu la configuració «Permetre connexions a les sales mitjançant comptes XMPP externs». En marcar-ho, apareixen nous camps a continuació.
Primer, el camp «Port per a connexions de servidor Prosody a servidor». El valor predeterminat és 5269, que és el port estàndard per a aquest servei. Tanmateix, podeu canviar a un altre port, si aquest ja s’utilitza al vostre servidor.
A continuació, el camp «Interfícies de xarxa per a connexions de servidor a servidor» us permet indicar a quines interfícies de xarxa ha d’escoltar el servidor. El valor predeterminat «*, ::» indica que s’escolta a totes les adreces IP. Podeu canviar aquests valors, si voleu escoltar només en determinades IP. La sintaxi s’explica al costat del camp.
Quant al camp «Carpeta de certificats», podeu deixar-lo buit. En aquest cas, el connector generarà automàticament certificats autofirmats. Alguns servidors XMPP poden negar-se a connectar-se, depenent de llur configuració. En aquest cas, podeu indicar aquí una ruta al servidor, en la qual heu de col·locar els certificats per ser utilitzats pel mòdul. Depèn de vosaltres generar-los i renovar-los. Més informació a continuació.
Tallafoc
Heu d’obrir el port configurat (5269 per defecte) al vostre tallafoc.
Si utilitzeu Docker per al vostre PeerTube heu de modificar el fitxer
docker-compose.yml
per obrir el port 5269 del contenidor peertube
al món
exterior.
DNS
Heu d’afegir registres DNS per permetre que els servidors remots trobin els components «room.exemple.cat» i «external.exemple.cat».
La manera més senzilla de fer-ho és afegir registres SRV per als subdominis «room» i «external»:
nom del registre: _xmpp-server._tcp.room.exemple.cat. (substituïu «exemple.cat» per la URI de la vostra instància)
TTL: 3600
class: IN
SRV: 0
priority: 0
weight: 5
port: 5269 (adapteu-lo si heu canviat el port)
target: exemple.cat. (substituïu-lo per la URI de la vostra instància)
record name: _xmpp-server._tcp.external.exemple.cat. (substituïu «exemple.ca» per la URI de la vostra instància)
TTL: 3600
class: IN
SRV: 0
priority: 0
weight: 5
port: 5269 (adapteu-lo si heu canviat el port)
target: exemple.cat. (substituïu-lo per la URI de la vostra instància)
Aneu amb compte de mantindre el punt després d’«exemple.cat».
Si utilitzeu l’ordre dig
per comprovar els vostres registres, hauríeu
d’obtenir un resultat semblant a aquest:
$ dig +short _xmpp-server._tcp.room.videos.john-livingston.fr. SRV
0 5 5269 videos.john-livingston.fr.
$ dig +short _xmpp-server._tcp.external.videos.john-livingston.fr. SRV
0 5 5269 videos.john-livingston.fr.
Si no utilitzeu el port estàndard 5269
, també heu d’afegir un registre
SRV per a _xmpp-server._tcp.exemple.cat.
(igual que a dalt, sense el
prefix room.
). Per descomptat, també podeu afegir aquest registre si feu
servir el port estàndard. També funcionarà.
Ús de certificats de confiança
Els certificats autodignats que el connector utilitza de manera predeterminada poden no ser adequats per a tots els servidors XMPP. De fet, poden rebutjar-los per motius de seguretat.
És possible utilitzar certificats validats per una autoritat de certificació. Tanmateix, això requereix coneixements avançats d’administració de sistemes. De fet, donada la multitud de casos possibles, aquí és impossible documentar totes les situacions. Per tant, aquesta documentació simplement explicarà l’objectiu a assolir i donarà un exemple que només serà adequat per a una situació «bàsica» (instal·lació manual de PeerTube, amb l’ús de letsencrypt). Si us trobeu en una altra situació (instal·lació de Docker, certificats signats per una altra autoritat, etc.), haureu d’adaptar l’enfocament.
Principi bàsic
Depèn de vosaltres generar certificats vàlids per als dominis exemple.cat i
room.exemple.cat`. Podeu utilitzar qualsevol mètode compatible amb
Prosody.
A continuació, heu de col·locar aquests certificats en una carpeta la qual
serà accessible per l’usuari peertube
, i després indicar aquesta carpeta
al paràmetre del connector «Carpetes de certificats».
Si voleu utilitzar la utilitat ProsodyCtl per importar certificats, aquesta
utilitat està disponible (un cop iniciat PeerTube) mitjançant l’ordre
següent (adaptant el camí a la carpeta de dades de PeerTube i substituint
«xxx» amb els arguments que voleu passar a prosodyctl ): sudo -u peertube /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody /prosody.cfg.lua xxx
El connector comprovarà un cop al dia si s’ha modificat algun fitxer en aquesta carpeta i tornarà a carregar Prosody si cal.
Mètode per al cas simple
Suposem aquí que la vostra instal·lació de Peertube és «clàssica» (no fa servir Docker) i que els certificats es generen mitjançant letsencrypt, utilitzant l’eina certbot.
En primer lloc haurem de crear un certificat per al subdomini
room.exemple.cat
: aquest és l’URI del component MUC (sales de xat
XMPP). Fins i tot si les connexions es fan a exemple.cat
, necessitarem un
certificat vàlid per a aquest subdomini.
Així que comenceu configurant una entrada DNS per a room.exemple.cat
, que
apunta al vostre servidor. Podeu fer una entrada CNAME (o una entrada A i
una entrada AAAA).
A continuació, utilitzarem nginx (ja instal·lat per al vostre PeerTube) per
generar el certificat de certbot. Anem a crear un nou lloc. Al fitxer
/etc/nginx/site-available/room.peertube
, afegiu:
server {
listen 80;
listen [::]:80;
server_name room.exemple.cat;
location /.well-known/acme-challenge/ {
default_type "text/plain";
root /var/www/certbot;
}
location / { return 301 https://exemple.cat;; }
}
Aleshores activeu el lloc:
ln -s /etc/nginx/sites-available/room.peertube /etc/nginx/sites-enabled/
systemc reload nginx
A continuació preparem el fitxer al qual més tard importarem els
certificats. Suposem aquí que ja teniu el connector actiu. Crearem la
següent carpeta (si encara no existeix), amb l’usuari peertube
per
assegurar-nos que no hi ha cap problema de permisos:
sudo -u peertube mkdir /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/certs
Ara heu de configurar aquesta carpeta a la configuració del connector, per a «Carpetes de certificats». És important fer-ho abans de continuar, en cas contrari, l’script d’importació de certificats els col·locarà al lloc equivocat.
Configurarem certbot perquè importi els certificats generats a la carpeta Prosody. Podrem utilitzar la utilitat ProsodyCtl empaquetada al connector.
Nota: perquè estigui disponible, el connector s’ha d’haver iniciat almenys una vegada.
Crearem un fitxer /etc/letsencrypt/renewal-hooks/deploy/prosody.sh
que
conté:
#!/usr/bin/env sh
/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \
--root \
--config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \
cert import \
room.exemple.cat exemple.cat /etc/letsencrypt/live
Aleshores demanem generar el certificat:
certbot -d room.videos.john-livingston.fr
Si certbot us ofereix diversos mètodes per generar el certificat, trieu «nginx».
Normalment ara hauríeu de trobar els certificats a la carpeta configurada.
Nota: la primera vegada que ho feu, haureu de tornar a carregar Prosody. La manera més senzilla de fer-ho és reiniciar PeerTube.
Mètode quan s’utilitza Docker
Aquest mètode funciona amb la guia de Docker oficial de PeerTube.
Primer, assegureu-vos de crear una entrada DNS per a room.exemple.cat
, que
apunta al vostre servidor. Podeu utilitzar una entrada CNAME (o una entrada
A i una entrada AAAA). Això és necessari perquè «Let’s Encrypt» validi el
domini per a la generació de certificats.
Introduïu el directori on es troba el vostre fitxer docker-compose.yml
.
Obriu un shell al contenidor de certbot:
docker exec -it certbot /bin/sh
Executeu certbot:
certbot
Se us presentarà una sèrie d’indicacions. Introduïu «2» per al tipus d’autenticació:
How would you like to authenticate with the ACME CA?
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Introduïu el nom de domini room.domini.cat
:
Please enter the domain name(s) you would like on your certificate (comma and/or space separated) (Enter 'c' to cancel): room.your_instance.tld
Introduïu el directori on el servidor web PeerTube serveix les sol·licituds
de «Let’s Encrypt», /var/www/certbot
:
Input the webroot for <room.your_instance.tld>: (Enter 'c' to cancel): /var/www/certbot
Hauríeu d’obtenir un resultat semblant al següent:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/room.your_instance.tld/fullchain.pem
Key is saved at: /etc/letsencrypt/live/room.your_instance.tld/privkey.pem
Executeu l’ordre següent dins del contenidor de certbot per donar accés de
lectura als nous certificats i claus privades al grup peertube
. Nota:
Aquesta ordre també farà que els fitxers siguin llegibles per al grup amb ID
999 al sistema amfitrió. Comproveu els grups del vostre sistema per avaluar
el risc abans d’executar aquesta ordre.
chown -R root:999 /etc/letsencrypt/live; \
chmod 750 /etc/letsencrypt/live; \
chown -R root:999 /etc/letsencrypt/archive; \
chmod 750 /etc/letsencrypt/archive; \
find /etc/letsencrypt/ -name 'privkey*' -exec chmod 0640 {} \;
Sortiu del contenidor de certbot:
exit
Editeu el vostre fitxer docker-compose.yml
, canviant la línia entrypoint
sota el servei certbot
a la següent. És el mateix que l’anterior, però
s’ha d’executar automàticament després de cada renovació del certificat.
entrypoint: /bin/sh -c "trap exit TERM; while :; do certbot renew --webroot -w /var/www/certbot; chown -R root:999 /etc/letsencrypt/live; chmod 750 /etc/letsencrypt/live; chown -R root:999 /etc/letsencrypt/archive; chmod 750 /etc/letsencrypt/archive; find /etc/letsencrypt/ -name 'privkey*' -exec chmod 0640 {} +; sleep 12h & wait $${!}; done;"
Continuant editant docker-compose.yml
, afegiu el volum certbot al
contenidor peertube. Hauria de ser així:
volumes:
- ./docker-volume/certbot/conf:/etc/letsencrypt
Reinicieu els vostres serveis:
docker-compose down; docker-comopse up -d
A la configuració de Livechat dins l’administració de PeerTube establiu el directori de certificats de la següent manera:
/etc/letsencrypt/live
Deseu la configuració del connector i comproveu que Prosody pugui veure els certificats:
docker-compose exec -u peertube \
peertube \
/data/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun \
prosodyctl \
--config /data/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \
check certs
Resolució de problemes
Si això no funciona, podeu utilitzar les eines de diagnòstic (un botó es troba a la part superior de la pàgina de configuració del connector) i, en particular, mireu què diu la secció «Comprovació de Prosody».