Differences between revisions 2 and 3
Revision 2 as of 2008-04-22 12:49:42
Size: 8558
Comment:
Revision 3 as of 2008-04-22 13:03:54
Size: 8446
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
=== Configuración del Ejabberd ===


== 1- Instalar el ejabberd ==

   apt-get install ejabberd

= 1.1 Crear registros en el dns: Anexo II =


== 2- Definir el nombre del servidor jabber ==
= Configuración del Ejabberd =

1- Instalar el ejabberd

apt-get install ejabberd

1.1 Crear registros 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.

1.2- Definir el nombre del servidor jabber
Line 24: Line 30:
Line 30: Line 37:
== 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)
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)
Line 43: Line 49:
         # ejabberdctl register <username> <server> <password> # ejabberdctl register <username> <server> <password>
Line 47: Line 53:
         # ejabberdctl register pepe jabber1.my.domain 123 # ejabberdctl register pepe jabber1.my.domain 123
Line 51: Line 57:
         # ejabberdctl unregister <username> <server>
# ejabberdctl unregister <username> <server>
Line 56: Line 61:
Line 59: Line 63:

  
http://host.my.domain:5280/admin/
http://host.my.domain:5280/admin/
Line 73: Line 75:
Line 76: Line 77:
    {acl, admin, {user, "username"}}.

 En caso de dominios virtuales:

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

En caso de dominios virtuales:

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

{acl, admin, {user, "eaf","jabber1.my.domain"}}.
Line 88: Line 89:
     {acl, <nombreacl>, {<tipoacl>, ...}}. {acl, <nombreacl>, {<tipoacl>, ...}}.
Line 92: Line 93:
     {access, <nombreacceso>, [{allow, <nombreacl>}, {access, <nombreacceso>, [{allow, <nombreacl>},
Line 107: Line 108:
Line 108: Line 110:
Line 109: Line 112:
Line 116: Line 120:
Line 117: Line 122:
Line 138: Line 144:
Line 139: Line 146:
Line 146: Line 154:
Line 147: Line 156:
Line 148: Line 158:
Line 155: Line 164:
Line 156: Line 166:
Line 157: Line 168:
Line 158: Line 170:
Line 159: Line 172:
Line 160: Line 174:
Line 161: Line 176:
Line 166: Line 182:
Line 167: Line 184:
c) si se pone la opción subdirs, se crean subdirectorios para años y meses, sino se pone en el mismo directorio(plain)
c) si se pone la opción subdirs, se crean subdirectorios para años y meses, sino se pone en el mismo
directorio(plain)
Line 169: Line 188:
Line 170: Line 190:
Line 171: Line 192:
Line 172: Line 194:
Line 202: Line 223:
Line 217: Line 239:
Para que no se devuevan todas
Para que no se devuelvan todas
Line 233: Line 254:
Line 234: Line 256:
Line 235: Line 258:
Line 236: Line 260:
Line 237: Line 262:
Line 238: Line 264:
Line 239: Line 266:
Line 240: Line 268:
Line 241: Line 270:
dump file vuelca el contenido de la base de datos a un fichero
de texto.

dump file vuelca el contenido de la base de datos a un fichero de texto.
Line 244: Line 274:
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.

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.
Line 249: Line 280:
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.

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

Configuración del Ejabberd

1- Instalar el ejabberd

apt-get install ejabberd

1.1 Crear registros 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.

1.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, [

  • ]},

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

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)