« Configuration de prosody et Coturn » : différence entre les versions

De Wiki JabberFR
Aller à la navigation Aller à la recherche
(→‎Introduction : Mise en forme + complément informations)
m (Nicosss a déplacé la page Configuration de Prosody et Coturn vers Configuration de prosody et Coturn : Modification titre pour répondre au modèle Tutoriels serveur)
 
(2 versions intermédiaires par le même utilisateur non affichées)
Ligne 11 : Ligne 11 :
=== Pré-requis ===
=== Pré-requis ===


* Avoir un serveur prosody déjà configuré
* Avoir un serveur '''prosody''' déjà configuré
* Avoir les modules complémentaires de prosody (prosody-modules) activables, si vous êtes dans une version inférieure à 0.12
* Avoir les modules complémentaires de '''prosody''' (prosody-modules) activables, si vous êtes dans une version inférieure à 0.12
* Ne pas être derrière un NAT (la plupart des auto-hébergements ne pourront malheureusement pas suivre)
* Ne pas être derrière un NAT (la plupart des auto-hébergements ne pourront malheureusement pas suivre)
* Avoir un enregistrement DNS sur un sous-domaine dédié, par exemple turn.example.com (ce n’est pas techniquement requis mais c’est plus propre)
* Avoir un enregistrement DNS sur un sous-domaine dédié, par exemple ''turn.example.com'' (ce n’est pas techniquement requis mais c’est plus propre)


Pas un pré-requis : le serveur coturn n’a pas à être au même endroit que prosody (ils ne communiquent pas, tout est géré à travers le secret).
Pas un pré-requis : le serveur '''coturn''' n’a pas à être au même endroit que '''prosody''' (ils ne communiquent pas, tout est géré à travers le secret).


Note : si vous n’avez qu’un serveur derrière un NAT, vous pouvez demander à quelqu’un de confiance la permission d’utiliser son serveur TURN/STUN ainsi que son secret. Les communications sont de toute façon chiffrées de bout en bout. Dans ce cas, vous aurez juste à suivre la partie configuration de prosody de ce tutoriel.
Note : si vous n’avez qu’un serveur derrière un NAT, vous pouvez demander à quelqu’un de confiance la permission d’utiliser son serveur TURN/STUN ainsi que son secret. Les communications sont de toute façon chiffrées de bout en bout. Dans ce cas, vous aurez juste à suivre la partie configuration de '''prosody''' de ce tutoriel.


=== Mise en place de coturn ===
=== Mise en place de coturn ===


* Installez ''coturn'' (souvent également appelé ''turnserver'' dans les distributions).
* Installez ''coturn'' (souvent également appelé ''turnserver'' dans les distributions)
* Selon votre distribution, il est possible qu’il faille aller éditer /etc/default/coturn et décommenter la ligne TURNSERVER_ENABLED=1
* Selon votre distribution, il est possible qu’il faille aller éditer '''/etc/default/coturn''' et décommenter la ligne '''TURNSERVER_ENABLED=1'''
* Configurez coturn (et remplacez le secret '''SVP''', ainsi que le realm) :
* Configurez '''coturn''' (et remplacez le secret '''SVP''', ainsi que le realm) :


  listening-port=3478
  listening-port=3478
Ligne 33 : Ligne 33 :
  pidfile=/run/turnserver/turnserver.pid
  pidfile=/run/turnserver/turnserver.pid


* Ouvrez le port 3478 de votre firewall en UDP, par exemple pour nftables :
* Ouvrez le port '''3478''' de votre firewall en '''UDP''', par exemple pour '''nftables''' :


  udp dport 3478 accept
  udp dport 3478 accept
Ligne 39 : Ligne 39 :
* Démarrez le service coturn/turnserver et vérifiez qu’il n’y a pas d’erreurs dans les logs.
* Démarrez le service coturn/turnserver et vérifiez qu’il n’y a pas d’erreurs dans les logs.


