Vous êtes sur la page 1sur 6

###################################################

Ejabberd en Servidor de prueba


Nodo Infomed Cfgos - 3 de Abril 2008
###################################################

Recursos consultados:

http://michael-prokop.at/blog/2007/07/27/setting-up-your-own-jabber-server-
ejabberd/
http://morgancollett.wordpress.com/2008/02/27/olpc-community-jabber-servers-
ejabberd-200-from-source/
http://www.informaticien.be/forum_topic-3518-
Configuration_ejabberd_sous_Linux_Debian.html
http://www.sinanimodelucro.net/material/manuales/ejabberd_basico.pdf
http://www.process-one.net/docs/ejabberd/guide_en.html
http://support.process-one.net/doc/display/MESSENGER/mail/2028 (Salas
persistentes)
http://www.ejabberd.im/aclpopulate - Para que se formen automáticamente los shared
roster
http://www.ejabberd.im/mod_ctlextra (utilidades extras para ejabberdctl)
http://www.ejabberd.im/shared-roster-all
http://wiki.laptop.org/go/Installing_ejabberd
http://wiki.laptop.org/go/Ejabberd_Configuration
http://www.ejabberd.im/mod_filter(módulo para filtros)

Sobre conexión con mysql:

http://samueladam.net/2008/03/19/install-ejabberd-xmpp-server-mysql (Esto es una


utilización extra)

Pasos:

1- Instalar el ejabberd

apt-get install ejabberd

1.1 - Crear registros en el dns: Anexo II

2- Definir el nombre del servidor jabber

{hosts, ["jabber.my.domain"]}.

Si se quiere manejar dominios virtuales se hace a través de:

{hosts, ["jabber.my.domain","jabber1.my.domain"]}.

Los nombres de los servidores tienen que ser resulto por DNS

También se debe adicionar:

{host_config, "jabber.my.domain", [{auth_method, [internal]}]}.


{host_config, "jabber1.my.domain", [{auth_method, [internal]}]}.
Para tener abierto el acceso administrativo por la web:

{5280, ejabberd_http, [http_poll, web_admin]}]}.

3- Reiniciar el ejabberd y añadir un user

# /etc/init.d/ejabberd restart

ó con

ejabberdctl restart ( ver anexo 1 para saber más acerca de ejabberdctl)

Si el ejabberd funciona: ejabberdctl status

Para registrar un usuario

# ejabberdctl register <username> <server> <password>

Si quiere añadir una cuenta para otro dominio virtual:

# ejabberdctl register pepe jabber1.my.domain 123

Para quitar un usuario:

# ejabberdctl unregister <username> <server>

Funcionando de esta manera se pueden crear salas automáticamente y los usuarios se


pueden autoregistrar.

3.5- Acceso a la inteface web

http://host.my.domain:5280/admin/

4- Establecimiento de políticas:

Esta acl impide el registro automático de los usuarios:

{access, register, [{deny, all}]}.

y se comenta el módulo

% {mod_register, [{access, register}]},

Para darle permisos a un usuario como administrador:

{acl, admin, {user, "username"}}.

En caso de dominios virtuales:

{acl, admin, {user, "eaf","jabber.my.domain"}}.


{acl, admin, {user, "eaf","jabber1.my.domain"}}.

Sobre la estructura de las listas de control de acceso:

Estructura de una acl:

{acl, <nombreacl>, {<tipoacl>, ...}}.

se define como se comportará:

{access, <nombreacceso>, [{allow, <nombreacl>},


{deny, <nombreacl>},
...
]}.

Por ejemplo para la cuestión de las salas o conferencias es lo referido al módulo


muc:

{acl, admins, {user, "admin", "jabber.my.domain"}}.


...
{access, muc_admins, [{allow, admins}]}.
...
{modules,
[
...
{mod_muc, [{access, all},
{access_create, all},
{access_admin, muc_admins},
{history_size, 0}]},
...
]}.

Estas cláusulas permiten lo sgte:

a)- Todos los usuarios pueden acceder a las salas


b)- Todos pueden crear salas nuevas
c)- Los admistradores(admins) pueden tener privilegios administrativos en las
Salas.

Otro ejemplo más restricctivo:

{acl, autorizados, {user, "usuario1", "jabber.my.domain"}}.


{acl, autorizados, {user, "usuario2", "jabber.my.domain"}}.
{acl, autorizados, {user, "usuario3", "jabber.my.domain"}}.
{acl, admins, {user, "admin", "jabber.my.domain"}}.
...
{access, muc_admins, [{allow, admins},
{deny, all}]}.
{access, muc_access, [{allow, autorizados},
{allow, admins},
{deny, all}]}.
...
{modules,
[
...
{mod_muc, [{access, muc_access},
{access_create, muc_admins},
{access_admin, muc_admins}]},
...
]}.

Se plantea:

a)Sólo los usuarios de la regla "autorizados" pueden acceder a las salas


b)Sólo el administrador puede crear salas
c)Sólo los administradores tienen privilegios administrativos(admins).

Si se quieren guardar trazas de las conversaciones(en html):

{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"}}
]},

Se plantea:

a) Sólo los del grupo muc_admins pueden deshabilitar el traceo.


b) Un fichero de stylo para guardar las trazas
c) si se pone la opción subdirs, se crean subdirectorios para años y meses, sino
se pone en el mismo directorio(plain)
d) Directorio donde se guardarán: /var/www/muclogs
e) tiempo universal(puede ser local y por lo tanto se toma del Sistema Operativo)
f) spam_prevention añade attributos especiales para que no puedan ser indexadas
por búsquedas las charlas
g) top_link es el enlace superior que se adiciona en la web generada

Para el módulo irc:

mod_irc

{modules,
[
...
{mod_irc, [{access, all}, {default_encoding, "iso8859-15"}]},
...
]}.

irc con un encoding determinado

Si se quiere restringir el acceso a determinados usuarios:

{acl, autor_irc, {user, "customer1", "jabber.my.domain"}}.


{acl, autor_irc, {user, "customer2", "jabber.my.domain"}}.
{acl, autor_irc, {user, "customer3", "jabber.my.domain"}}.
...
{access, aut_irc, [{allow, autor_irc},
{deny, all}]}.
...
{modules,
[
...
{mod_irc, [{access, autor_irc},
{host, "irc.jabber.my.domain"}]},
...
]}.

Solo pordrían acceder los usuarios que están en el grupo autor_irc.

Para asegurar las credenciales de los usuarios

{mod_vcard, [{search, true},


{all_return_all, false}
]},

Para que no se devuevan todas

Para transferencia de ficheros a través de http:

mod_http_fileserver

Anexo 1:

Funcionalidades del ejabberdctl

El ejabberdctl tiene una gran cantidad de opciones para hacer salvas de la BD,
etc:

status obtiene el esto 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.

Anexo II

Añadir registro en el DNS

Por supuesto se necesitan los registro de host.my.domain directos e inversos en el


DNS.

y luego los propios del Jabber.

_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.

Vous aimerez peut-être aussi