miércoles, 18 de enero de 2012

Instalar y configurar ejabberd en Ubuntu 11.10

http://es.wikipedia.org/wiki/Ejabberd
ejabberd es un servidor de mensajería instantánea de código abierto (GNU GPL) para plataformas Unix (BSD, GNU/Linux, etc), Microsoft Windows y otras. Para la comunicación instantánea se utiliza XMPP. Está escrito principalmente en Erlang, es software concurrente y distribuido.




Pasos:

1.1 Instalar  Ejabberd no debe ser muy difícil puesto que se encuentra en los repositorios oficiales, así que lo instalaremos vía apt-get:


Código:
apt-get update
apt-get install ejabberd

1.2 Ahora pasamos a crear registros en el dns. Por supuesto se necesitan los registro de host.my.domain directos e inversos en el DNS, ademas de los propios del Jabber. No puedes olvidar substituir host.my.domain por vuestro dominio.


Código:
_xmpp-server._tcp.jabber.my.domain.                  21600    IN   SRV  5    0    5269 
host.my.domain. _xmpp-client._tcp.jabber.my.domain.  1600     IN   SRV  5    0    5222 
host.my.domain. _jabber._tcp.jabber.my.domain.       21600    IN   SRV  5    0   
5222    host.my.domain.

1.3 Editamos el fichero de configuración que se ubica en  /etc/ejabberd/ejabberd.cfg
1.3.1 Lo principal, configuraremos el dominio. Buscando la linea abierta donde se ubica {hosts,

Código:
{hosts, ["jabber.my.domain"]}.    ejemplo:  {hosts, ["dict.uh.cu"]}.
O varios, usando dominios virtuales.

Código:
{hosts, ["jabber.my.domain","jabber1.my.domain"]}.

Nota: Recuerden que los nombres de los servidores tienen que ser resueltos por el DNS
1.3.2 Para permitir el inicio de sesión añadiremos la siguiente linea por cada dominio:

Código:
{host_config, "jabber.my.domain", [{auth_method, [internal]}]}.
 1.3.3 El acceso web viene habilitado por defecto:

Código:
{5280, ejabberd_http,    [
                                      http_poll,
                                      web_admin]
            }

 Ya podemos reiniciar el ejabberd...

Código:
/etc/init.d/ejabberd restart                 
Para saber si el ejabberd funciona podemos ejecutar:
Código:
ejabberdctl status
Ahora pasamos a la mejor parte, la Gestión de usuarios:


1. Para añadir un usuario se ha de ejecutar:

Código:
ejabberdctl register <username> <server> <password>

2. Para quitar un usuario:

Código:
ejabberdctl unregister <username> <server>
Podemos acceder a la interfaz web a través de http://host.my.domain:5280/admin/

Estableciendo Políticas ...

1. Si queremos evitar el registro automático de usuarios añadimos la siguiente linea:

Código:
{access, register, [{deny, all}]}.

Ahora comentamos el modulo mod_register, dejándolo así:

Código:
%  {mod_register,   [{access, register}]},

2. Para darle permisos a un usuario como admin:

Código:
{acl, admin, {user, "username"}}.

* En caso de dominios virtuales quedaría algo parecido a esto:

Código:
{acl, admin, {user, "jorger","jabber.my.domain"}}.
            {acl, admin, {user, "jorger","jabber1.my.domain"}}.
Una opción muy útil es guardar las conversiones (en html)

Código:
{mod_muc_log, [

      {access_log, muc_admins},
       {cssfile, "http://my.domain/my.css"},
      {dirtype, plain}, {outdir, "/var/www/muclogs"},
      {timezone, universal},
      {spam_prevention, true},
       {top_link, {"http://jabber.my.domain", "jabber.my.domain"}}
      ]},
Para permitir la transferencia de ficheros a través de http:

Código:
mod_http_fileserver
 
Anexo 1 ¨Funcionalidades del ejabberdctl¨

opciones de ejabberd:

status -> obtiene el estado del servidor ejabberd.

stop -> detiene el servidor ejabberd.

restart -> reinicia el servidor ejabberd.

reopen-log -> reabre el fichero de log.

register user server password -> registra a un usuario en un servidor.

unregister user server -> elimina a un usuario de un servidor.

backup file -> almacena la base de datos en un fichero.

restore file -> restaura la base de datos desde un fichero.

install-fallback file -> instala una base de datos desde un fichero.

dump file -> vuelca el contenido de la base de datos a un fichero de texto.

load file -> restaura la base de datos de un fichero de texto.

import-file file -> importa la base de datos de usuario de un fichero spool.

import-dir dir -> importa la base de datos de usuario de un directorio de spool.

registered-users -> lista todos los usuarios registrados.

delete-expired-messages -> elimina todos los mensajes de “fuera de linea”, que han expirado, del servidor.

Espero les haya sido de utilidad el manual, un saludo.

2 comentarios:

  1. hola tengo prolemas con la configuracion de los dns y los inversos tienes algun manual o guia para realizarlo te lo agradeceria mucho gracias
    feliz dia

    ResponderEliminar
  2. Hola, como puedo enviar un mensaje al servidor desde un php

    ResponderEliminar