Instalar e configurar Spark e OpenFire 4.1.3 no Debian Linux com integração no AD do Windows utilizando SQL Server 2008 R2

Olá pessoal

Tendo observado que a maioria das pessoas que entram no blog querem saber como instalar o OpenFire 4.1.3 com integração no AD. Pois bem, vou tentar ser mais objetivo para aqueles que estão tendo dificuldade em instalar e integrá-los.

ESCLARECIMENTO SOBRE ESTE POST(LEIA ANTES DE TUDO).

  1. Quando você tiver instalado e integrado ao AD o seu OpenFire, não existirá mais a necessidade de adicionar usuários e grupos manualmente dentro do Spark, a partir daí, você precisará apenas criar um usuário no AD e colocá-lo no grupo spark. Somente isso bastará para aparecerem listados todos os usuários no Spark de todos os clientes.
  2. Leia devagar e com atenção o passo a passo para a instalação até o 18º ítem que dará tudo certo, pois detalhei muito bem. Devagar, por favor.
  3. Logo após o passo a passo, eu marquei de vermelho todos os ítens que considero fundamentais para o pós-instalação, então por favor novamente, leia-os com atenção. Se surgiu alguma dúvida no meio do caminho, leia até o final porque talvez posso tratá-la mais abaixo.

Hoje vamos configurar um servidor de mensagens instantâneas de nome OpenFire no Linux Debian 8.7.1

fonte: https://mastigado.wordpress.com

1º – Instalaremos o arquivo executável do OpenFire(não importa a versão). Baixamos o arquivo do site ;

Arquivo executável do OpenFire

2º – E no terminal do Linux, vamos até onde o executável está.

3º – Pelo fato de poder aparecer algum erro do tipo “java7-runtime-headless não está instalado”, instalaremos o pacote abaixo.

apt-get install default-jdk

4º – Em seguida executamos o comando para instalarmos o pacote Debian do Openfire.

dpkg -i openfire_4.1.3_all.deb

5º – Agora daremos início a nossa instalação pela web. Siga no navegador e digite http://o_ip_do_seu_servidor_onde_sera_instalado_o_openfire:9090 e veremos algo para já configurarmos a linguagem da aplicação.

6º – Agora, configuraremos o nosso domínio. No nome do Domínio o correto é ficar com empresa.local (que seria o nome do meu domínio) e no Server Host Name (FQDN) eu voltei atrás e coloquei o ip do meu servidor Linux, pois também funciona e é mais garantido quando você não tem um servidor que “resolve” os nomes de servidores Linux em sua rede.

Quanto as portas, só convém mudar se já existir algum serviço as utilizando neste host. Você também tem a opção de nessa versão definir o tipo de criptografia que irá usar, porém por enquanto eu não irei trabalhar com isso.

OpenFire configuração de domínio

7º – Agora, a conexão com os dados no OpenFire poderá ser feita por um banco de dados externo ou interno, contudo vou deixar minha impressão a respeito do banco de dados interno.

Minha primeira instalação do OpenFire foi utilizando seu próprio banco de dados e não tive uma boa experiência porque ao terminar a instalação, simplesmente não consegui me logar na área administrativa do OpenFire por conta, julgo eu, de um bug. Pesquisei na net sobre isso e descobri que na versão 3.7.0 existia sim este bug, mas que nesta versão que estou instalando(4.1.3) acredito que tenham corrigido.

