Servidor Jabber com SASL e TLS usando Prosody

De Eriberto Wiki
Ir para navegação Ir para pesquisar

<absHTML>

<tbody> </tbody>
Esta página está em construção e deverá estar pronta em poucos dias. Por favor, volte depois ou consulte-a agora com cautela e paciência.

</absHTML>

by (C) João Eriberto Mota Filho <eriberto (a) eriberto pro br>

Artigo criado em: 11 de fevereiro de 2011.

Última atualização: veja o rodapé desta página.

Tiny URL ou bit.ly: http://bit.ly/jabber_sasl_tls



Este artigo está baseado no Debian Squeeze.

Instalação e configuração do SASL

O SASL (Simple Authentication and Security Layer) é um elemento utilizado para prover a ligação de aplicações com diversos mecanismos de autenticação de usuários diferentes. Podemos citar o PAM e LDAP, dentre outros. No caso deste artigo, utilizaremos a forma mais simples, que é a ligação com o PAM (usuários criados no sistema operacional). No entanto, uma vez interligados o Prosody e o SASL, você poderá autenticar, facilmente, via LDAP ou outro mecanismo.

Para instalar o SASL, utilize o comando:

# apt-get install sasl2-bin
Se por acaso você optar por não utilizar criptografia (TLS), instale também o pacote libsasl2-modules.

Edite o arquivo /etc/default/saslauth e altere a linha:

START=no

para

START=yes

A seguir, reinicie o SASL:

# /etc/init.d/saslauthd restart

Teste o funcionamento do SASL com um usuário válido no sistema. Digamos que haja o usuário "ze" com senha "123". Emita o seguinte comando:

# testsaslauthd -u ze -p 123

A resposta deverá ser:

0: OK "Success."



Instalação e configuração do Prosody

No Debian Squeeze, a versão do Prosody é a 0.7.0. Instale-o, juntamente com o suporte ao SASL, com o comando:

# apt-get install prosody liblua5.1-cyrussasl0

Edite o arquivo /etc/prosody/prosody.cfg.lua e insira como última linha:

sasl_backend = "cyrus";
Se por acaso estiver configurando o Prosody a partir da versão 0.8, utilize authentication e não sasl_backend.

Ainda no mesmo arquivo, comente as linhas que apontam para o certificado localhost, colocando dois hífens na frente das mesmas, conforme mostrado a seguir:

--ssl = {
--        key = "/etc/prosody/certs/localhost.key";
--        certificate = "/etc/prosody/certs/localhost.cert";
--}


Como próximo passo, crie o arquivo /etc/prosody/prosody.conf.sasl, com o seguinte conteúdo:

pwcheck_method: saslauthd
mech_list: PLAIN

Crie um link simbólico, chamado prosody.conf no diretório de controle do SASL, com o seguinte comando:

# ln -s /etc/prosody/prosody.conf.sasl /usr/lib/sasl2/prosody.conf

Adicione o usuário prosody ao grupo sasl, para que o mesmo possa utilizar o sistema de autenticação:

# adduser prosody sasl



Criação do certificado do servidor

Seguindo os passos existentes no artigo Autoridade Certificadora (CA) com o OpenSSL (neste Wiki), crie uma autoridade certificadora e, a seguir, um par de chaves (com a pública assinada pela CA) para o seu servidor jabber. Sugiro que as chaves se chamem prosody.crt e prosody.key. Coloque-as no lugar certo e com as permissões corretas (conforme descrito no artigo citado).

Criação do arquivo de configuração do domínio a ser utilizado

Como já foi visto antes, o Prosody possui um arquivo de configuração geral, localizado em /etc/prosody/prosody.cfg.lua. No entanto, poderemos ter arquivos específicos para os domínios nos quais o servidor irá operar. Vamos a um exemplo para o domínio debianet.com.br, contendo um servidor jabber chamado im (de instant messenger). Para tanto, deveremos criar o arquivo /etc/prosody/conf.avail/debianet.cfg.lua, com o seguinte conteúdo:

VirtualHost "im.debianet.com.br";

ssl = {
        key = "/etc/ssl/certs/prosody.key";
        certificate = "/etc/ssl/private/prosody.crt";
        }

Em seguida, crie um link simbólico dentro de /etc/prosody/conf.d para ativar o serviço:

# ln -s /etc/prosody/conf.avail/debianet.cfg.lua /etc/prosody/conf.d

Ainda, remova o link simbólico que aponta para localhost.cfg.lua, uma vez que não haverá necessidade de conexão de cliente instalado no próprio servidor:

# rm /etc/prosody/conf.d/localhost.cfg.lua

Uma vez configurado o serviço, reinicie o Prosody:

# /etc/init.d/prosody restart



Testes com clientes



Ativação de debug no SASL e no Prosody



Redes sociais

  • Twitter: Para novidades sobre artigos, livros e palestras, siga-me em eribertomota.