Servidor Jabber com SASL e TLS usando Prosody: mudanças entre as edições
(24 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
{{cabeçalho|11 de fevereiro de 2011|http://bit.ly/jabber_sasl_tls}} | {{construção}} | ||
{{exclamação1|Este artigo está baseado no '''Debian | {{cabeçalho|11 de fevereiro de 2011 e readaptado em 24 de janeiro de 2014|http://bit.ly/jabber_sasl_tls}} | ||
{{exclamação1|Este artigo está baseado no '''Debian Wheezy'''.}} | |||
== Instalação e configuração do SASL == | == 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. | 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, com pequenas adapções de configuração, via LDAP ou outro mecanismo escolhido. | ||
Para instalar o SASL, utilize o comando: | Para instalar o SASL, incluindo o suporte à autenticação com senha, utilize o comando: | ||
# apt-get install sasl2-bin | # apt-get install sasl2-bin libsasl2-modules | ||
Edite o arquivo ''/etc/default/saslauthd'' e altere a linha: | |||
Edite o arquivo ''/etc/default/ | |||
START=no | START=no | ||
Linha 35: | Linha 34: | ||
== Instalação e configuração do Prosody == | == Instalação e configuração do Prosody == | ||
No Debian | No Debian Wheezy, a versão do Prosody é a 0.8.2. Instale-o, juntamente com o suporte ao SASL e a compressão de dados, com o comando: | ||
# apt-get install prosody lua-cyrussasl lua-zlib | |||
Edite o arquivo ''/etc/prosody/prosody.cfg.lua'' e 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"; | |||
--} | |||
Altere a linha: | |||
authentication = "internal_plain" | |||
para: | |||
authentication = "cyrus" | |||
A seguir, altere a linha ''VirtualHost'', inserindo o nome da máquina servidora, conforme cadstrado em DNS. Exemplo: | |||
VirtualHost "mensagens.darknet.com.br" | |||
Comente a linha seguinte, colocando dois hífens na sua frente, deixando da seguinte forma: | |||
-- enabled = false | |||
Altere o bloco ''ssl'' mostrado logo depois de ''VirtualHost''. O original é da seguinte forma: | |||
ssl = { | |||
key = "/etc/prosody/certs/example.com.key"; | |||
certificate = "/etc/prosody/certs/example.com.crt"; | |||
} | |||
Altere para: | |||
{ | ssl = { | ||
key = "/etc/ssl/prosody/prosody.key"; | |||
certificate = "/etc/ssl/prosody/prosody.crt"; | |||
capath = "/etc/ssl/certs/ca.crt"; | |||
} | |||
{{exclamação1|É importante ressaltar três aspectos. Primeiro, logo a seguir criaremos as chaves criptográficas ''prosody.key'' e ''prosody.crt''; ''ca.crt'' refere-se ao certificado raiz da CA utilizada. Segundo, o Prosody não permite a manipulação de senhas em texto em canais não criptografados. Por último, é possível levantar vários servidores com vários nomes, bastando repetir os conjuntos de linhas ''VirtualHost'' e ''ssl''}} | |||
Como próximo passo, crie o arquivo ''/etc/prosody/prosody.conf.sasl'', com o seguinte conteúdo: | |||
pwcheck_method: saslauthd | pwcheck_method: saslauthd | ||
Linha 58: | Linha 91: | ||
# adduser prosody sasl | # adduser prosody sasl | ||
<br><br> | <br><br> | ||
== Criação e instalaçã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 e com a chave privada insegura) para o seu servidor jabber. Sugiro que as chaves se chamem ''prosody.crt'' e ''prosody.key''. O campo ''CommonName'' do certificado deverá conter o mesmo nome de máquina utilizado no campo ''VirtualHost'' configurado anteriormente. | |||
Apesar dos locais mais corretos para colocarmos as chaves no Debian serem os diretórios ''/etc/ssl/{certs,private}'', iremos colocá-las em ''/etc/ssl/prosody'', uma vez que o servidor Prosody é executado por um usuário comum (''prosody'), que necessita de acesso aos diretórios de chaves. Assim, execute os seguintes comandos: | |||
# mkdir -p /etc/ssl/prosody | |||
# chmod 500 /etc/ssl/prosody | |||
Coloque as duas chaves dentro do diretório criado. Altere as permissões de acesso das mesmas com o comando: | |||
# chmod 400 /etc/ssl/prosody/* | |||
A seguir, faça o diretório e os seus arquivos pertencerem ao usuário e ao grupo ''prosody'': | |||
# chown -R prosody.prosody /etc/ssl/prosody | |||
Copie o certificado raiz da CA utilizada, com o nome ''ca.crt'', para ''/etc/ssl/certs/''. Em seguida, atribua a permissão 644, utilizando o seguinte comando: | |||
# chmod 644 /etc/ssl/certs/ca.crt | |||
Configurado o serviço, reinicie o Prosody: | |||
# /etc/init.d/prosody restart | # /etc/init.d/prosody restart | ||
<br><br> | <br><br> | ||
== | == Configuração dos clientes == | ||
=== Relações de clientes === | |||
Existem alguns sites que fornecem relações de clientes Jabber (protocolo XMPP). Alguns: | |||
* [http://xmpp.org/xmpp-software/clients XMPP Standards Foundation - Clients] | |||
* [http://en.wikipedia.org/wiki/Comparison_of_instant_messaging_clients Comparison of instant messaging clients] | |||
* [http://www.google.com/talk/otherclients.html Google Talk - Other IM clients] | |||
* [http://www.worldsiteindex.com/chat/winclients.html Jabber Clients for Windows] | |||
* [http://news.softpedia.com/news/Best-5-Jabber-Clients-for-Windows-in-Pictures-86636.shtml Best 5 Jabber clients for Windows in pictures] | |||
* [https://addons.mozilla.org/en-US/firefox/collections/bigou/xmpp Firefox - Addons - Jabber plugins] | |||
<br><br> | |||
=== Mozilla Firefox === | |||
O Mozilla Firefox possui plugins que permitem a utilização de Jabber via cliente em browser. Dentre eles, destaco o SamePlace, que também permite comunicação via MSN, GTalk (Jabber), Twitter, AIM e ICQ. Utiliza criptografia para Jabber como opção default. | |||
No site oficial, http://www.sameplace.cc, há screenshots. Abaixo, um exemplo: | |||
[[image:sameplace.png|center]] | |||
A configuração é bem simples. Os campos são os seguintes: | |||
* Username: coloque o nome escolhido para login. Exemplo: ''eriberto''. | |||
* Domain: coloque o nome escolhido para o servidor Jabber. Exemplo: ''im.debianet.com.br''. | |||
* Password: coloque a sua senha. | |||
A seguir, clique em ''Advanced...'' e faça o seguinte: | |||
* Marque ''StartTLS'' como sistema criptográfico. | |||
* Altere a porta para ''5222''. | |||
* Clique em ''Avançar'' | |||
Agora você poderá se conectar ao servidor. | |||
<br><br> | |||
=== GNU/Linux === | |||
Há vários clientes Jabber para GNU/Linux. Se você usa KDE, talvez se interesse pelo Kopete, que também permite a conexão com MSN e vários outros mensageiros instantâneos. | |||
<br><br> | <br><br> | ||
=== MS Windows === | |||
<br><br> | |||
=== MAC === | |||
<br><br> | |||
== Ativação de debug no SASL e no Prosody == | == Ativação de debug no SASL e no Prosody == | ||
<br><br> | |||
== Configuração de conferência == | |||
<br><br> | <br><br> | ||
{{rodapé|http://www2.clustrmaps.com/user/3d3cf924|http://www2.clustrmaps.com/stats/maps-no_clusters/bit.ly-jabber_sasl_tls-thumb.jpg|11 fev. 11}} | {{rodapé|http://www2.clustrmaps.com/user/3d3cf924|http://www2.clustrmaps.com/stats/maps-no_clusters/bit.ly-jabber_sasl_tls-thumb.jpg|11 fev. 11}} |
Edição atual tal como às 15h50min de 24 de janeiro de 2014
<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 e readaptado em 24 de janeiro de 2014.
Ú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 Wheezy. |
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, com pequenas adapções de configuração, via LDAP ou outro mecanismo escolhido.
Para instalar o SASL, incluindo o suporte à autenticação com senha, utilize o comando:
# apt-get install sasl2-bin libsasl2-modules
Edite o arquivo /etc/default/saslauthd 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 Wheezy, a versão do Prosody é a 0.8.2. Instale-o, juntamente com o suporte ao SASL e a compressão de dados, com o comando:
# apt-get install prosody lua-cyrussasl lua-zlib
Edite o arquivo /etc/prosody/prosody.cfg.lua e 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"; --}
Altere a linha:
authentication = "internal_plain"
para:
authentication = "cyrus"
A seguir, altere a linha VirtualHost, inserindo o nome da máquina servidora, conforme cadstrado em DNS. Exemplo:
VirtualHost "mensagens.darknet.com.br"
Comente a linha seguinte, colocando dois hífens na sua frente, deixando da seguinte forma:
-- enabled = false
Altere o bloco ssl mostrado logo depois de VirtualHost. O original é da seguinte forma:
ssl = { key = "/etc/prosody/certs/example.com.key"; certificate = "/etc/prosody/certs/example.com.crt"; }
Altere para:
ssl = { key = "/etc/ssl/prosody/prosody.key"; certificate = "/etc/ssl/prosody/prosody.crt"; capath = "/etc/ssl/certs/ca.crt"; }
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 e instalaçã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 e com a chave privada insegura) para o seu servidor jabber. Sugiro que as chaves se chamem prosody.crt e prosody.key. O campo CommonName do certificado deverá conter o mesmo nome de máquina utilizado no campo VirtualHost configurado anteriormente.
Apesar dos locais mais corretos para colocarmos as chaves no Debian serem os diretórios /etc/ssl/{certs,private}, iremos colocá-las em /etc/ssl/prosody, uma vez que o servidor Prosody é executado por um usuário comum (prosody'), que necessita de acesso aos diretórios de chaves. Assim, execute os seguintes comandos:
# mkdir -p /etc/ssl/prosody # chmod 500 /etc/ssl/prosody
Coloque as duas chaves dentro do diretório criado. Altere as permissões de acesso das mesmas com o comando:
# chmod 400 /etc/ssl/prosody/*
A seguir, faça o diretório e os seus arquivos pertencerem ao usuário e ao grupo prosody:
# chown -R prosody.prosody /etc/ssl/prosody
Copie o certificado raiz da CA utilizada, com o nome ca.crt, para /etc/ssl/certs/. Em seguida, atribua a permissão 644, utilizando o seguinte comando:
# chmod 644 /etc/ssl/certs/ca.crt
Configurado o serviço, reinicie o Prosody:
# /etc/init.d/prosody restart
Configuração dos clientes
Relações de clientes
Existem alguns sites que fornecem relações de clientes Jabber (protocolo XMPP). Alguns:
- XMPP Standards Foundation - Clients
- Comparison of instant messaging clients
- Google Talk - Other IM clients
- Jabber Clients for Windows
- Best 5 Jabber clients for Windows in pictures
- Firefox - Addons - Jabber plugins
Mozilla Firefox
O Mozilla Firefox possui plugins que permitem a utilização de Jabber via cliente em browser. Dentre eles, destaco o SamePlace, que também permite comunicação via MSN, GTalk (Jabber), Twitter, AIM e ICQ. Utiliza criptografia para Jabber como opção default.
No site oficial, http://www.sameplace.cc, há screenshots. Abaixo, um exemplo:
A configuração é bem simples. Os campos são os seguintes:
- Username: coloque o nome escolhido para login. Exemplo: eriberto.
- Domain: coloque o nome escolhido para o servidor Jabber. Exemplo: im.debianet.com.br.
- Password: coloque a sua senha.
A seguir, clique em Advanced... e faça o seguinte:
- Marque StartTLS como sistema criptográfico.
- Altere a porta para 5222.
- Clique em Avançar
Agora você poderá se conectar ao servidor.
GNU/Linux
Há vários clientes Jabber para GNU/Linux. Se você usa KDE, talvez se interesse pelo Kopete, que também permite a conexão com MSN e vários outros mensageiros instantâneos.
MS Windows
MAC
Ativação de debug no SASL e no Prosody
Configuração de conferência
Redes sociais
- Twitter: Para novidades sobre artigos, livros e palestras, siga-me em eribertomota.