8554
Comment:
|
9113
converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
=== Configuración del Ejabberd === | = Ejabberd = === 1 Instalacion y configuracion inicial de ejabberd === 1.#1 '''Instalar ejabberd''' Ejabberd se encuentra en los repositorios oficiales, asi que lo instalaremos via apt-get: {{{ apt-get update apt-get install ejabberd }}} 1.#2 '''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 olvideis substituir host.my.domain por vuestro dominio. {{{ _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 Editar el fichero '''de configuracion''' ''/etc/ejabberd/ejabberd.cfg'' 2.#1 '''Primero añadiremos un dominio''' {{{ {hosts, ["jabber.my.domain"]}. }}} '''O varios, usando dominios virtuales:''' {{{ {hosts, ["jabber.my.domain","jabber1.my.domain"]}. }}} Nota: '''Los nombres de los servidores tienen que ser resultos por el DNS''' * '''Para permitir el inicio de sesion''' añadiremos la siguiente linea por cada dominio: {{{ {host_config, "jabber.my.domain", [{auth_method, [internal]}]}. }}} * El '''acceso web''' viene ''habilitado por defecto'' con la siguiente linea: {{{ {5280, ejabberd_http, [ http_poll, web_admin] } }}} === 2. Reiniciar el ejabberd === 3.#1 Reiniciamos ejabberd {{{ # /etc/init.d/ejabberd restart ó # invoke-rc.d ejabberd restart ó # ejabberdctl restart }}} '''Para saber si el ejabberd funciona podemos ejecutar:''' {{{ ejabberdctl status }}} === 3 Gestion de usuarios === 1.#1 Para añadir un usuario se ha de ejecutar: {{{ # 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.''' '''Nota: Podemos acceder a la interfaz web a traves de http://host.my.domain:5280/admin/''' === 4 Establecimiento de políticas: === Estableceremos una '''lista de control de acceso'''. 1.#1 Si queremos evitar el registro automatico de usuarios editamos el fichero /etc/ejabberd/ejabberd.cfg y añadimos la siguiente linea: {{{ {access, register, [{deny, all}]}. }}} Ahora comentamos el modulo mod_register, dejandolo asi: {{{ % {mod_register, [{access, register}]}, }}} 1.#2 Para darle permisos a un usuario como administrador: {{{ {acl, admin, {user, "username"}}. }}} En caso de dominios virtuales quedaria algo parecido a esto: {{{ {acl, admin, {user, "eaf","jabber.my.domain"}}. {acl, admin, {user, "eaf","jabber1.my.domain"}}. }}} === 5 Sobre la estructura de las listas de control de acceso === Estructura de una acl: * Primero hemos de definir la acl {{{ {acl, <nombreacl>, {<tipoacl>, .}}. }}} * Y despues definimos su comportamiento: {{{ {access, <nombreacceso>, [{allow, <nombreacl>}, {deny, <nombreacl>}, ]}. }}} === 6 Ejemplos útiles sobre listas de control de acceso === 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}]}, ]}. }}} Esta lista de acceso conseguiria lo siguiente: 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}]}, ]}. }}} Con este ejemplo: 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). '''Una opcion muy util es guardar 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"}} ]}, }}} Notas: * -Sólo los del grupo muc_admins pueden deshabilitar el traceo. * -Un fichero de stylo para guardar las trazas * -si se pone la opción subdirs, se crean subdirectorios para años y meses, sino se pone en el mismo directorio(plain) * -Directorio donde se guardarán: /var/www/muclogs * tiempo universal(puede ser local y por lo tanto se toma del Sistema Operativo) * -spam_prevention añade attributos especiales para que no puedan ser indexadas por búsquedas las charlas * -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"}]}, ]}. }}} 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 transferencia de ficheros a través de http: {{{ mod_http_fileserver }}} === Anexo 1 - Funcionalidades del ejabberdctl === He aqui una brebe descripcion de las principales 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. ---- |
Line 3: | Line 250: |
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) |
* 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) |
Line 20: | Line 264: |
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. |
* http://samueladam.net/2008/03/19/install-ejabberd-xmpp-server-mysql (Esto es una utilización extra) |
Ejabberd
1 Instalacion y configuracion inicial de ejabberd
Instalar ejabberd Ejabberd se encuentra en los repositorios oficiales, asi que lo instalaremos via apt-get:
apt-get update apt-get install ejabberd
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 olvideis substituir host.my.domain por vuestro dominio.
_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.
Editar el fichero de configuracion /etc/ejabberd/ejabberd.cfg
Primero añadiremos un dominio
{hosts, ["jabber.my.domain"]}.
O varios, usando dominios virtuales:
{hosts, ["jabber.my.domain","jabber1.my.domain"]}.
Nota: Los nombres de los servidores tienen que ser resultos por el DNS
Para permitir el inicio de sesion añadiremos la siguiente linea por cada dominio:
{host_config, "jabber.my.domain", [{auth_method, [internal]}]}.
El acceso web viene habilitado por defecto con la siguiente linea:
{5280, ejabberd_http, [ http_poll, web_admin] }
2. Reiniciar el ejabberd
- Reiniciamos ejabberd
# /etc/init.d/ejabberd restart ó # invoke-rc.d ejabberd restart ó # ejabberdctl restart
Para saber si el ejabberd funciona podemos ejecutar:
ejabberdctl status
3 Gestion de usuarios
- Para añadir un usuario se ha de ejecutar:
# 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.
Nota: Podemos acceder a la interfaz web a traves de http://host.my.domain:5280/admin/
4 Establecimiento de políticas:
Estableceremos una lista de control de acceso.
- Si queremos evitar el registro automatico de usuarios editamos el fichero /etc/ejabberd/ejabberd.cfg y añadimos la siguiente linea:
{access, register, [{deny, all}]}.
Ahora comentamos el modulo mod_register, dejandolo asi:% {mod_register, [{access, register}]},
- Para darle permisos a un usuario como administrador:
{acl, admin, {user, "username"}}.
- En caso de dominios virtuales quedaria algo parecido a esto:
{acl, admin, {user, "eaf","jabber.my.domain"}}. {acl, admin, {user, "eaf","jabber1.my.domain"}}.
- En caso de dominios virtuales quedaria algo parecido a esto:
5 Sobre la estructura de las listas de control de acceso
Estructura de una acl:
- Primero hemos de definir la acl
{acl, <nombreacl>, {<tipoacl>, .}}.
- Y despues definimos su comportamiento:
{access, <nombreacceso>, [{allow, <nombreacl>}, {deny, <nombreacl>}, ]}.
6 Ejemplos útiles sobre listas de control de acceso
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}]}, ]}.
- Esta lista de acceso conseguiria lo siguiente:
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}]}, ]}.
Con este ejemplo: 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).
Una opcion muy util es guardar 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"}} ]},
- Notas:
- -Sólo los del grupo muc_admins pueden deshabilitar el traceo.
- -Un fichero de stylo para guardar las trazas
- -si se pone la opción subdirs, se crean subdirectorios para años y meses, sino se pone en el mismo directorio(plain)
- -Directorio donde se guardarán: /var/www/muclogs
- tiempo universal(puede ser local y por lo tanto se toma del Sistema Operativo)
- -spam_prevention añade attributos especiales para que no puedan ser indexadas por búsquedas las charlas
- -top_link es el enlace superior que se adiciona en la web generada
Para el módulo irc:' Para transferencia de ficheros a través de http:
He aqui una brebe descripcion de las principales opciones de ejabberd: Recursos consultados: http://michael-prokop.at/blog/2007/07/27/setting-up-your-own-jabber-server-ejabberd/ http://www.informaticien.be/forum_topic-3518-Configuration_ejabberd_sous_Linux_Debian.html http://www.sinanimodelucro.net/material/manuales/ejabberd_basico.pdf 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://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) mod_irc
{modules,
[
{mod_irc, [{access, all}, {default_encoding, "iso8859-15"}]},
]}.
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}
]},
mod_http_fileserver
Anexo 1 - Funcionalidades del ejabberdctl
status -> obtiene el estado del servidor ejabberd.