Ainda pesquisando na net, descobri um site que ensinava uma maneira de corrigir este bug de não conseguir conectar o banco interno após a instalação(http://red5guide.com/install_openfire_on_windows_server.html#openfirepassword), só que ao ler o guia, percebi que eu tinha que ter acesso a base de dados do OpenFire para dar um UPDATE em tabela de usuário e não achei muito simples ou possível fazer isso utilizando o banco de dados interno, por isso optei por utilizar um externo. Mas quero deixar claro que não significa que não irá funcionar utilizando o interno, mas este tutorial irá tratar especificamente de conexão com um externo.

Seguindo então na primeira opção, Conexão Padrão do Banco de Dados.

Conexão com banco de dados no OpenFire

8º – Aqui abaixo tenho a opção de escolher vários bancos, mas neste caso aqui iremos apenas escolher o Microsoft SQL Server e efetuar uma pausa na instalação para podermos configurar o nosso banco de dados.

Tipo de Banco de Dados

9º- (importante) Agora faremos a configuração da nossa base de dados no SQL Server, porém antes crie um grupo no Active Directory (AD) com o nome que desejar dentro do diretório Users. Eu escolhi o nome spark para forçar quem for criar usuários no AD, lembrar que sempre devem acrescentar este grupo ao usuário.

Entenda que a criação deste grupo é para se ter a opção de controle de usuários que podem e que não podem ter acesso para utilizar o Spark, Pandion, Pidgin, etc (clientes de mensagens local) no servidor Openfire que estamos criando. Enfim, se desejar segregar alguém, não acrescente este grupo ao usuário que você acha que não deve bater papo com ninguém.

Criação de Grupo no AD

10º – Criei um usuário no AD que é membro dos grupos Administrators, Domain Admins, Domains Users e claro, também o tornei membro do grupo spark. Fiz um usuário neste nível porque não quis misturar o usuário administrador do AD utilizado por usuários avançados com o específico deste sistema que estamos instalando, até porque ele será utilizado mais adiante algumas vezes.

Criação de Usuário Administrador de AD

11º – E para quem não manja muito de SQL Server, abaixo descrevo como criei o banco.

Para criar uma nova base de dados, dentro do gerenciador de banco de dados SQL Server Management Studio, clique com o botão direito em cima de Databases e em seguida, New Database. Dei o nome de SPARKDB para a database , coloquei o banco inicial com 200 megabytes (uns vão achar que é muito, mas deixei assim mesmo) e com Autogrowth ligado em 50%, que quer dizer que toda a vez em que ele atingir seu tamanho máximo (o tamanho inicial é de 200 megas), ele aumentará 50% deste tamanho automaticamente. Coloquei 50% para que a base não fique tão fragmentada no hard disk. Vale lembrar que estou me baseando numa base de dados de 200 usuários utilizando o Spark.

Observação 1: Em uma nova implantação que fiz chamei esta base de dados de OPENFIREDB ao invés de SPARKDB porque na época eu não sabia diferenciar Spark de Openfire por conta da confusão que meu chefe fazia ao chamar tudo de Spark. E enfim, acho que nomear o banco de dados como OPENFIREDB fica coerente. porém neste tutorial seguirei com o nome de SPARKDB mesmo.

Criação do banco de dados

12º – Ainda dentro do SQL Server Management Studio, em Security, clique com o botão direito e em seguida New Login. Em Login Name, utilizei o mesmo nome do usuário do AD, openfire e marquei SQL Server Authentication utilizando a mesma senha do usuário do AD para não me confundir depois, pois quando tentei com o do AD não consegui me logar no SQL Server.

Desmarquei todas as opções de verificações de senha.

E fiz uma alteração do default Database porque entendo que este usuário deve controlar apenas o seu banco, que no nosso caso é o SPARKDB.

Configuração de Usuário para conexão no SQL Server

13º – Na opção Server Role, marquei diskadmin para este usuário porque da última vez que não marquei, deu pau.

Regra do Servidor

14º – Em User Mapping, escolhi a base SPARKDB em específico e marquei db_owner para também colocar como dono daquele banco. E por último, cliquei em OK e a partir daí posso até fechar o SQL Server Management Studio.

User Mapping

15º – Até que enfim, voltei para este carinha aqui. No nosso caso escolhi o SQL Server, coloquei o usuário openfire do banco de dados e alterei a linha da URL do Banco de Dados de:

jdbc:jtds:sqlserver://[host-name]/[database-name];appName=jive

para:

jdbc:jtds:sqlserver://nomeservidor:1433/SPARKDB;appName=jive

Repare que utilizei a porta do SQL Server que é 1433 junto com o nome do servidor.

Configuração do acesso da aplicação ao banco de dados

16º – Nesta tela escolhi a opção que utiliza LDAP porque quero me conectar no AD.

Openfire LDAP

17º – Bem, aqui tem que ser:

O Tipo de servidor tem que ser Active Directory;

Em Host, o nome do seu host. Vale lembrar que apesar de o ip também funcionar aqui(eu acho), uma pessoa que trabalha com AD me orientou colocar o nome do host mesmo.

Na Porta, pode deixar este 389 aí.

DN Base. Este cara você vai colocar desta forma: se seu domínio é aeroporto.cumbica, coloque dc=aeroporto,dc=cumbica;

DN Administrador: O nome daquele usuário que criamos, no caso o openfire(preferencialmente) com o seu domínio. Então ficaria assim:

openfire@aeroporto.cumbica

Configuração da Conexão com o AD

18º – Neste passo, onde está definido sAMAccountName deixei como está, e mantive a sugestão que o servidor me trouxe basicamente no formato abaixo:

(&(objectCategory=person)(objectClass=user) (memberOf=CN=grupo_de_usuarios_do_ad_que_vao_utilizar_o_spark, CN=pasta_onde_esta_meu_usuario_admin_no_ad, DC=meu_dominio,DC=continuacao_do_nome_do_meu_dominio))

Depois, só mando testar as configurações e se estiver tudo ok, é exibida para mim uma tela com o resultado do teste. No meu caso ele trouxe um usuário do AD de forma aleatória e deverá fazer isso com você também.

Mapeamento de usuário

Teste de Conexão com mapeamento de usuário

Vale lembrar que agora você pode também personalizar os valores no seu cliente mensageiro inserindo ou alterando os valores que vem do AD. Você pode pesquisar na net por Active Directory Attributes e se orientar por quais você pode utilizar (https://msdn.microsoft.com/en-us/library/ms675090(v=vs.85).aspx).

19º – Este cara aí abaixo, eu fui orientado para ignorá-lo e passar batido e foi isso o que fiz.

Mapeamento de Grupo

18º – Neste último passo, configuro a conta do administrador(Fui colocando vários usuários do AD que achei que deveriam ser admins do OpenFire).

Conta do Administrador

Pronto! Agora tente se logar no OpenFire com os usuários admins que você criou.

Já sabe, se der pau no login, utilize o procedimento do site abaixo. Claro, depois de ter parado e reiniciado tanto o serviço do aplicativo, quanto o pc que está instalado.

http://red5guide.com/install_openfire_on_windows_server.html#openfirepassword

Para configurar os grupos do AD no seu OpenFire, clique no link abaixo.

https://mastigado.wordpress.com/2013/05/21/adicionando-seus-grupos-do-ad-no-openfire/

Para aumentar a quantidade de memória do seu OpenFire caso note que o serviço esteja travando(isso acontece quando se tem muitos usuários logados).

https://mastigado.wordpress.com/2013/01/25/aumentando-a-memoria-do-java-do-openfire/

Para gerenciar o OpenFire  siga os passos abaixo.

Quando você instala o OpenFire no Linux  ele já roda como um serviço e para gerenciá-lo utilize os comandos abaixo.

Em resumo seria algo assim:


//Para iniciar o serviço

/etc/init.d/openfire start

//Para reiniciar o serviço

/etc/init.d/openfire restart

//Para forçar um reload

/etc/init.d/openfire force-reload

Contudo, quando tentei parar o serviço não consegui. O comando abaixo não funcionou comigo.

/etc/init.d/openfire stop

Então, uma alternativa que encontrei para paralisar este serviço foi consultar o processo do Openfire com o comando abaixo.

ps -ef | grep openfire

E com o resultado identifiquei o PID dele (Process ID), que no meu caso foi o número 8683 que está logo abaixo no começo da primeira linha.

openfire 8683 1 0 15:29 ? 00:00:08 /usr/local/jdk1.8.0_121/bin/java -server -DopenfireHome=/usr/share/openfire -Dopenfire.lib.dir=/usr/share/openfire/lib -classpath /usr/share/openfire/lib/startup.jar -jar /usr/share/openfire/lib/startup.jar
root 8839 788 0 15:52 pts/0 00:00:00 grep openfire

E depois de identificado o PID matei o processo utilizando o comando kill.

kill 8683

E pronto, desta maneira o processo do Openfire está parado. E para subir novamente utilize-se dos comandos que citei anteriormente.

Para desinstalar o Openfire no Debian Linux.

Por vezes precisamos reinstalar o Openfire e temos problemas por conta dos arquivos de configuração que ele guarda. Então para resolver este problema utilizamos o comando abaixo.

apt-get --purge remove openfire

Para que o Spark na versão 2.8.3 conecte no Openfire 4

Esta versão do Openfire traz algumas  alterações em relação a versão 3. Uma delas é o fato de que o uso de certificados válidos é necessário para conexão entre cliente e servidor, fato que irá fazer com que você não consiga se conectar utilizando mesmo nova versão do Spark caso não tenha o ambiente adequado implantado.

Para resolver este problema abra o Spark, siga na guia avançado e marque as opções Disable certificate hostname verification (not recommended) e Accept all certificates (self-signed/expired/hot trusted) como na figura abaixo e pronto. Conecte-se ao servidor.

 

Para alterar as informações pessoais no client Spark.

Quando você se integra no AD, surge um pequeno incoveniente na hora de os usuários poderem alterar suas informações pessoais(nome, telefone, avatar, etc), pois tudo vem do Active Directory automaticamente a partir de então.

O usuário pode se deparar em sua tela com a mensagem abaixo ao tentar realizar qualquer alteração.

server does not support cards unable to save your vcard

Para resolver este pequeno problema, o 1º e o 2º passos são questionáveis e por isso, entendo que somente o 3º é necessário.

  1. Baixar o plugin LDAP Vcard(ldapvcardavatar.jar). Pelo que andei lendo, este plugin ainda está beta e em sua documentação ele diz para que você o utilize por sua conta e risco(depois que instalei e configurei, tive a certeza de ele é beta), mas acho que não temos muitas opções, não? Fui no endereço http://community.igniterealtime.org/docs/DOC-1350 e o baixei.
  2. Em seguida, instalei o “bicho” no servidor.

    Plugin LDAP Vcard para Openfire

    Plugin LDAP Vcard para Openfire

  3. Mas sinceramente, o plugin está em estado depreceated e por isso, você pode ir direto em em Propriedades do Sistema, que fica dentro de Gerenciamento do Servidor e alterar o parâmetro false para true do atributo ldap.override.avatar.

    Propriedades do Sistema

    Propriedades do Sistema

AGORA, DUAS DICAS VALIOSAS QUE SÓ APRENDI NA PORRADA

  1. Caso seus usuários, mesmo estando no grupo específico para o Spark ainda assim não estiverem aparecendo na lista de pessoas do cliente Spark, você deve colocar o seu grupo principal sendo como Domain/Users, no Active Directory, feito isso, estes usuários irão aparecer na lista de usuários do Spark normalmente.
  2. Caso precise adicionar ou retirar administradores do OpenFire, o local correto para se fazer isso quando integrado no AD é Servidor > Gerenciamento do Servidor > Propriedades do Sistema > admin.authorizedJIDs e em seguida, editar esta propriedade.

Tá aí então, mastigado.

Tutorial para instalação do plugin Jappix que é um client de conversação para a web (ainda não testei nessa nova versão de Openfire).

https://mastigado.wordpress.com/2013/01/08/instalar-client-web-jappix-no-openfire-para-bater-papo-usando-o-navegador/

Tutorial para instalação do aplicativo Xabber que é um client de conversação para a Android.

https://mastigado.wordpress.com/2015/10/07/instalar-xabberspark-no-android-para-se-conectar-no-openfire/

fonte: https://mastigado.wordpress.com

Anúncios
%d blogueiros gostam disto: