Wildfire - Comunicação instantânea (Jabber) integrada ao Active Directory

Apresento-lhes o WILDFIRE: um excelente servidor baseado no protocolo Jabber que lhes fornecerá a solução definitiva para comunicação instantânea na sua rede. Os recursos ficarão ainda melhores quando integrado ao Active Directory e gerenciado pelo conceituado PostgreSQL.

[ Hits: 162.604 ]

Por: Kleber Vieira de Araujo em 25/08/2006 | Blog: http://www.slackware.com


OpenLDAP



O LDAP (Lightweight Directory Access Protocol) é um protocolo utilizado pelos servidores para concentrar informações em um repositório logicamente organizado. É graças a ele que informações comuns podem ser inseridas, alteradas, excluídas e consultadas de uma espécie de "banco de dados de informações". Ao se criar um usuário no domínio, por exemplo, as informações referentes a esse usuário estarão armazenadas e disponíveis graças a este protocolo. Por sua vez, o OpenLDAP é uma implementação OpenSource do LDAP.

Apesar da extensão .tgz (geralmente utilizada por pacotes pré-compilados), os arquivos descarregados do site oficial do OpenLDAP estão em formato de código-fonte pronto para compilação. Se preferir, ao descarregá-lo, mude a sua extensão para .tar.gz (isso pode ajudar a evitar confusões).

Vamos então, descompactar o arquivo, acessar o diretório onde se encontra o código-fonte do OpenLDAP e compilá-lo. A seqüência de comandos é:

# tar zxvf openldap-stable-20051018.tar.gz
# cd openldap-3.2.11
# ./configure --prefix=/usr \
   --enable-syslog --enable-cleartext  \
   --enable-crypt --enable-lmpasswd \
   --enable-ldbm --enable-modules \
   --enable-wrappers --with-threads \
   --without-cyrus-sasl


Durante este procedimento, ocorreu um erro no meu sistema, decorrente do ambiente que estou utilizando (versão do sistema operacional, componentes instalados, etc). Acredito que se você estiver utilizando outra distribuição ou outra versão do Slackware, pode ser que não se depare com este problema. Aparentemente é algo relacionado à incompatibilidade de versões do BarkeleyDB ou mesmo de links simbólicos do "db.h". A mensagem de erro foi:

checking for Berkeley DB version match... Berkeley DB version mismatch
        header: Sleepycat Software: Berkeley DB 3.3.11: (July 12, 2001)
        library: Sleepycat Software: Berkeley DB 4.2.52: (December  3, 2003)
no
configure: error: Berkeley DB version mismatch

Fui então verificar as versões instaladas e para minha surpresa havia mais de uma versão no sistema. Provavelmente fui descuidado durante a instalação do Linux e não observei este fato, ou não. Observe os pacotes que estavam instalados:

# ls /var/log/packages/db*
db3-3.3.11-i486-4
db31-3.1.17-i486-1
db4-4.2.52-i486-2

Verifiquei no site oficial e notei que uma versão mais nova estava disponível. Radicalmente removi os 3 pacotes, executando os comandos:

# removepkg /var/log/packages/db*
# mv /lib/libdb-4.2.so /tmp
# ldconfig


Efetuei o download da última versão da BerkeleyDB e descompactei. Compilei e instalei assim:

# tar zxvf db-4.4.20.tar.gz
# cd db-4.4.20/build_unix
# ../dist/configure --prefix=/usr
# make
# make install
# checkinstall


IMPORTANTE: Observe que para eliminar completamente a incompatibilidade, tive que mover o arquivo "libdb-4.2.so" para um outro diretório. Não tenho absoluta certeza de que ele é de fato desnecessário ao sistema, por isso sugiro que mantenha-o guardado em algum lugar caso, futuramente, a sua ausência venha a ocasionar algum tipo de problema.

Depois de instalada a nova versão do BerkeleyDB, retornei ao diretório do código fonte do OpenLDAP e executei novamente:

# ./configure --prefix=/usr --enable-syslog \
   --enable-cleartext  --enable-crypt \
   --enable-lmpasswd --enable-ldbm \
   --enable-modules --enable-wrappers \
   --with-threads --without-cyrus-sasl


Agora sim, podemos compilá-lo:

# make depend
# make
# checkinstall
# ldconfig


Pronto: o LDAP está instalado em nossa máquina. Vamos então realizar uma configuração básica. Vamos editar o arquivo slapd.conf. Abaixo segue o arquivo que utilizei (sem as linhas comentadas):

# cat /usr/etc/openldap/slapd.conf |grep -v "#"
include      /usr/etc/openlap/schema/core.schema
include      /usr/etc/openlap/schema/cosine.schema
include      /usr/etc/openlap/schema/inetorgperon.schema

pidfile      /usr/var/run/slapd.pid
argsfile     /usr/var/run/slapd.args

olcAccess:   to * by * read

database     bdb
suffix       "dc=playboy,dc=com,dc=br"
rootdn       "dc=playboy,dc=com,dc=br"
rootpw       secret
directory    /usr/var/openldap-data
index        objectClass      eq
Depois de configurar o arquivo, podemos colocar o daemon no ar, assim:

# /usr/libexec/slapd -f /usr/etc/openldap/slapd.conf

Página anterior     Próxima página

Páginas do artigo
   1. Por quê?
   2. Considerações iniciais
   3. O ambiente utilizado
   4. Obtendo os softwares necessários
   5. Kerberos
   6. OpenLDAP
   7. PostgreSQL
   8. Instalando o Wildfire
   9. Configurando o Wildfire
   10. Criando usuários e grupos
   11. Instalando e configurando o cliente
   12. Integrando ao Active Directory
   13. Observações finais
Outros artigos deste autor

Linux e Active Directory (Integrando COMPLETAMENTE sua estação Linux a um domínio MS Windows 2000/2003 Server)

Leitura recomendada

Octave - Programação científica no Linux

Vala: Vale a pena aprender uma nova linguagem de programação?

Manipulação de arquivos PDF no Linux

Hbasic, um forte candidato open source para brigar com o Microsoft Visual Basic

Instalação ZABBIX Proxy CentOS/MySQL

  
Comentários
[1] Comentário enviado por komodo em 25/08/2006 - 19:30h

opa, Kl3b3r.

Muito divertido a instalação, configuração e os exemplo de ambiente..:)

Muito bom

[]'s

Silésio Gabriel

[2] Comentário enviado por removido em 25/08/2006 - 19:54h

Cara,
parabéns pelo trabalho e gostei do bom humor!! :D

Eu já uso o Wildfire+cliente spark para 110 usuários.
Irei iniciar os testes de migração da base para AD.




[3] Comentário enviado por Arauto em 25/08/2006 - 21:47h

Muito bom artigo, também gostei muito. Parabéns

[4] Comentário enviado por pink em 26/08/2006 - 13:49h

Amei seu artigo... Muito legal e útil, já faz parte dos meus favoritos. Parabéns.
Abraços

[5] Comentário enviado por marcelogpl em 27/08/2006 - 11:07h

Cara,

seu artigo está um verdadeiro Guia de Instalação.
São estas colaborações que fazem a área de T.I. forte e crescente, surgindo a mais e mais colaboradores.

Muito bom!

[6] Comentário enviado por squidfjv em 27/08/2006 - 22:36h

Krebim! Parabens nota 10 seu artigo!! e quanto as piadinhas no tutorial vocês não viram foi nada eheheh

[7] Comentário enviado por deivid.veras em 28/08/2006 - 11:21h

Muito Legal!

Vou colocar em teste aki na empresa!

[8] Comentário enviado por balani em 29/08/2006 - 09:59h

Cara muito bom o seu artigo, estava tentando fazer essa integração, vlw

[9] Comentário enviado por rbnamerico em 29/08/2006 - 11:34h

Kleber, show de bola teu artigo! muito bom mesmo, ótima linguagem! Mas eu fiquei com uma dúvida: há algum meio de fazer auditoria no que foi enviado pelos usuários? Fica algum tipo de histórico no servidor? Fui, valeu!

[10] Comentário enviado por fabiolourenco em 29/08/2006 - 13:46h

Nossa nunca vi um artigo tão bem feito e detalhado como esse, nota dez mesmo, esta tão bem explicado que nem se quer teve como existir aqueles típicos problemas que as pessoas sempre tem, compilar ou não encontrou algum arquivo e etc.

[11] Comentário enviado por leandrov em 31/08/2006 - 08:48h

Bem feito, recomendo também para os usuários de LDAP usem também o GOSA, eu sei parece um nome estranho ... mas é um programa para gerenciar usuários que roda em cima do LDAP muito bom.
Thanx

[12] Comentário enviado por Renatim em 12/10/2006 - 16:29h

eu gostaria de saber se tem como eu configurar grupos de usuarios no jabber,,, tipo,,, autenticando no Active Directory, ai quero que só os usuarios que tem são do grupo j.TI se encherguem, e os do j.financeiro so encherguem quem é do j.financeiro e quem é do j.administrativo so enchergue quem é do j.administrativo, isto tudo são grupos no Active directory que coloco pra pessoa, gostaria de saber se tem como fazer isso.

valeu.

[13] Comentário enviado por silvio_soft em 30/11/2006 - 15:12h

Eu não consigo incluir usuários nos grupos! O grupos e usários estão listados, eu consigo me conectar e conversar com os contatos, mas os grupos possuem membros 0 e não consigo incluir também, o que devo fazer?

[14] Comentário enviado por malungo em 12/12/2006 - 18:12h

Excelente tutorial Kléber....agora esbarrei em um probleminha aqui...ao terminar as configurações e restartar o wildfire, recebo a seguinte mensagem: nohup: appending output to `nohup.out' ....vc se deparou com esta mensagem????

[15] Comentário enviado por fbione em 16/01/2007 - 18:06h

Caro colega, parabéns pelo tutorial, mas gostaria de tirar uma duvida, na minha organização o login padrão para acesso a rede é a matricula do funcionario, esse é o grando problema, como faço quando eu adicionar um usuario exiba o "display nome" nome completo do usuario cadastrado no AD e não o login que é a matricula.
Fabrício.

[16] Comentário enviado por fbione em 16/01/2007 - 18:13h

Uma outra dúvida é um grande furo de segurança, pois fiz a instalação com administrador de dominio, então quando editei o arquivo Wildfire.xml tava lá exibindo o usuario e a senha do usuario de dominio, caso alguem ter acesso a esse servidor, tará conhecimento esse senha importantissima. Você tem algo relativo a isso?
Obrigado. Fabrício

[17] Comentário enviado por ponciocosta em 26/01/2007 - 17:00h

Estou tendo problemas com a integração do ldap ao wildfire, fiz todas as configurações que estão descritas no site e mesmo assim o wildfire nao loga, o que ode ser????

[18] Comentário enviado por rogeriosap em 11/04/2007 - 14:16h

Muito bom este artigo, mas me deparei com um problema que não foi abordado neste artigo que é a instalação do java virtual machine e pode ser isso que esta dando estes erros.

[19] Comentário enviado por rogeriosap em 16/04/2007 - 16:47h

Gostaria de saber se tem como colocar 2 servidores em cluster? Pois tenho mais de 10 mil usuarios em meu AD.

[20] Comentário enviado por epaixao em 25/07/2007 - 16:21h

Muito bom este artigo mas em minha implementação os clientes padion e gaim não conseguiram logar no openfire.

Alguém teve este problema???

[21] Comentário enviado por tiagotavares em 17/08/2007 - 22:24h

Olha epaixao, tente utilizar o Pandion, foi o melhor cliente Jabber que encontrei até agora!

http://www.pandion.be/

try it on! ;)

[22] Comentário enviado por tiagotavares em 17/08/2007 - 22:31h

kl3b3r, meus parabéns pelo artigo, isso foi mais mais que uma receita de bolo, é praticamente um guia definitivo para qualquer implantação do Wildfire/Openfire.
Eu apenas tive um problema, não sei exatamamente se foi por causa de algum bug do Openfire ou se foi algo com o sistema operacional (CentOS), mas simplesmente eu tentei implantar direto integrado ao AD, e na hora de adicionar os administrador e finalizar a instalação, não funcionava! Quase fiquei louco! ele parecia reconhecer os usuários do AD mas não adicionava e nem me permitia continuar e finalizar a instalação.
Depois de tanto quebrar a cabeça e xingar usuários que não me deixavam em paz para desenvolver uma solução, só consegui meu objetivo fazendo uma instação sem integração ao AD, aí depois recomecei uma nova instalação com integração, aí sim FUNCIONOU!
Aconteceu o mesmo com alguém ae?

Abraços! E muito obrigado!

[23] Comentário enviado por tiagotavares em 17/08/2007 - 22:33h

Só não gostei dos relatórios (reports) do sistema, para cada usuário o valor é de US$30 anualmente! rs rs rs

[24] Comentário enviado por tiagotavares em 22/08/2007 - 09:04h

Kléber, por acaso vc tbm implementou SSO (single sign on) em seu sistema?

[25] Comentário enviado por titanderso em 24/10/2007 - 11:55h

Olá, instalei no Debian Etch, estou com o mesmo problema do nosso amigo malungo nohup: appending output to `nohup.out', como resolver este problema.

