Instalando um Servidor Jabber jabberd no Ubuntu ou Debian
Autor: O Pajé | Publicado: 2012-06-03T07:07:00-03:00


Jabber é um serviço que implementa o protocolo XMPP (Extensible Messaging and Presence Protocol), um protocolo aberto responsável por definir padrões para a comunicação entre clientes e servidores de mensagens instantâneas. É claro que não é o único padrão neste sentido, já que temos muitos deles (como o ICQ, AIM, MSN, etc.), mas é o único realmente aberto e gratuito.

Porque o XMPP é gratuito, existem muitos servidores e clientes Jabber, que implementam este protocolo e permitem, assim, que você tenha um serviço privado de mensagens instantâneas na sua casa, sua empresa, sua lan house ou rede particular. O objetivo deste artigo é exatamente isto: ajudar-lhe a instalar e configurar seu serviço particular de mensagens instantâneas baseado em Jabber. Note que todas as ações descritas neste tutorial supõem que você tem prioridade de root.





1- De Que Programas Preciso?



Para começar, você precisa de dois tipos de programas:



Um servidor Jabber, que ficará em uma máquina servidora acessível via rede;
Um cliente Jabber, que ficará em cada máquina de usuário.



A princípio, qualquer servidor Jabber deve poder falar com qualquer cliente, sem exclusividade, já que o protocolo XMPP é aberto e único.

Consulte aqui uma lista de clientes Jabber, e consulte aqui uma lista completa de servidores Jabber.

Para efeito deste artigo, vamos utilizar o servidor jabberd, versão 14, que é um servidor leve e bastante flexível, e vamos utilizar, para testar, o cliente pidgin, que é leve e multi-plataforma.





2- Instalação dos Programas



Nas máquinas clientes (dos usuários), instale o pidgin:




apt-get install pidgin



Faça a instalação do cliente em pelo menos uma máquina, para fins de teste. Em último caso, você pode instalar o cliente e o servidor na mesma máquina, para que faça todos os testes e configurações antes da implantação na máquina servidora realmente.


Na máquina servidora, instale o jabberd:




apt-get install jabberd14




(Em algumas distribuições, há o meta-pacote "jabber", que tem o jabberd14 como dependente. Neste caso, use opcionalmente "apt-get install jabber")





Isto instala o servidor jabberd e já roda o script de inicialização, programando-o para carregar sempre durante o boot. Evidentemente, você desejará modificar as configurações do servidor, então é preciso pará-lo:




/etc/init.d/jabberd14 stop






3- Configurando o Servidor jabberd



Toda a configuração do servidor está em um único arquivo XML, que pode ser encontrado em:




/etc/jabber/jabber.xml




Já a configuração do script de inicialização, dependendo de sua distribuição, pode ser encontrada em um destes dois arquivos:




/etc/jabber/jabber.cnf (mais comum no Debian)

ou

/etc/default/jabberd14 (mais comum no Ubuntu)




O arquivo jabber.xml é vastamente documentado e já vem pronto para uso. Contudo, algumas informações você precisará alterar.





Ajustando o nome e domínio do servidor


Ache a linha:




&lt;host&gt;&lt;jabberd:cmdline flag="h"&gt;localhost&lt;/jabberd:cmdline&gt;&lt;/host&gt;




E troque a referência "localhost" pelo nome de sua máquina na rede. Use aqui o que chamamos de FQDN (Full-Qualified Domain Name), ou seja, o nome da máquina com o domínio. Exemplo: se sua máquina se chama "host1" e seu domínio é "minhacasa.org", então configure esta linha assim:




&lt;host&gt;&lt;jabberd:cmdline flag="h"&gt;host1.minhacasa.org&lt;/jabberd:cmdline&gt;&lt;/host&gt;






Observe que a linha acima faz menção à opção de linha de comando "-h". Esta opção é usada na inicialização do servidor pelo script e serve para indicar o nome do host que deverá ser considerado.

Portanto, uma vez alterando o nome de máquina no arquivo jabber.xml, você deve necessariamente abrir o arquivo de configuração do script e fazer a mesma alteração:




/etc/jabber/jabber.cnf (Debian):
JABBER_HOSTNAME=host1.minhacasa.org

ou

