Configuration des ports de prosody

De Wiki JabberFR
Aller à la navigation Aller à la recherche

Tutoriels prosody

  1. Installation du serveur Jabber prosody
  2. Configuration de base du serveur prosody
  3. Création des comptes avec prosody
  4. Configuration des ports de prosody
  5. Configuration avancée de prosody
  6. Configuration de prosody et Coturn
  7. Intégration de LDAP dans prosody
  8. Configurer les passerelles pour prosody
  9. server2server (s2s) de prosody
  10. Plugins de prosody

Ces paramètres affectent la globalité du serveur, de ce fait ces derniers doivent être définis dans la section globale du fichier de configuration.

Standard

c2s_ports - Port d'écoute pour les connexions client-to-server. Par défaut { 5222 }

c2s_interface - Interface d'écoute pour les connexions client-to-server. Par défaut “0.0.0.0”

c2s_timeout - Timeout pour les connexions client-to-server non authentifiées. Off par défaut, pas de timeout.

s2s_ports - Port d'écoute pour les connexions server-to-server. Par défaut { 5269 }

s2s_interface - Interface d'écoute pour les connexions server-to-server. Par défaut “0.0.0.0”

s2s_timeout - Timeout pour les connexions server-to-server non authnetifiées. Par défaut 60 secondes.

legacy_ssl_ports - Port d'écoute pour les connexions SSL d'anciens systèmes. Par défaut {} (liste vide soit aucun).

legacy_ssl_interface - Interface d'écoute pour les connexions SSL d'anciens systèmes. Par défaut “0.0.0.0”

Port 443 partagé

Pour contourner certains pare-feu, il peut être nécessaire d'avoir un serveur XMPP écoutant sur le port 443. S'il n'y a pas serveur web sur le même serveur, il suffit d'indiquer à Prosody d'écouter sur le port 443 (cf ci-dessus). Si non, la configuration suivante est nécessaire, en supposant l'utilisation de nginx comme serveur web :

Configuration de nginx

Sur Debian, installer le paquet libnginx-mod-stream.

Dans /etc/nginx/nginx.conf :

  • s'assurer de la présence en début de fichier de include /etc/nginx/modules-enabled/*.conf;
  • ajouter en fin de fichier :
stream {
   upstream httpserver {
       server localhost:8443;   # webserver_host:webserver_port
   }

   upstream xmppserver {
       server localhost:5223;   # xmpp_server_host:xmpp_over_tls_port
   }

   map $ssl_preread_alpn_protocols $upstream {
       default httpserver;
       "xmpp-client" xmppserver;
   }
   server {
       listen 443;

       ssl_preread on;
       proxy_pass $upstream;
   }
}
  • tous les domaines/vhost nginx (dans /etc/nginx/sites-available/) qui écoutaient sur le port 443 doivent être modifiés pour écouter désormais sur le port 8443 :
listen 8443;
listen [::]:8443;

Configuration de Prosody

Dans /etc/prosody/prosody.cfg.lua ajouter legacy_ssl_ports = 5223.

Configuration des DNS

_xmpps-client._tcp.xmpp.domain.tld. 86400 IN SRV 5  0 443  xmpp.domain.tld.
_xmpp-client._tcp.xmpp.domain.tld.  86400 IN SRV 10 0 443  xmpp.domain.tld.
_xmpp-client._tcp.xmpp.domain.tld.  86400 IN SRV 15 0 5222 xmpp.domain.tld.

Remarque : le support de la XEP-0368 est acquis dès lors que l'enregistrement SRV _xmpps-client est ajouté, peu importe le port sur lequel écoute le serveur (généralement 5223). Selon https://compliance.conversations.im/test/xep0368/ , en février 2024, prêt de la moitié des serveurs publics connus (470/1037) supportent cette XEP, mais très peu (54/470) proposent le port 443.

Sources et docs alternatives

https://wiki.xmpp.org/web/Tech_pages/XEP-0368

https://uwot.eu/nginx-and-xmpp-over-tls/

https://blog.polynom.me/running-prosody-traefik/