Obrigado

[26] Comentário enviado por saulo_junior em 04/12/2007 - 13:57h

o Artigo e mto bom mesmo. aqui na empresa ja usamos o Open
fire com o cliente Spark, porem estou deparando com um problema nos meus testes com o cliente neo, que e muito mais leve que o spark(o Grande problema do spark, consume mtos recursos da mkna)
mas no neo nao estou conseguindo mandar mensagens em massa para todos os usuarios de todos os grupos, so consigo para um grupo de cada vez. existe algum caminho para isso.
a versao que uso e a 1.2.1(u)

[27] Comentário enviado por kalib em 30/01/2008 - 18:46h

Beleza...amigo muito show seu artigo..mto bom mesmo..parabéns..
Apenas tenho uma dúvida..
O Wildfire permite fazer auditoria destas conversas, correto?!
Como faço para ler esses logs que foram auditados?? o.O

parabéns pelo artigo e obrigado pela excelente contribuição

[28] Comentário enviado por tecnet em 03/04/2008 - 19:59h

Kleber,
Bom artigo, mais ainda tenho uma duvida, ahi vai:
01 - Como faco auditoria com WildFire, se o usuario usa Spark ou Neos?
02 - Como faco para ver os logs das mensagens?

vlw t+

[29] Comentário enviado por edupopov em 18/08/2008 - 21:12h

Olha, realmente... você salvou meu dia... eu estava realmente tentando identificar exatamente a maneira mais apropriada de poder colocar minha rede em comunicação economizando a largura de banda em uma esfera global.

Muito bom o artigo. Obrigado.

[30] Comentário enviado por rcolin18 em 23/08/2008 - 09:48h

vc sabe como apagar as mensagens que etão sendo auditadas nele ?

[31] Comentário enviado por murilodbva em 14/11/2008 - 17:02h

Artigo muito bem feito !
Utilizei-o como auxílio para configurar o Openfire.

[32] Comentário enviado por robledoribeiro em 25/11/2009 - 18:23h

Artigo muito bom, muito bem escrito. Parabéns.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts