ZxChat with a TURN server/Annex: Installing a TURN server on Ubuntu 14.04/pt

From ZeXtras Suite Wiki

Jump to: navigation, search
Língua: English  • español • português

ISENÇÃO DE RESPONSABILIDADE

  • Este guia trata sobre produtos não desenvolvidos nem suportados por Zextras, e se entende que é um exemplo prático de implementação. Por favor use-o somente como referência e procure informação online sobre seu sistema operacional e sobre servidores TURN quando for implementar uma infraestrutura em ambiente de produção.
  • Um servidor TURN requer um largo de banda considerável dependendo do número de videochamadas mantidas ao mesmo tempo.

TURN em Ubuntu 14.04 com reTurn

reTurn é um servidor e biblioteca cliente STUN/TURN open source altamente eficiente desenvolvido em C++. É uma implementação dos últimos RFCs: RFC5389 (STUN), e RFC5766 (TURN). É a plataforma que escolhimos para testes internos durante o desenvolvimento de ZeXtras Chat e para nosso ambiente de produção.

Este guia foca-se unicamente no componente TURN, pois STUN é implementado nativamente em ZeXtras Suite.

Informação do pacote e dependências

reTurn se pode encontrar no "universo" padrão do repositório de Ubuntu, no pacote resiprocate-turn-server:

root@ubuntu:~# apt-cache showpkg resiprocate-turn-server

Package: resiprocate-turn-server

Versões: 

1:1.9.7-4~ubuntu14.04.1 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_trusty-updates_universe_binary-amd64_Packages)
 

Linguagem de descrição:

                File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_trusty_universe_binary-amd64_Packages

                 MD5: 33f4212bea07cb997ac3ab4d3b97e3f7
 Linguagem de descrição: en
                File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_trusty_universe_i18n_Translation-en
                 MD5: 33f4212bea07cb997ac3ab4d3b97e3f7

1.9.6-1 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_trusty_universe_binary-amd64_Packages)

 Linguagem de descrição: 
                File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_trusty_universe_binary-amd64_Packages

                 MD5: 33f4212bea07cb997ac3ab4d3b97e3f7
 Linguagem de descrição: en
                File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_trusty_universe_i18n_Translation-en
                 MD5: 33f4212bea07cb997ac3ab4d3b97e3f7


Dependências reversas: 
 resiprocate-turn-server:i386,resiprocate-turn-server
 resiprocate-turn-server:i386,resiprocate-turn-server
 sipml5-web-phone,resiprocate-turn-server
 jscommunicator-web-phone,resiprocate-turn-server
 drupal7-mod-drucall,resiprocate-turn-server
Dependências: 
1:1.9.7-4~ubuntu14.04.1 - libresiprocate-1.9 (5 1:1.9.7-4~ubuntu14.04.1) libc6 (2 2.14) libgcc1 (2 1:4.1.1) libssl1.0.0 (2 1.0.1) libstdc++6 (2 4.6) adduser (0 (null)) sip-router (0 (null)) xmpp-server (0 (null)) jscommunicator-web-phone (0 (null)) openssl (0 (null)) resiprocate-turn-server:i386 (0 (null)) 
1.9.6-1 - libresiprocate-1.9 (5 1.9.6-1) libc6 (2 2.14) libgcc1 (2 1:4.1.1) libssl1.0.0 (2 1.0.1) libstdc++6 (2 4.6) adduser (0 (null)) sip-router (0 (null)) xmpp-server (0 (null)) jscommunicator-web-phone (0 (null)) openssl (0 (null)) resiprocate-turn-server:i386 (0 (null)) 

Provides: 

1:1.9.7-4~ubuntu14.04.1 - turn-server stun-server 

1.9.6-1 - turn-server stun-server 

Reverse Provides: 

as of Feb. 22nd 2016

Instalação e configuração

Instalação do pacote

Como root, simplesmente instale "resiprocate-turn-server" usando apt-get:

 root@ubuntu:~# apt-get install resiprocate-turn-server

Logo da instalação certifique-se que o server está ativo executando:

root@ubuntu:~# netstat -npl |grep -i turn

O resultado deve ser algo assim:

tcp        0      0 0.0.0.0:3478            0.0.0.0:*               LISTEN      4320/reTurnServer
tcp6       0      0 :::3478                 :::*                    LISTEN      4320/reTurnServer
udp        0      0 0.0.0.0:3478            0.0.0.0:*                           4320/reTurnServer
udp6       0      0 :::3478                 :::*                                4320/reTurnServer

Configuração

O princiapal arquivo de configuração é /etc/reTurn/reTurnServer.config, e o único que se requer editar é a configuração TurnAddress colocando o endereço ip do servidor. Se deseja editar SSL/TLS veja a seção # SSL/TLS Certificate Settings do arquivo, enquanto as configurações de rede se podem encontrar em # Transport Settings.

Configurar um usuário do servidor TURN

Por padrão, reTurn usa o arquivo /etc/reTurn/users.txt como sua base de dados de usuário.

Como se descreve na seção # Authentication settings do arquivo de configuração, os arquivos usam o seguinte formato:

login:password:realm:state

Todavia, as funções hash para senhas são armazenadas por padrão (UserDatabaseHashedPasswords).

ZeXtras Chat se autentica com um único usuário, especificado na configuração do zimlet. Sugerimos enfáticamente que seja gerada uma senha aleatória forte usando apg:

root@ubuntu:~# apg -M SNCL -m32 -x32 -n1
tixcowdEmEiguc5OxApnalbOmCogfok(

Para criar uma senha aleatória use a utilidade md5sum

root@ubuntu:~# echo -n "tixcowdEmEiguc5OxApnalbOmCogfok(" | md5sum
deb48942a8648211d5e279d441ef495a  -

Depois de gerar uma senha forte adicione a linha relevante ao arquivo users.txt mencionado antes; Ex.: user - zextraschat

hashed pass - deb48942a8648211d5e279d441ef495a

realm - reTurn (o realm padrão pode se trocar no arquivo de configuração)

state - authorized

zextraschat:deb48942a8648211d5e279d441ef495a:reTurn:authorized

Quando o server estiver em funcionamento e o usuário configurado, pode proceder com a configuração do zimlet ZeXtras Chat para usar o novo servidor TURN.


Registro

O arquivo de registros padrão para reTurn encontra-se em /var/log/reTurnServer/reTurnServer.log, e a configuração do msmo se pode mudar desde a seção #Logging Settings do arquivo de configuração.

Arquivo de registro

O archivo do log de reTurn está localizado por padrão em /var/log/reTurnServer/reTurnServer.log, e a configuração do log se pode mudar na seção #Logging Settings do arquivo de configuração.

Personal tools