wiki:jabberit/instalandoEjabberd

Instalando o Ejabberd


Nota: Essa instalação foi testada no Debian Etch e Lenny

1 - Baixar o binário do Ejabberd no site  http://www.process-one.net/en/ejabberd/downloads

2 - Descompactar com:

# gzip -dv ejabberd-X.X.X-linux-x86-installer.bin.gz 

3 - Dar permissão de execução ao binário baixado:

# chmod +x ejabberd-X.X.X_X-linux-x86-installer.bin

4 - Executando o instalador:

# ./ejabberd-X.X.X_X-linux-x86-installer.bin

5 - Configure o diretório de instalação para /opt/ejabberd e coloque a senha para o usuário admin

6 - Copiando o script de inicialização:

# cp /opt/ejabberd/bin/ejabberd.init /etc/init.d/ejabberd

7 - Adicionando usuário:

# adduser --home /opt/ejabberd --shel /bin/sh -c "System user ejabberd" --system --group ejabberd

8 - Alterando permissão de grupo:

# chown -R ejabberd:ejabberd /opt/ejabberd

9 - Alterando permissão de acesso:

# chmod 755 -R /opt/ejabberd

Gerenciando o serviço do Ejabberd


Para automatizar o script de inicialização do Ejabberd rode o comando abaixo:

# update-rc.d ejabberd start 15 2 3 4 5 . stop 85 0 1 2 3 4 5 6 . 

Iniciando o serviço:

# /etc/init.d/ejabberd start

Parando o serviço:

# /etc/init.d/ejabberd stop

Vendo todas as opções disponíveis:

# /etc/init.d/ejabberd *

Configurando o Ejabberd


Nessa seção iremos abordar como configurar o Ejabberd para se autenticar no LDAP e armazenar dados no Mysql.

Pre-requisitos:

Ter os pacotes do mysql-server, php5-mysql, php5-mcrypt

Notas:
Nota 1 - O diretório com os arquivos de configuração do Ejabberd é o /opt/ejabberd/conf
Nota 2 - O arquivo principal de configuração do Ejabberd é o /opt/ejabberd/conf/ejabberd.cfg que apenas referenciaremos no restante do documento de ejabberd.cfg
Nota 3 - O arquivo de configuração odbc do Mysql é o /opt/ejabberd/conf/odbc.ini que apenas referenciaremos no restante do documento de odbc.ini
Nota 4 - %% é comentário no arquivo ejabberd.cfg

Configurando o HOST

O nome do host deve ser resolvido por seu servidor e por suas estações clientes.

Abra ejabberd.cfg e vá na seção "SERVED HOSTNAMES"

Altere a linha:

{hosts, ["example.org"]}.

Nota: Esse nome de host será usando dentro das configurações do módulo no Expresso Livre.

Configurando as portas que o seu ejabberd irá escutar

Vá na seção "LISTENING PORTS" do ejabberd.cfg

Por padrão o seu Ejabberd já escuta a porta 5222 essa porta que se autentica em texto plano.

Para clientes que se autenticam com SSL no formato antigo descomentar as linhas, referentes a porta 5223.

Para habilitar suporte ao novo Expresso Menssenger que é em javascript vá na configuração da porta 5280 e deixe conforme abaixo:

{5280, ejabberd_http, [
                       {request_handlers, [{["http-bind"],mod_http_bind}]},http_poll
                      ]}

Configurando a autenticação no LDAP

Nota: Comentar significa colocar na frente da instrução %%

Vá na seção "AUTHENTICATION" do ejabberd.cfg

Comente a linha:

{auth_method, internal}.

Vá para seção %% Authentication using LDAP

Descomente:

%%{auth_method, ldap}.

Descomente e aponte para o seu servidor LDAP:

%% {ldap_servers,["SEU_SERVIDOR_LDAP"]}.

Descomente e aponte para o seu contexto LDAP:

%% {ldap_base, "dc=xx,dc=yy"}.

Descomente e aponte para o seu administrador do LDAP:

%% {ldap_rootdn, "cn=admin,dc=xx,dc=yy"}.

Descomente e coloque a senha de seu administrador do LDAP:

%% {ldap_passwd, "SENHA"}.

Configurando o acesso do Ejabberd ao banco de dados Mysql

Descomente a linha abaixo e ajuste os valores necessários de seu ejabberd.cfg.

%% {odbc server, {mysql, "server", 1234, "database", "username", "password"}}.

