Outils pour utilisateurs

Outils du site


admin:services:xmpp.chapril.org

Ceci est une ancienne révision du document !


Service xmpp.chapril.org

TODO
  • définir une durée de rétention des données http_upload (1 an pour l'instant)
  • définir des quotas de stockage des données http_upload (200Mo pour l'instant)
  • définir les règles de modération à l'inscription (aucune pour l'instant)
  • personnaliser le message d'accueil reçu automatiquement sur le client XMPP lors de la création du compte

Aspects notables de cette instance XMPP

Identifiants XMPP

Les comptes créés ont des identifiants de la forme pseudo@chapril.org.

Lutte anti-spam/anti-bot

L'inscription au service est ouverte à tout le monde. Il y a actuellement deux mécanismes qui peuvent un peu limiter les abus.

Actuellement l'inscription ne peut se faire qu'à travers un client XMPP, ce qui rend déjà la tâche de création de comptes un peu plus compliquée que si c'était faisable par un formulaire Web classique. Attention donc le jour où on envisage d'activer le module mod_register_web.

Lors de l'inscription un captcha simpliste est présenté, limitant ainsi la création de comptes massive par des bots. Cela dit le captcha est réellement simpliste et il n'est pas impossible qu'un jour des bots soient capables de le déjouer.

Quotas de stockage

Les données partagées (photos, vidéos, pdf, …) sont stockées pendant 365 jours maximum.

Chaque compte dispose d'un quota de 200 Mo pour ces données. Le mécanisme de quota dans ejabberd n'est pas bloquant, lorsqu'un nouveau fichier est envoyé et que le quota du compte est atteint alors ejabberd supprime le ou les plus anciens fichiers de ce compte pour libérer suffisamment de place pour le nouveau fichier.

Données personnelles

TODO Lister les mesures mises en œuvre pour limiter la fuite de données personnelles et décrire clairement ce qui ne peut pas être protégé (par ex. les admins auront toujours la possibilité de savoir quel compte à déposé quel fichier via http_upload)

Intégration du service dans l'infra Chapril

Routage

Les ports à ouvrir :

  • TCP 5222 : xmpp-client
  • TCP 5223 : xmpps-client
  • TCP 5269 : xmpp-server
TODO : clarifier la situation actuelle concernant le routage IPv6

Certificats SSL

Le service XMPP n'étant pas un simple service Web comme la plupart des autres services Chapril, il a nécessité quelques adaptations dans la façon de gérer les certificats letsencrypt.

TODO : détailler la génération de certificats DNS
  • pourquoi du DNS-challenge sur xmpp et du HTTP-challenge sur bastion ?
  • pourquoi du wildcard plutôt qu'une une liste exhaustive de AltNames ?
  • sur bastion
    • xmpp.chapril.org : uniquement pour le site Web et pour le service de partage de fichiers http_upload
  • sur xmpp
    • chapril.org
    • *.chapril.org (wildcard)

Enregistrements DNS

xmpp                    IN      A       xxxxxxxxxx
muc                     IN      CNAME   xmpp
echo                    IN      CNAME   xmpp
pubsub-xmpp             IN      CNAME   xmpp
upload-xmpp             IN      CNAME   xmpp
;proxy                   IN      CNAME   xmpp
 
_xmpp-server._tcp.chapril.org.         86400   IN      SRV 10 10 5269  xmpp.chapril.org.
_xmpp-client._tcp.chapril.org.         86400   IN      SRV 10 10 5222  xmpp.chapril.org.
_xmpps-client._tcp.chapril.org.        86400   IN      SRV  5 10 5223  xmpp.chapril.org.
; un jour peut-être, pour les flux audio/vidéo
;_stun._udp.xmpp.chapril.org.                86400   IN      SRV 10 10 3478  xmpp.chapril.org.
;_stun._udp.jabber.xmpp.chapril.org.         86400   IN      SRV 10 10 3478  xmpp.chapril.org.
 
_xmppconnect.chapril.org.   86400   IN      TXT        "_xmpp-client-xbosh=https://xmpp.chapril.org/bosh"
_xmppconnect.chapril.org.   86400   IN      TXT        "_xmpp-client-websocket=wss://xmpp.chapril.org/ws"

Première installation

Pour mémoire voici comment j'ai réalisé la première installation.

Un serveur PostgreSQL dédié avec un compte utilisateur dédié (à priori la version exacte importe peu)

apt install postgresql
sudo -u postgres createuser -P ejabberd
sudo -u postgres createdb -O ejabberd ejabberd

Puis, après avoir activé le dépôt Debian stretch-backports (pour avoir une version ejabberd pas trop vieille) :

sudo apt install -t stretch-backports ejabberd erlang-p1-pgsql
psql -U ejabberd -h localhost ejabberd < /usr/share/ejabberd/sql/pg.new.sql

Maintenance

Consulter les logs

tail -f /var/log/ejabberd/ejabberd.log | ccze -A

Relancer le service

Recharger le service sans interruption (après avoir modifié une configuration par exemple) :

sudo -u ejabberd ejabberdctl reload_config

Sinon, quand on n'a pas le choix, stopper et relancer le service (avec quelques secondes d'interruption) :

systemctl restart ejabberd

Désactiver un compte

Génère un mot de passe aléatoire pour un compte et ferme immédiatement toutes les sessions actives de ce compte . (encore jamais testé)

sudo -u ejabberd ejabberdctl ban_account <username> chapril.org

Consulter l'état global du service

Les commandes ci-dessous peuvent être utilisées pour créer des sondes de métrologie et/ou de supervision.

La liste exhaustive des commandes possibles :

sudo -u ejabberd ejabberdctl help | less

Lister les connexions établies avec d'autres serveurs XMPP (aka. connexions s2s)

sudo -u ejabberd ejabberdctl incoming_s2s_number
sudo -u ejabberd ejabberdctl outgoing_s2s_number

Nombre de comptes

Nombre total de comptes créés et nombre de sessions actives. Attention, il peut y avoir plusieurs sessions simultanées pour un même compte.

sudo -u ejabberd ejabberdctl registered_users chapril.org | wc -l
sudo -u ejabberd ejabberdctl connected_users_number
admin/services/xmpp.chapril.org.1571470893.txt.gz · Dernière modification : 2019/10/19 07:41 de pitchum