/etc/default/jabberd14 (Ubuntu):
HOSTNAME=host1.minhacasa.org


&nbsp;Ainda falta um passo: neste arquivo de configuração do script acima, há referência ao diretório de spool. Este diretório é onde o jabberd armazena todos os dados dos usuários criados (que são arquivos XML contendo as informações de usuário, como login e senha, e o ícone do mesmo). Para cada opção de host o jabberd necessita de um sub-diretório dentro do spool de mesmo nome do host.

Assim, se seu diretório de spool é /var/spool/jabberd/, então você deve criar o diretório:




mkdir /var/spool/jabberd/host1.minhacasa.org




&nbsp;Verifique com que usuário o seu jabberd roda. Em geral, ele roda com usuário e grupo chamado "jabberd". Assim, atribua este diretório a estes usuário e grupo:




chown jabberd /var/spool/jabberd/host1.minhacasa.org

chgrp jabberd /var/spool/jabberd/host1.minhacasa.org






Ajustando a porta



Se você chegou até aqui, seu servidor jabberd já está pronto para rodar perfeitamente. Contudo, ele vai rodar nas portas padrões do Jabber, a porta 5222 (para acesso sem encriptação) e 5223 (para acesso com encriptação). É fortemente recomendável, especialmente se seu servidor estará aberto para acesso externo via internet, que você troque a porta.

Para tanto, localize no arquivo jabber.xml mencionado acima as linhas:




&lt;ip port="5222"/&gt; (usada para acesso sem SSL)

&lt;tls port='5223'/&gt; (usada para acesso com SSL)




Troque os valores 5222 e 5223 para valores que você desejar. É imprescindível, entretanto, que você verifique o firewall de sua máquina onde está instalado o jabberd para se certificar de que as portas escolhidas estão abertas para acesso conforme você deseja. De outro modo, o servidor ficará inacessível.





Cadastramento de usuários



O jabberd vem, por padrão, disponível para aceitar que qualquer novo usuário se cadastre (registre) no sistema. Caso esta não seja a opção de seu desejo, então visite, no arquivo jabber.xml mencionado acima, as tags &lt;register&gt; e escolha a opção que mais lhe convenha.

Para eliminar totalmente a opção de registro automático pelo usuário, elimine deste arquivo todas as tags &lt;register&gt;.

Caso você queira ter total controle sobre os usuários e deseja registrá-los através de um serviço web ou criando-os a mão mesmo, você deverá saber a sintaxe do arquivo XML de usuário para escrevê-lo, ou confiar em um script que faça isto. Se é este seu desejo, veja bons scripts administrativos do Jabber aqui e aqui.

Lembre-se de que, para o Jabber, o nome do usuário sempre tem a fórmula:




nomeusuario@host.dominio
Arquivo: "/var/spool/jabberd/host.dominio/nomeusuario.xml"



Muitos clientes só conseguirão cadastrar ou localizar usuários usando esta forma acima.
Também é importante lembrar-se de que, se você fará o cadastramento de usuários manualmente ou através de outro sistema, os arquivos XML de cada usuário deverão ser atribuídos aos usuário e grupo do jabberd, conforme fizemos com o diretório de spool acima.





4- Reiniciando o Servidor



Após concluídas todas estas modificações, o servidor precisa ser reiniciado. Para tanto, rode os comandos:




/etc/init.d/jabberd14 stop (caso ainda não o tenha feito)

/etc/init.d/jabberd14 start




Para verificar se o servidor rodou usando o nome de host adequado, consulte o comando executado pelo script:




ps ax | grep jabberd




Deve surgir algo como:




2764 pts/1&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00 /usr/sbin/jabberd --background -h host1.minhacasa.org -s /var/spool/jabberd




onde:



--background: informa que o serviço deve rodar como deamon, ou seja, em segundo plano.

-h: informa o nome do host (e, conseqüentemente, a pasta a ser lida dentro do spool);

-s: indica o local onde está o spool.





5- Conclusões



Bom, ao final deste tutorial, você deverá estar com um servidor Jabber rodando perfeitamente. Deve também ser capaz de criar usuários e configurar facilmente um cliente, como o Pidgin. Espero ter ajudado e conto com suas impressões nos comentários!!