Recomendado:

{odbc server, {mysql, "localhost", 3306, "ejabberd", "root", "SENHA"}}.

Notas:

"server"   = Ip ou nome de seu servidor mysql
1234       = Porta do servidor mysql
"database" = Nome do banco de dados
"username" = Usuário com permissão de acessar o banco de dados
"password" = Senha do usuário com permissão de acessar o banco de dados

Agora abra o arquivo odbc.ini e ajustes os parâmetros necessários, segue exemplo abaixo:

[ejabberd]
Driver     = MySQL
DATABASE   = ejabberd
PWD        = SENHA
SERVER     = localhost
SOCKET     = /var/run/mysqld/mysqld.sock
UID        = root

Notas:

DATABASE = Colocar o nome do bando de dados
PWD	 = Colocar a senha de acesso ao banco de dados
SOCKET	 = Verifique no my.cnf arquivo de configuração do Mysql a opção “socket”
UID      = Colocar o usuário que tem acesso ao banco.

Configurando os módulos

Vá na seção "MODULES" do ejabberd.cfg e verifique se existem os módulos e configurações abaixo:

{modules,
 [
  {mod_adhoc,    []},
  {mod_announce, [{access, announce}]}, 
  {mod_caps,     []},
  {mod_configure,[]}, 
  {mod_disco,    []},
  {mod_http_bind,[{max_inactivity,10}]},
  {mod_irc,      []},
  {mod_last_odbc,     []},
  {mod_muc,      [
                  {host, "conference.@HOST@"},
                  {access, muc},
                  {access_create, muc_create},
                  {access_persistent, muc_create},
                  {access_admin, muc_admin}
                 ]},
  {mod_offline_odbc,  []},
  {mod_privacy_odbc,  []},
  {mod_private_odbc,  []},
  {mod_proxy65,[]},
  {mod_pubsub,   [ % requires mod_caps
                  {access_createnode, pubsub_createnode},
                  {ignore_pep_from_offline, true},
                  {last_item_cache, false},
                  {plugins, ["flat", "hometree", "pep"]}
                 ]},
  {mod_roster_odbc,   []},
  {mod_shared_roster,[]},
  {mod_time,     []},
  {mod_vcard,    []},
  {mod_version,  []}
 ]}.

Obs.: Não esqueça de ajustar o arquivo "jabberit_messenger/jmessenger/js/trophyim_constants.js" o valor da variável "TROPHYIM_CHATROOM" com o valor do HOST no ejabberd deixando com o conference na frente do endereço.

Criando o banco dados do Ejabberd no Mysql

Faça download do export_jabber.zip e descompacte com o comando abaixo:

# unzip export_jabber.zip

Entre no diretório export_jabber e execute o comando abaixo para criar o banco:

# mysql -u root -p < ejabberd_mysql.sql

Nota: Colocar a senha do usuário root de seu Mysql

MySql? usa um sistema de autenticação diferente daquele do seu sistema operacional, quando o MySql? é instalado numa máquina, é definido um usuário chamado root que tem plenos privilégios para modificar qualquer banco de dados.

O usuário root não está inicialmente protegido por senha e portanto o comando "mysql -u root" permite acesso ilimitado sem senha. Normalmente, é recomendado que se especifique imediatamente uma senha para esse usuário.

O comando para definir uma senha para o usuário root segue abaixo.

# mysqladmin -u root password ’senha’

Ajustando o Apache


1 - Rode os comandos abaixo para ativar os módulos de proxy e proxy_http no apache:

# a2enmod proxy
# a2enmod proxy_http

2 - Abra o arquivo /etc/apache2/mods-enabled/proxy.conf e configure conforme exemplo abaixo:

<IfModule mod_proxy.c>
        ProxyRequests Off

        <Proxy *>
                AddDefaultCharset off
                Order deny,allow
                Allow from all
        </Proxy>

ProxyPass /proxy/ejabberd               http://IP_SEVER_JABBER:5280/http-bind/
ProxyPassReverse /proxy/ejabberd        http://IP_SEVER_JABBER:5280/http-bind/

</IfModule>

Nota: No IP_SEVER_JABBER pode ser colocado nome ou IP.

3 - Reiniciando o Apache

/etc/init.d/apache2 restart

Créditos Joaquim Ferraz (joaquim.ferraz at ati.pe.gov.br)

Referência  http://www.process-one.net/en/ejabberd/guide_en



Attachments