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.571 ]

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


Integrando ao Active Directory



Sabe aqueles usuários que criamos agora há pouco? Então, exclua todos eles! Isso mesmo... não queremos ter que gerenciar todas essas contas individualmente: vamos autenticar os usuários da rede para fornecer acesso ao Wildfire. Ah, vamos excluir também os grupos. Para excluir os usuários e grupos você tem duas opções: um a um (pela console administrativa do Wildfire) ou todos ao mesmo tempo, diretamente na console do PostgreSQL, assim:

wildfire=# DELETE FROM jivegroup;
wildfire=# DELETE FROM jiveuser WHERE username LIKE 'user%';

No nosso domínio, temos dois grupos: LOIRAS e MORENAS, com os respectivos usuários:


Queremos então que estes usuários utilizem suas próprias senhas da rede para se autenticar no Wildfire. Pelo que eu pude entender, lendo a documentação no Wildfire e alguns fóruns na Internet, o esquema de "Group Sharing" (compartilhamento de grupo) não associa-se diretamente com os grupos de segurança do Windows. Sendo assim, teremos que criar manualmente os grupos no Wildfire, mas isso já não é mais problema, pois isto para nós já é uma tarefa muito divertida.

Até o presente momento ainda não tinha citado um arquivo que é de suma importância para o funcionamento do sistema. Trata-se do wildfire.xml, que pode ser localizado dentro do diretório conf de onde o mesmo foi descompactado (no nosso caso, /usr/local/wildfire/conf/wildfire.xml). Este sujeito é o responsável pelos principais parâmetros do Wildfire, como por exemplo: porta onde será executado, idioma, usuários que poderão acessar a console administrativa, configurações para acesso ao banco de dados, e configurações para utilização com LDAP (que é a parte que nos interessa agora). Como vocês já devem saber, o XML trata suas cláusulas de uma forma hierarquicamente muito bem organizada. Sabemos também que os comentários são iniciados por "<!--” e encerrados por “-->". Abra, no seu editor de textos preferido, o arquivo wildfire.xml do seu servidor e observe as configurações atuais. Você verá que as sessões ldap e provider estão comentadas, porque estamos utilizando usuários criados localmente. Vamos então descomentá-las e configurá-las de acordo com o nosso ambiente. As sessões ficarão assim:

<ldap>
    <host>69.171.38.1</host>
    <port>389</port>
    <usernameField>sAMAccountName</usernameField>
    <nameField>displayName</nameField>
    <emailField>mail</emailField>
    <baseDN>DC=playboy,DC=com,DC=br</baseDN>
    <adminDN>CN=Administrator,CN=Users,DC=playboy,DC=com,DC=br</adminDN>
    <adminPassword>***senha-do-administrator***</adminPassword>
    <debugEnabled>true</debugEnabled>
  </ldap>
  <provider>
    <user>
      <className>org.jivesoftware.wildfire.ldap.LdapUserProvider</className>
    </user>
    <auth>
      <className>org.jivesoftware.wildfire.ldap.LdapAuthProvider</className>
    </auth>
  </provider>

Não se esqueça de remover os comentários que delimitam essas sessões. Obviamente, dentre outras adequações ao seu domínio (como host, baseDN, etc.), onde está registrado "***senha-do-administrator***" você deve substituir pela senha que cadastrou durante a instalação do Microsoft Windows.

Um pouco acima destas configurações, você deverá descomentar a cláusula que define quais usuários poderão acessar a console administrativa do Wildfire, veja:

<authorizedUsernames>kelly.key,scheila.carvalho</authorizedUsernames>

Assim, somente estes dois usuários poderão acessar a console administrativa. E, por enquanto, essas são as únicas alterações necessárias no wildfire.xml. Reinicialize (stop e start) o serviço do Wildfire para que as alterações sejam efetivadas.

Entre novamente na console administrativa do Wildfire e tente logar-se como "admin". Não fique surpreso se não conseguir, pois o Wildfire agora está orientado a não mais buscar informações sobre usuários no banco de dados do PostgreSQL, mas sim na base LDAP regida pelo Active Directory. Fique a vontade para efetuar logon com um dos usuários do domínio que você especificou em <authorizedUsernames> no wildfire.xml. Viu como funciona bem? ;) Observe o nome do usuário (e a opção de Sair) no canto superior direito da console administrativa:


Dentro da console administrativa, clique na guia "Usuários/Grupos" e perceba que lhe serão apresentados todos os usuários do domínio. Observe que além delas outras contas serão exibidas, como contas de grupos, contas de computadores, etc:


Nós, que estamos sempre preocupados com organização, detestamos essa mistura de contas. Queremos que sejam listados apenas os usuários que criamos, sem os usuários padrões do sistema, grupos, computadores, etc. Para isso criaremos, no Active Directory, uma Organization Unit chamada "NudeGirls" e migraremos todos os usuários pra lá, assim:


Agora, devemos informar ao Wildfire que ele deve pegar como referência não mais todos os usuários do domínio, mas sim os usuários pertencentes à Organization Unit "NudeGirls". Para isso, abra novamente o arquivo wildfire.xml e altere a linha da baseDN para:

<baseDN>OU=NudeGirls,DC=playboy,DC=com,DC=br</baseDN>

Reinicialize o serviço do Wildfire, efetue logon na console administrativa (com um dos usuários autorizados), clique na guia de "Usuários/Grupos" e observe o resultado:


