Configuration des ports 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