Le secret est important car il sera partagé avec prosody pour générer des identifiants temporaires acceptés par coturn.
Le secret est important car il sera partagé avec '''prosody''' pour générer des identifiants temporaires acceptés par '''coturn'''.


=== Configuration de prosody ===
=== Configuration de prosody ===

Dernière version du 27 février 2021 à 18:06

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

Introduction

Le but de ce tutoriel est de mettre en place le serveur coturn avec la configuration prosody permettant de l’utiliser, afin de pouvoir offrir un service de conversations audio/vidéo fiable via XMPP (avec Movim, Conversations, etc).

Coturn fait à la fois serveur STUN (Simple Traversal of User Datagram) qui permet de découvrir ses adresses et serveur TURN (Traversal Using Relays around NAT) qui permet de se servir du serveur comme relais quand la communication directe est impossible, ce qui est nécessaire dans la plupart des réseaux mobiles.

Pré-requis

  • Avoir un serveur prosody déjà configuré
  • Avoir les modules complémentaires de prosody (prosody-modules) activables, si vous êtes dans une version inférieure à 0.12
  • Ne pas être derrière un NAT (la plupart des auto-hébergements ne pourront malheureusement pas suivre)
  • Avoir un enregistrement DNS sur un sous-domaine dédié, par exemple turn.example.com (ce n’est pas techniquement requis mais c’est plus propre)

Pas un pré-requis : le serveur coturn n’a pas à être au même endroit que prosody (ils ne communiquent pas, tout est géré à travers le secret).

Note : si vous n’avez qu’un serveur derrière un NAT, vous pouvez demander à quelqu’un de confiance la permission d’utiliser son serveur TURN/STUN ainsi que son secret. Les communications sont de toute façon chiffrées de bout en bout. Dans ce cas, vous aurez juste à suivre la partie configuration de prosody de ce tutoriel.

Mise en place de coturn

  • Installez coturn (souvent également appelé turnserver dans les distributions)
  • Selon votre distribution, il est possible qu’il faille aller éditer /etc/default/coturn et décommenter la ligne TURNSERVER_ENABLED=1
  • Configurez coturn (et remplacez le secret SVP, ainsi que le realm) :
listening-port=3478
use-auth-secret
static-auth-secret=mon-secret-généré-aléatoirement
realm=turn.example.com
log-file=/var/log/turnserver/turn.log
pidfile=/run/turnserver/turnserver.pid
  • Ouvrez le port 3478 de votre firewall en UDP, par exemple pour nftables :
udp dport 3478 accept
  • Démarrez le service coturn/turnserver et vérifiez qu’il n’y a pas d’erreurs dans les logs.

Le secret est important car il sera partagé avec prosody pour générer des identifiants temporaires acceptés par coturn.

Configuration de prosody

Il faut commencer par ajouter external_services à la liste modules_enabled.

modules_enabled = {
 …
 "external_services";
}

Ensuite, il vous faut mettre en place la configuration du plugin (remplacez les valeurs également) :

external_services = {                        
    {
        type = "stun",
        transport = "udp",
        host = "turn.example.com",
        port = 3478
    }, {
        type = "turn",
        transport = "udp",
        host = "turn.example.com",
        port = 3478,
        secret = "mon-secret-généré-aléatoirement"
    }
}

Tester

La façon la plus simple est de démarrer une conversation audio et de voir que tout marche ! :)

Sinon, via ce site, vous pouvez tester que votre serveur est bien fonctionnel, aussi bien pour STUN que pour TURN.

  • Pour STUN, il vous suffit de rentrer "stun:turn.example.com" dans le champ URI et de faire "add relay", et vérifier que "gather candidates" trouve des adresses.
  • Pour TURN, vous devrez rentrer "turn:turn.example.com" dans le champ URI et faire "add relay", puis cochez la case "IceTransports value: relay" pour être sûr que le serveur peut bien fonctionner en mode relais, puis faite "gather candidates", s’il y a des résultats (dont l’IP de votre serveur), c’est bon!

Liens pour approfondir (en anglais)