Servidor básico de Mensajería Ejabberd en Debian

Introducción

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.

Alexey Shchepin fundó el proyecto en 2002 y continúa manteniéndolo. El nombre « ejabberd » significa « Erlang Jabber Daemon ». Se escribe en letras minúsculas solamente, que es uso común en el mundo de Unix. El objetivo del proyecto ejabberd es la creación de un servidor XMPP estable y con variedad de posibilidades.

Fuente: Wikipedia

Ejabberd nos permitirá

  1. Crear Usuarios
  2. Salas de Chat
  3. Administradores y más

¿En donde podremos implementar Ejabberd?

Ejabberd puede ser implementado en una Oficina, Centro de Estudio, Aulas o el Hogar. Ejabberd nos permitirá crear nuestro propio "Servidor Chat" donde podremos crear "Usuarios" personalizados.

Si disponemos de una IP Pública, en su defecto un Dominio Registrado, también podremos usar Ejabberd como Servidor de Mensajería en Internet, no solo nuestra Red Local. En esta entrada de Wiki realizaremos una configuración básica para su puesta en función.

1. Instalación

Ejabber se encuentra en los "Repositorios de Debian" Para instalar vamos a ejecutar en nuestra Terminal Favorita:

# aptitude install ejabberd

2. Configuración

Esta prueba ha sido realizada en una Red Local con 15 máquinas, El servidor Debian posee como IP Local 192.168.15.130 Y como Ip Pública 204.181.XXX.XXX

Lo primero que haremos será decirle a nuestro Servidor Ejabberd cual será el Dominio a utilizar, para ello hemos escogido la IP con nuestra Red Local [192.168.15.130] para ello en nuestra terminal como Usuario Root haremos lo siguiente:

# nano /etc/ejabberd/ejabberd.cfg

Ahora buscamos las siguientes líneas donde configuraremos de la siguiente manera:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Options which are set by Debconf and managed by ucf

%% Admin user
{acl, admin, {user, "", "192.168.15.130"}}.

%% Hostname
{hosts, ["192.168.15.130"]}.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Para administrar nuestro Servidor Ejabberd vía Web [Http] deberemos verificar que tengamos la siguiente línea

{5280, ejabberd_http, [
                         http_poll,
                         web_admin
                        ]}

]}.

Recuerda: Que debes tener abierto el puerto 5280 en tu Firewall o Router en caso que este se encuentre administrado.

3. Creando el Usuario Administrador

Antes de ingresar a Ejabber por Web, debemos de crear un Usuario Administrador, para ello haremos lo siguiente desde Terminal como Usuario Root.

La sintaxis es:

# ejabberdctl register <usuario> <servidor> <contraseña>

por lo que en la terminal haremos:

# ejabberdctl register xander 192.168.15.130 123456

Ahora debemos decirle a Ejabberd que "Xander" será un Usuario con privilegios de Administrador, para ello, entramos nuevamente a nuestro archivo de configuración:

# nano /etc/ejabberd/ejabberd.cfg

Y agregamos a "Xander" en la siguiente línea

%%%   ====================
%%%   ACCESS CONTROL LISTS

%%
%% The 'admin' ACL grants administrative privileges to Jabber accounts.
%% You can put as many accounts as you want.
%%

{acl, admin, {user, "xander", "192.168.15.130"}}.

%%{acl, admin, {user, "ermine", "example.org"}}.

4. Verificando que Ejabberd funcione correctamente

Primero reiniciaremos Ejabberd

# /etc/init.d/ejabberd restart

Ahora verificaremos que está funcionando

# ejabberdctl status

Nos tiene que decir:

Node ejabberd@TU_SERVIDOR is started. Status: started
ejabberd is running

5. Ingresando a Ejabberd vía Http

Para ello en tu navegador tienes que colocar: http://192.168.15.130:5280/admin

Te pedirá un usuario, en cual será

xander@192.168.15.130

La contraseña será que has especificado al momento de crear tu Usuario, en nuestro caso es:

123456

Finalmente tendrás una ventana similar a esta

6. Creando Usuarios

Para esta prueba se creará un "Usuario" de prueba para que se comunique con "Xander" [Administrador]

# ejabberdctl register usuario 192.168.15.130 123456

7. Configuración del programa Cliente

Programa para Gnu/Linux

Para esta prueba hemos utilizado Kopete como programa de mensajería cliente en Gnu/Linux. Su configuración es la siguiente:

Usuario: xander@192.168.15.130
Servidor: 192.168.15.130
Puerto: 5222

Programa para Windows

Para nuestro usuario de Prueba [llamado usuario] hemos instalado Pidgin como cliente Jabberd

Usuario: usuario@192.168.15.130
Servidor: 192.168.15.130
Puerto: 5222

Finalmente

Hemos configurado Ejabber en nuestro hogar, para ello hemos hecho la prueba con Gnu/Linux y Windows en una Máquina Virtual con Microsoft Windows Xp

Nuestro Servidor Ejabberd está funcionando

Autenticación mediante LDAP

He aqui una confguración básica de como logre autenticar mi ejabber con el ldap mediante el metodo auth_method, ldap.

{auth_method, ldap}.
{ldap_servers, ["10.x.x.x"]}.
{ldap_rootdn, "cn=admin,dc=mydominio,dc=com"}.
{ldap_password, "password"}.
{ldap_base, "dc=mydominio,dc=com"}.
{ldap_filter, "(objectClass=sambaSamAccount)"}.

Y ya

listo

ahora ya todos los usuarios de nuestro ldap podrán hacer login en el jabber.