1. Introdução ao Jabber
Jabber é um protocolo aberto, com bases XML, para sistemas de mensagens
instantâneas. Softwares com base Jabber são distribuídos em milhares de servidores
através da internet, e usados por cerca de dez milhões de pessoas em todo mundo, de
acordo com a Fundação Jabber Software.
Jeremie Miller iniciou o projecto em 1988; a principal versão pública ocorreu em Maio
de 2000. O produto principal do projecto é o jabberd, um servidor em que os clientes
Jabber se ligam para comunicar. Este servidor pode criar uma rede privada Jabber
(por detrás de um firewall, por exemplo) ou pode se juntar à rede Jabber global e
pública.
Um conceito chave do sistema Jabber são os transportes, também conhecido como
gateways, que permite aos utilizadores acederem a redes usando outros protocolos -
tais como o AIM, o ICQ (usando o OSCAR), MSN Messenger e Windows Messenger
(usando o .NET Messenger Service), SMS ou E-mail. Ao contrário dos clientes de
multiprotocolo, como o Trillian ou Gaim, Jabber fornece este acesso no nível de
servidor comunicando via serviços especiais de gateway em um computador remoto.
Qualquer utilizador Jabber pode se registrar com uma destas gateways fornecendo a
informação necessária para aceder a essa rede, e pode então comunicar-se com os
utilizadores dessa rede como se fossem utilizadores de Jabber. Isto significa que
qualquer cliente que suportar inteiramente o protocolo Jabber pode ser usado para
aceder a qualquer rede em que exista uma gateway, sem necessitar de código extra
no cliente.
As bases do protocolo Jabber, agora administrado pela fundação Jabber Software,
foram aceitas pela IETF como padrão sob o nome XMPP, com RFC número 3920. É
frequentemente considerado como estando na competição com o SIMPLE, baseado
no protocolo do SIP, como protocolo padrão da notificação de presença e de instant
messaging; no entanto, o design do XMPP tem por finalidade fornecer uma plataforma
de interface mais geral entre aplicações.
Instalação do MySQL, Java, Apache e Openfire
Instalação do MySQL e configuração da base de dados para o Openfire
Precisamos instalar o MySQL Server para podermos preparar uma base de dados
para o nosso Openfire.
Vamos instalar o mysql server:
# aptitude install mysql-server
Após a instalação aparecerá uma tela de wizard para a definição da senha do root da
base de dados. Defina uma senha e confirme-a.
Agora vamos acessar o banco de dados e criar a nossa base.
# mysql -u root -p
2. Digite a senha que foi definida na instalação do MySQL.
Agora que já estamos no MySQL, digite os seguintes comandos:
mysql> CREATE DATABASE openfire;
mysql> GRANT ALL PRIVILEGES ON openfire.* TO openfire@localhost
IDENTIFIED BY ´senha´;
mysql> QUIT;
Explicando:
• Na primeira linha estamos criando um banco de dados com o nome "openfire",
que será utilizado pelo servidor Openfire.
• Na segunda linha estamos dando para o usuário "openfire" todos os privilégios
neste banco de dados e estamos definindo para ele uma senha denominada
"senha".
• Na terceira linha estamos saindo do banco de dados.
Pronto, agora já temos a nossa base de dados onde ficaram armazenados todos os
dados pertinentes ao nosso servidor Openfire.
Instalação do Java e do Apache
Como o Openfire trabalha em cima de Java, temos que instalá-lo.
Nos repositórios do Debian já temos o Java, precisamos somente instalá-lo.
# aptitude install sun-java6-jre
Pronto, com isso o Java já será instalado e suas dependências.
Como pretendemos colocar para trabalhar um cliente web e a administração do
servidor Openfire é web, vamos instalar o Apache:
# aptitude install apache2
Pronto, temos a nossa base web para trabalharmos.
Instalação do Openfire
No repositório do Debian temos o Openfire, podemos instalá-lo com o seguinte
comando:
# aptitude install openfire
Porém vou utilizar a última versão.
Vamos baixar a última versão pertinente a hoje do site.
# cd /tmp # wget -c http://download.igniterealtime.org/openfire/openfire_3.6.4_all.deb
Ou seja, o openfire_3.6.4_all.deb.
Vamos instalar:
3. # dpkg -i openfire_3.6.4_all.deb
Pronto, já estamos com o Openfire e o Java instalados com o MySQL instalado e
configurado.
Agora podemos ir para a parte de administração do nosso servidor.
Configuração do servidor Openfire
Agora vamos configurar o Openfire.
Acesse pelo navegador:
http://ip_servidor:9090
Se o seu servidor for local pode utilizar o seguinte endereço.
http://127.0.0.1:9090
Aparecerá uma tela de boas vindas perguntando o idioma, selecione o que você achar
mais conveniente e clique em continuar.
Nesta tela vamos começar a configuração do servidor, informe um domínio e as portas
para administração do servidor, uma porta para trabalhar via HTTP e uma para
trabalhar via HTTPS.
Ex.:
• Informe um domínio: domínio.com.br
• Porta do console admin: 9090
• Porta segura do console admin: 9091
Depois de definir o domínio e as portas, clique em continuar.
Nesta tela podemos definir o tipo de banco de dados, como pretendemos configurar o
Openfire com o MySQL, utilizaremos a primeira opção: conexão padrão do banco de
dados. Clique em continuar.
Nesta tela, na opção "Predefinições do driver de banco de dados", utilizaremos a
opção MySQL.
A segunda classe do driver JDBC podemos manter a padrão: com.mysql.jdbc.Driver
Na terceira opção, URL do banco de dados, utilizaremos o local onde está a nossa
base de dados MySQL. Se você está utilizando o Openfire e o MySQL na mesma
máquina, pode definir da seguinte maneira:
Jdbc:mysql://localhost:3306/openfire
Se estiver em outra máquina faça o seguinte:
Jdbc:mysql://ip_outramaquina:3306/openfire
4. Onde ip_outramaquina é o ip da máquina onde está a sua base MySQL.
Nome do usuário fica como definimos na base de dados mysql: openfire
Senha: a que você definiu para o usuário na opção IDENTIFIED BY no MySQL.
Minimum Connections: fica por sua conta.
Maximum Connections: fica por sua conta.
Tempo de expiração da conexão: 1.0
Daí clique em continuar.
Se for preenchido tudo corretamente, passaremos para a próxima pagina, a de
configuração de perfis. Podemos utilizar a primeira opção e clicar em continuar.
Agora vamos definir o endereço de email do admin e a senha.
Ex.:
• Endereço de email do admin: admin@dominio.com.br
• Nova senha: senha
• Confirme a senha: senha
Sempre utilize senhas fortes com caracteres maiúsculos e minúsculos, caracteres
especiais para deixar a sua senha mais difícil de ser descoberta.
Após definir a senha, clique em continuar e pode se logar no console de
administração.
Logue com o usuário admin e a senha que você definiu.
Criação de usuários e grupos e configuração do compartilhamento de lista de
contatos
Vamos criar um grupo.
O padrão é você criar grupos e atribuir aos grupos os usuários.
Então vamos criar um grupo chamado TI:
1. Clique em "Grupos".
2. Clique em "Criar Novo Grupo".
3. Defina um "Nome do Grupo".
Ex.:
• Nome do Grupo: TI
• Descrição: Departamento de Tecnologia
Clique em "Criar".
5. Pronto, o primeiro grupo está criado.
Agora vamos criar um usuário.
1. Clique em "Usuário".
2. Criar Novo usuário.
O nome de usuário é o nome que será utilizado pelo cliente. Pode ser utilizada
nomenclatura como nome+sobrenome.
Ex.:
• Nome de usuário: jose.silva
• Nome: José da Silva
• Email: jose.silva@dominio.com.br
• Senha: senha
• Confirmar senha: senha
• Is Administrator? Nesta opção você define se o usuário é administrador ou não
do seu servidor.
Clique em criar Usuário.
Na senha defina uma senha padrão para o primeiro acesso e peça para que os
usuários a troquem no primeiro logon.
Pronto, agora temos um usuário e um grupo.
Agora vamos atribuir este usuário a um grupo.
Clique em "Grupos". Aparecerá o grupo TI e que acabamos de criar. Clique em
"Editar". Agora podemos adicionar o jose.silva ao grupo TI.
Na parte da tela, onde está escrito "Membros deste grupo", temos um campo
"Adicionar Usuário(s):", aqui vamos digitar o nome do jose.silva e clicaremos em
adicionar.
Pronto, agora o usuário jose.silva faz parte do grupo de TI.
Vamos criar mais um grupo!
Clique em: Grupos > Criar novo grupo
Nome do grupo: Administração
Descrição: Administração.
Clique em "Criar grupo".
Pronto, o segundo grupo está criado.
Agora vamos criar mais um usuário.
Clique em: Usuário > Criar novo usuário.
6. Nome de usuário: marcos.silva
Nome: Marcos da Silva
Email: marcos.silva@dominio.com.br
Senha: senha.
Confirmar senha: senha
Is Administrator? yes
Clique em criar usuário.
Agora vamos atribuir este usuário a o grupo administração.
Clique em grupos. Aparecerão os grupos TI e Administração que acabamos de criar.
Clique no grupo Administração depois em editar. Agora podemos adicionar o
marcos.silva ao grupo Administração.
Na parte da tela onde está escrito "Membros deste grupo" temos um campo "Adicionar
Usuário(s):", aqui vamos digitar o nome do marcos.silva e clicar em adicionar.
Pronto, agora o usuário marcos.silva faz parte do grupo de Administração.
Agora podemos utilizar o compartilhamento de lista de contatos, um recurso muito útil.
1. Clique em "Grupos"
2. Listar grupos.
Agora aparecerão dois grupos, Administração e TI. Clique em editar no grupo
Administração. Em compartilhamento da lista de contatos selecione a segunda opção:
Ativar o compartilhamento de lista de contatos de grupo.
No campo que apareceu, digite o nome da lista de contatos de grupo, este nome será
visto pelos outros grupos. Ex.: Administração Geral.
Clique no checkbox "Compartilhar grupo com usuários adicionais" e selecione os
grupos que você quer que vejam que o grupo administração está online, ou selecione
a opção todos os usuários e clique em salvar as configurações da lista de contatos.
Agora para o Grupo TI:
Clique em "Grupos". Listar grupos. Aparecerão dois grupos, Administração e TI.
Clique em editar no grupo TI. Em compartilhamento da lista de contatos selecione a
segunda opção. Ativar o compartilhamento de lista de contatos de grupo. No campo
que apareceu, digite o nome da lista de contatos de grupo, digite um nome, este será
visto pelos outros grupos. Ex.: Tecnologia da Informação.
Clique no checkbox "Compartilhar grupo com usuários adicionais" e selecione os
grupos que você quer que vejam que o grupo TI está online, ou selecione a opção
todos os usuários e clique em salvar as configurações da lista de contatos.
Agora quando os usuários conectarem vão aparecer os grupos TI e Administração
com os seus respectivos integrantes.
Configuração dos clientes
7. Demonstrarei como configurar os clientes Spark e Pidgin.
Podemos obter os clientes pelos seguintes endereços:
• Spark: http://www.igniterealtime.org/downloads/index.jsp#spark
• Pidgin: http://www.pidgin.im/
Se utilizar o Spark a configuração será a seguinte:
• Usuário: jose.silva
• Senha: senha
• Servidor: ip_servidoropenfire
Em usuário informe o nome do usuário cadastrado no Openfire. Em senha informe a
senha definida para o usuário. Servidor informe o endereço ip do servidor Openfire, se
seu servidor Openfire estiver local, digite localhost ou 127.0.0.1, se estiver em outra
máquina digite o ip da outra máquina.
Se utilizar o pidgin:
1. Menu contas/Gerenciar contas
2. Clique em adicionar
3. Em protocolo selecione Google talk
4. Nome de usuário: jose.silva
5. Domínio: domínio.com.br
6. Senha: senha
7. Apelido local: nome que aparece para os outros usuários
8. Agora clique em avançado.
9. Em servidor de conexão informe o ip do seu servidor.
10. E clique em adicionar.
Pronto, estamos com os clientes configurados!
Para alterarmos a senha padrão dos clientes, no cliente Pidgin isso é feito pelo menu
Contas/nomeusuário@dominio.com.br/(XMPP)/alterar senha.
No cliente Spark isso é feito pelo menu Spark/Preferências:
• A primeira opção Chat
• Em informações gerais
• Trocar senha para: novasenha
• Confirme a senha: novasenha
Suporte a cliente web
Agora que já temos o nosso cliente local, vamos disponibilizar mais uma ferramenta,
um cliente web. Isso pode ser muito útil quando você acaba precisando falar com
alguém da empresa e está fora em uma lan ou na casa de um amigo, onde não tem o
cliente Spark ou o Pidgin.
Podemos disponibilizar o acesso via http ou https.
Vamos baixar e disponibilizar o cliente web.
# cd /var/www
8. # wget -c http://download.igniterealtime.org/sparkweb/sparkweb_0_9_0.tar.gz
# tar -xzvf sparkweb.tar.gz
# cd sparkweb
# mv SparkWeb.html index.html
Pronto, já temos o cliente.
Podemos acessar ele pelo endereço local:
http://127.0.0.1/sparkweb
Ou remoto:
http://ip_servidor/sparkweb
Insira o seu usuário em "User name", o servidor em "Server" e a senha em
"Password".
Pronto!
Geração de logs de acesso
Podemos configurar o Openfire para gerar logs das conversas. Você pode ver todas
as conversas que precisar depois de instalarmos e habilitarmos um plugin.
Vamos baixar o plugin:
# cd /var/lib/openfire/plugins
# wget -c
http://maven.reucon.com/public/com/reucon/openfire/plugins/archive/1.0.5/archive-
1.0.5.jar
# /etc/init.d/openfire restart
Pronto, já estamos com o plugin, agora temos que habilitar no servidor para gerar os
logs.
Acesse a console de administração do servidor:
http://ip_servidor:9090
Usuário: admin
Senha: senha
Clique em servidor/configuração do servidor.
Clique na opção "Archive Settings".
Clique na segunda opção: Enable - Messages are archived and indexed.
Clique em salvar.
Para consultarmos as conversas:
Clique em servidor/configuração do servidor.
Clique na opção Search archive.
9. Nesta tela nos temos várias opções de consulta por participantes, por data ou por
palavras-chave.
Selecione o seu tipo de consulta e clique em search.
Abaixo das opções de pesquisa existem duas colunas. A da esquerda é a dos
participantes e a da direita a conversa. Temos controle total das conversas.
Integração do Openfire com o MSN
Agora vamos utilizar mais uma ferramenta para deixar o nosso servidor mais
completo. Vamos instalar um plugin para a integração do Openfire com o MSN.
O cliente que dá suporte a este tipo de integração é o Spark.
No console de administração do Openfire:
1. Clique em plugins.
2. Clique em plugins disponíveis.
3. Procure o plugin "Gateway IM", na última coluna está a opção instalar, clique nela.
Pronto, habilitamos o plugins para a integração do Openfire com o MSN.
Agora clique em servidor/gateways.
Temos várias opções, mas aqui estarei mostrando a integração com o MSN. Clique no
checkbox do MSN Messenger. Aparecerão 3 opções: Testes, Opções e Permissões.
Em "Opções" podemos configurar se vai aparecer notificação de emails, updates de
nicknames, habilitar buddy icons e reconectar se desconectado. As opções ficam a
seu critério.
Em "Permissões" temos as seguintes questões:
• Todos os usuários podem se registrar;
• Esse usuário e/ou grupos podem se registrar;
• Somente registro manual (veja a seção registro para gerenciar).
Se habilitar a primeira opção, todos os usuários poderão habilitar a integração do
cliente Spark ou Pidgin com o MSN.
Em "Esse usuário ou grupo" podemos limitar quem pode se registrar.
Somente registro manual, o administrador do servidor Openfire poderá cadastrar os
usuários que devem ter acesso ao MSN pelo Openfire.
Se utilizar a última opção, em servidor/gateways, do lado esquerdo, terá uma opção
registros. Para registrar os usuários:
1. Clique em adicionar um novo registro.
2. Em usuário (JID) tem que informar o usuário openfire.
3. Em gateway selecionar MSN
10. 4. Em usuário informar o usuário msn.
5. Em senha a senha do msn.
6. Em apelido o apelido que será mostrado para os usuários do MSN.
Se escolher a primeira opção os usuários entrarão com o usuário e senha do MSN
diretamente no seu cliente.
No cliente Spark habilita-se um ícone do MSN em cinza. É só clicar no ícone e
selecionar a primeira opção, informar usuário e senha e pronto!
Nos usuários que forem do MSN vai aparecer o símbolo do MSN do lado direito do
nome.
Acho que agora temos um servidor Openfire completo e com várias ferramentas.
Qualquer dúvida fico a disposição.