Agora sim, são exibidos apenas os contatos que criamos. Na verdade usei este exemplo para demonstrar que você pode também controlar quais usuários estarão habilitados a utilizar o comunicador instantâneo dentro da sua rede. Uma forma simples e prática, seria criar uma Organization Unit com um nome bastante intuitivo (como por exemplo "Jabber") e mover para ela somente aqueles usuários que desejamos permitir que acessem o comunicador, bastando apenas definir no parâmetro baseDN a "OU" que criamos. Sim, existem outras formas de fazer esse controle, mas esta é a mais simples e... funciona bem!

Entretanto, se quisermos que todos os usuários que tenham permissão para utilizar o comunicador apareçam automaticamente nos clientes (e organizados em grupos), devemos, manualmente, criar os grupos utilizando a console administrativa do Wildfire e adicionarmos os usuários neles. Se não fizermos assim, o cliente ao se conectar não exibirá contato algum, e teremos que adicionar nele (cliente) manualmente os contatos que desejarmos. Se já quisermos que os contatos sejam exibidos automaticamente, basta criar grupos no Wildfire e adicionar usuários aos grupos e compartilhá-los, habilitando a opção "Ativar o compartilhamento de grupos nos contatos". Veja o exemplo onde criarmos dois grupo no Wildfire, igual criamos no Active Directory:


Agora sim, o cliente exibe todos os contatos que tem um grupo associado. Vejamos abaixo:


Aproveitando que temos alguns usuários on-line, vamos explorar um interessante serviço que é o de conferência. No cliente neos, acesse o discreto menu em sua barra superior, então aponte para "Mensageiro instantâneo" e depois para "Serviços":


Uma janela se abre, exibindo os serviços disponíveis no servidor:


Clique então no botão "Unir-se/Criar" e a seguinte janela surge:


Observe que aquele nome dado ao serviço de conferência é adicionado ao FQDN do servidor. No nosso caso, o nome do servidor ao qual nos conectaremos passa a ser "salas.messenger.playboy.com.br". Informaremos então uma sala a ser criada (caso a mesma não exista) e um apelido para ser usado nela. Eis que uma nova sala é criada, e o usuário que a criou passa a ser o operador (administrador) da mesma, característica representada por uma @ no início do apelido (alguém aqui já usou IRC? :). Veja:


Pra que serve uma sala de bate-papo se você é o único presente? Ora, convide então um colega pra participar. Clique no ícone de convite, e uma janela surgirá exibindo todos os contatos on-line. Selecione um ou mais contatos e acione o botão convidar:


Opcionalmente, você poderá redigir uma mensagem a ser enviada como convite aos outros usuários:


Do outro lado, o seu contato receberá uma notificação de que você o está convidando para ingressar em uma sala de conferência:


Ao aceitar o convite, uma outra janela exibe informações sobre a sala/servidor e opcionalmente pode-se alterar o seu apelido a ser exibido na sala. Depois de visualizar ou alterar os campos clique em "Unir-se/Criar":


Está então criada uma sala pública (sem a necessidade de se digitar uma senha para ingressar) onde todos se comunicam como em uma conferência:


Certamente teremos alguns clientes Linux na nossa rede. Para estes casos escolhi o renomado GAIM para se utilizado como cliente desta plataforma. Vamos configurá-lo facilmente:


Clique no ícone "Contas" e adicione uma nova conta, utilizando o protocolo "Jabber" com as credenciais de um dos usuários da rede:


Os clientes que estão conectados são exibido:


O GAIM tem o gracioso recurso de selecionarmos se queremos ou não omitir os grupos vazios e os usuários desconectados. Dessa forma podemos "despoluir" a tela, exibindo apenas os contatos on-line. Acredite isto é bastante útil quando se tem uma grande lista de contatos. Para ingressarmos naquela sala onde estão os outros usuários, mesmo sem termos sido convidado, clique no botão "Bate-papo" e preencha os dados com as informações do servidor/sala:


A inferface é um pouco diferente, mas os recursos são os mesmos:


Conforme dito anteriormente, o usuário que cria a sala recebe o poder de operador (gerenciador) da sala. A ele é atribuído condições de, nomear novos gerenciadores, moderadores, proprietários e até expulsar usuários indesejados, veja:


Opcionalmente, um motivo pode ser especificado para a expulsão:


É, pelo visto nem sempre é uma boa idéia ingressar em uma sala sem ter sido convidado ;)

Como foi dito desde o começo, não vou entrar em grandes detalhes do cliente. É responsabilidade sua descobrir os inúmeros e interessantes recursos deste e de outros clientes que desejar usar.

Vamos voltar à console administrativa do Wildfire e olharmos o status dos nossos usuários. Efetue logon com um usuário autorizado e selecione a guia "Usuários/Grupos":


Visualmente podemos saber se nossos usuários estão conectados (ícone verde), conectados mas ausentes (ícone amarelo) ou desconectados (ícone em tons de cinza). Além disso, podemos acionar a guia "Sessões" para gerenciar o estado da conexão dos usuários, verificar quais estão utilizando conexão segura e até mesmo desconectá-los:

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

tzwatch - Navegando pelo horário mundial no Debian

Instalando o VirtualBox no Ubuntu 10.04

Tutorial convertendo DVD para AVI - com mencoder

Arapuca - Expandindo as funcionalidades do FreeRADIUS

Garantindo o funcionamento de serviços com o restartd

  
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