Servidor Jabber com Openfire + MySQL + Debian Lenny

Instalação e configuração de um servidor Jabber com Openfire e MySQL. Integração do Openfire com o MySQL, dois clientes locais e um cliente web, gerar logs de todas as conversas, integração do Openfire com o cliente MSN, como efetuar a configuração dos clientes Spark e Pidgin.

[ Hits: 140.087 ]

Por: Douglas Q. dos Santos em 19/08/2009 | Blog: http://wiki.douglasqsantos.com.br


Introdução ao Jabber



Olá,

Neste artigo tratarei de como instalar e configurar um servidor Jabber Openfire com o MySQL.

Definição do Jabber pelo Wikipédia:

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.

Fonte: http://pt.wikipedia.org/wiki/Jabber

    Próxima página

Páginas do artigo
   1. Introdução ao Jabber
   2. Instalação do MySQL, Java, Apache e Openfire
   3. Configuração do servidor Openfire
   4. Criação de usuários e grupos e configuração do compartilhamento de lista de contatos
   5. Configuração dos clientes
   6. Suporte a cliente web
   7. Geração de logs de acesso
   8. Integração do Openfire com o MSN
Outros artigos deste autor

IDS com Snort + Guardian + Debian Lenny

Um pouco sobre IPtables

Debian Lenny com Kernel 2.6.28 + Layer7 + Firewall

Debian + Postfix + MySQL + PostfixAdmin + MailScanner + Webmail + Quotas

Bonding para Heartbeat + Bonding para DRBD + OCFS2 + Debian Squeeze

Leitura recomendada

Caso de Estudo: E-mail Server ISP

Recuperando sistema em mirror LVM 1

Squid configurado como proxy no Ubuntu Server

Aprimoramento de Desempenho da Instalação Debian (parte 2)

Colocando seu Fluxbox totalmente transparente

  
Comentários
[1] Comentário enviado por ramos1986 em 21/08/2009 - 10:35h

Estava a procura de uma solução assim, vou fazer o teste.
Parabéns

[2] Comentário enviado por nislid em 22/08/2009 - 02:45h

Douglashx, fiz exatamente como orientado... mas na hora de autenticar o openfire com o user admin eu nao acesso... da erro na senha... instalei 2x e ocorre o mesmo erro.. poderia me ajudar a terminar de instalar?

grato

[3] Comentário enviado por scherer89 em 22/08/2009 - 09:48h

Quando está tudo pronto, na tela do console admin e senha correta não autentica. Foi o que aconteceu comigo, minha solução:
faltava o java driver para o mysql. Então:

apt-get install libmysql-java


Espero ter ajudado.



[4] Comentário enviado por nislid em 22/08/2009 - 13:52h

Scherer89 muito obrigado pela ajuda, deu certo!...

[5] Comentário enviado por nislid em 22/08/2009 - 13:55h

alguem ja tentou instalar o openmeeting autenticando no openfire?

[6] Comentário enviado por gregh em 23/08/2009 - 14:06h

Ok, testado e funcionando.
Agora me surgiu um pequeno problema, quando reinicio o micro, o http://localhost:9090 nao se ativa sozinho, ou seja, penso que o daemon
nao esta carregando automaticamente com o sistema.
Toda vez preciso digitar o seguinte no console:
root@gregh:/opt# cd /opt/openfire/bin/
root@gregh:/opt/openfire/bin# ./openfire start
Starting openfire
root@gregh:/opt/openfire/bin# nohup: appending output to `nohup.out'


Ahh, parabens pelo artigo.

[7] Comentário enviado por removido em 24/08/2009 - 08:49h

Ola,

Na hora da instalação deve ter dado algum problema suponho.

Por que o openfire cria um arquivo de inicialização em /etc/init.d/openfire

E já o coloca para iniciar junto do sistema.

De uma olhada para ver se este arquivo esta lá.

Caso contrario crie um link do arquivo de inicialização do openfire para lá.

com
#ln -s /opt/openfire/bin/openfire /etc/init.d/openfire

depois coloque ele para iniciar junto com os outros serviços.

#update-rc -f openfire defaults

Com isso o proprio debian já vai dar as prioridades para eles nos run-levels necessarios.

Qualquer coisa estou a disposição.

[8] Comentário enviado por andrefreire em 30/08/2009 - 19:10h

Muito bom seu artigo ! Complementando seu trabalho ja coloquei intregado a uma base de Usuários do AD e outra do Openldap.

[9] Comentário enviado por removido em 31/08/2009 - 16:13h

Obrigado,


O openfire da um belo suporte tambem no AD e no OpenLdap.

Eu trabalhava com eles porem migrei tudo para o banco de dados.


A administração é muito melhor.


E um Backup e restauração leva minutos com um Banco de Dados.

Enquanto em um AD ou um OpenLdap é bem mais demorado, ainda mais quando centenas de pessoas usam a ferramenta no cotidiano.

Mas Funcionam e muito bem.


Douglas.

[10] Comentário enviado por douglas.ti.br em 10/09/2009 - 13:58h

Parabéns xará, esse artigo me apresentou o Openfire, com certeza vou explorar todos os recursos que esta maravilha do software livre pode oferecer.

Abraço!

[11] Comentário enviado por gostt em 19/09/2009 - 10:59h

OlA.
Com o op-enfire + cliente msn, da para tar o logs tanto do protocolo MSN como do jabber ?

Abraços

[12] Comentário enviado por removido em 21/09/2009 - 14:28h

Ola.


Sim.

O Openfire esta integrado com a Rede MSN com isso todos os pacotes de informação passam pelo Openfire.


Agora já esta mais facil de controlar as conversas.


Pois já esta vindo com um plugin é so ativar este plugin e usar.


Monitoring Service Monitors conversations and statistics of the server.



Qualquer Dúvida fico a disposição.


Douglas.

[13] Comentário enviado por feliperossi em 16/10/2009 - 18:13h

Boa noite.

Primeiramente parabens pelo artigo.

instalei ele perfeito. esta funcionando 101%.
so estou com uma duvida ou problema.
nunca tinha trabalhado com jabber.
tenho uma empresa que administro com 6 filiais.
tenho vpn interligando as mesmas.
gostaria de verificar se existe a possibilidade de interligar as mesmas
pelo servidor jabber, para todas se comunicarem.


grato


[14] Comentário enviado por removido em 16/10/2009 - 18:22h

Ola Felipe.


O jabber pode ser liberado para a internet sim.

Eu tenho mais de 100 pessoas espalhadas pelo brasil usando o meu servidor.


Por que são gerentes e representantes e precisam estar se comunicando.


Como você tem uma vpn fica mais facil ainda.

so libere para a rede da vpn a porta 5222 para poder trafegar entre os gateways das vpn.


Ou use um ip Publico no servidor.


No meu caso o que fiz.

Instalei o servidor jabber fiz uma redundancia dele e fiz uma regra no firewall para aceitar as conexões da internet.


Com isso tanto a minha rede interna quanto a externa tem acesso ao mesmo servidor e dai vai depender de como vc montou os grupos para se comunicarem.


No meu caso os externos tem acesso somente a alguns setores da minha empresa.


Qualquer dúvida fico a disposição.


Douglas.

[15] Comentário enviado por feliperossi em 16/10/2009 - 22:47h

ok perfeito. como tenho um ip fixo vou centralizar o mesmo e disponibilizar via web e openvpn.


agora apareceu um problema.
do nada nao aceita mais o login e senha
admin e senha que estabeleci.
tentei desinstalar e instalar novamente
e nao consigo mais acessar o painel.

o que pode estar acontecendo.

grato


[16] Comentário enviado por feliperossi em 16/10/2009 - 22:53h

desculpa o post acima
nao tinha lido o post do amigo scherer89
resolvido

vlws

[17] Comentário enviado por ramalhoneto em 25/10/2009 - 18:41h

Olá pessoal!

Eu acabei de instalar e na tela do console admin, digito usuário e senha correto e não autentica e não aparece erro nenhum. Instalei o driver libmysql-java e continua do mesmo jeito.

O pode ser???

[18] Comentário enviado por removido em 26/10/2009 - 09:31h

Ola,

O usuário que você tem que utilizar é o admin para efetuar o primeiro acesso.

É este o usuário que você esta utilizando ?

[19] Comentário enviado por ramalhoneto em 26/10/2009 - 13:02h

Olá douglashx,

Obrigado pela ajuda.

É exatamente com o usuário admin que estou tentando. Eu digito o usuário e senha ele retorna para a página de login novamente, e quando digito a senha errada aí me aparece informando que o usuário e senha esta icorreta.

[20] Comentário enviado por removido em 26/10/2009 - 13:25h

Ola,

Cara se você instalou tudo corretamente não poderia dar nem um erro.
Recapitulando:
Instalou os seguintes pacotes:

sun-java6-jre,apache2,libmysql-java

Só tente instalar estes pacotes novamente para ver se não ficou nem uma dependência deles.

Tente instalar mais o seguinte pacote.

libapache2-mod-auth-mysql


Senao funcionar veja os logs em /var/log/openfire neste diretório tem os seguintes arquivos de log.
debug.log error.log info.log warn.log

tente seguir os procedimentos que te passei.


qualquer coisa avise.



Só mais uma pergunta, qual distribuição você esta utilizando ?



[21] Comentário enviado por doomk em 29/10/2009 - 11:02h

Bom Dia Galera,


Uma dúvida, essa solução necessita de uma máquina potente? como ele precisa de java e banco de dados, estou na dúvida.

Quero fazer em uma maquina virtual, de qto de memória RAM eu precisaria e qto de HD? inicialmente 10 pessoas utilizarão o serviço, mas com certeza esse número aumentará.


Desde já, agradeço a atenção de vocês.


[22] Comentário enviado por removido em 29/10/2009 - 11:23h

Não precisa de muita maquina.

Eu acabei de montar mais um servidor Jabber de teste com uma vm com 8 GB de HD, 256 de RAM.

E funciona Bem de boa.



Douglas


[23] Comentário enviado por doomk em 29/10/2009 - 16:53h

verdade...

consegui instalar aki de boa. está funfando legal... brigadão ae.

[24] Comentário enviado por thiago_sp em 22/11/2009 - 11:15h

Eu conseguiria liberar o jabber pela internet mesmo tendo ip dinâmico? Daria para usar uma solução no-ip como uso para acessar os servidores via VPN?

[25] Comentário enviado por removido em 22/11/2009 - 11:34h

Ola,

A principio não é para dar nem um erro, se voce já trabalha com vpn para a internet então o jabber vai funcionar normalmente.
Só não te garanto que a porta vai estar habilitada, pois como é um link dinamico de adsl nem todas as portas são disponiveis.
se a porta não estiver disponivel so veja alguma porta que estaja disponivel e faça um NAT no modem ou firewall para o redirecionamento de uma porta habilitada no link para a porta 5222 interna.


Qualquer dúvida fico a disposição.

Douglas.
msn:quintilianodouglas@hotmail.com

[26] Comentário enviado por assuncao.claudio em 25/03/2010 - 15:11h

Parabéns pelo artigo, muito bom mesmo, segui e deu tudo certo.

Queria apenas tirar uma dúvida: o que preciso liberar nesse servidor (iptables) para que o SPARK web fique disponível externamente ?
Esse servidor está dentro da minha rede interna e não é o gateway de internet.

Abraços e desde ja agradeço !

Claudio Assunção

[27] Comentário enviado por douglas_dksh em 25/03/2010 - 15:23h

Cara você pode fazer isso no seu servidor de Firewall.

#Redireciona para servidor Jabber
iptables -t nat -A PREROUTING -d 200.200.200.200 -p tcp --dport 5222 -j DNAT --to 192.168.0.1:5222 -m comment --comment "Servidor Jabber"

#Redireciona para servidor JabberWeb
iptables -t nat -A PREROUTING -d 200.200.200.200 -p tcp --dport 80 -j DNAT --to 192.168.0.1:80 -m comment --comment "Servidor JabberWeb"

A primeira regra faz o redirecionamento do seu ip externo 200.200.200.200 para o interno 192.168.0.1 e você pode liberar como coloquei no exemplo somente a parte web a porta 80 ou a porta 5222 que é a do openfire mesmo, com isso os clientes do spark conseguem conectar externamente na porta 5222.
Não esqueça de liberar o FORWARD no seu firewall se ele tiver as políticas como DROP.


Douglas




[28] Comentário enviado por assuncao.claudio em 25/03/2010 - 22:04h

Olá Douglas, obrigado pela ajuda, mas estou com 2 situações em que fiz alguns testes e até agora não resolveu.

O primeiro foi liberar as portas conforme você falou: consigo acessar via web, mas não consigo conectar (se quiser testar tenta acessar http://interno.ldsoft.com.br:3402/sparkweb/). Esse servidor tem IP publico fixo.

A outra situação foi a seguinte: tinha um link do VELOX aqui sobrando, então coloquei outra placa de rede e tentei separar para que a entrada fosse diretamente por um link separado, até porque tenho liberar alguns acessos externos e queria usar o mesmo para não afetar minha internet. Mas como liberar as portas já que o IP é dinâmico ? Tentei alguns comandos mas não obtive sucesso. Não tenho certeza, mas acho que está faltando liberar portas no modem, tentei mas ainda assim não funciona.

Sem querer abusar da sua boa vontade, fico grato se puder ajudar.

Abraços !

Claudio

[29] Comentário enviado por diegodvaz em 11/05/2010 - 10:19h

[RESOLVIDO] Estou com o seguinte problema:

Estou com o Java, Openfire 3.6.4, MySQL instalados, porém, quando vou conectar a base de dados que eu criei o Openfire emite o seguinte erro:

A connection to the database could not be made. View the error message by opening the "/logs/error.log" log file, then go back to fix the problem.

Consultei o referido log, porém, não conseguí nenhum esclarecimento ou maneira de solucionar meu problema.

Segue abaixo o último trecho do log /var/log/openfire/error.log:

java.net.ConnectException
MESSAGE: Connection refused

STACKTRACE:

java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:209)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39)
at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159)
at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102)
at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44)


** END NESTED EXCEPTION **


Desde já agradeço, obrigado!

[30] Comentário enviado por SPH em 16/08/2010 - 22:04h

Meu Passo a Passo exatamente como deve ser, so tive um pt no instalar o java6 la mas acertei colocando os repositorios non-free no sources.list daew fico show....Otima tuto pap ou seja la como vc chama me ajudo pra caramba. na prefeitura foi show

[31] Comentário enviado por rodrigo.pereira em 18/04/2011 - 16:27h

Olá pessoal, gostaria de saber porque o meu sparkweb não está aceitando o usuário e senha que eu coloco.... no momento que clico no botão para acessar, a tela carrega e quando terminar o mesmo volta para a tela de login, alguém poderia me ajudar ? grande abraço ...

[32] Comentário enviado por israelsoares em 16/03/2012 - 13:46h

Prezado Douglas Q. dos Santos ;
Artigo perfeito, só qua na integração com msn, eu não consigo ver os meus contatos. o contato logado no msn consegue me enchergar e me chamar para uma conversa, mais eu não os vejo.
Outra coisa, favor informar forma de fazer backup do banco de dados para que não tenhamos que refazer tudo caso haja algum problema com o servidor.
Obrigado.
Abraços.
Israel Soares

[33] Comentário enviado por aniel em 19/07/2014 - 11:21h


[31] Comentário enviado por rodrigo.pereira em 18/04/2011 - 16:27h:

Olá pessoal, gostaria de saber porque o meu sparkweb não está aceitando o usuário e senha que eu coloco.... no momento que clico no botão para acessar, a tela carrega e quando terminar o mesmo volta para a tela de login, alguém poderia me ajudar ? grande abraço ...


O MESMO ACONTECE COMIGO, COMO FAÇO PARA RESOLVER ESTA SITUAÇÃO???????????

[34] Comentário enviado por douglas_dksh em 19/07/2014 - 11:33h

E ai velho, eu to pra atualizar esse how to, logo logo, preciso ver o que mudou, questões de bibliotecas e dependências.

Se você precisar dos meus artigos atualizados por favor verifique em: http://www.douglas.wiki.br

Lá tem um artigo no Debian Squeeze eu não tive tempo de atualizar para o Debian Wheezy.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts