Size: 8558
Comment:
|
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}]},
- ..
- .. {mod_muc, [{access, all},
- [
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}]}.
- {allow, admins}, {deny, all}]}.
- .. {modules,
- [
- .. {mod_muc, [{access, muc_access},
- {access_create, muc_admins}, {access_admin, muc_admins}]},
- ..
- .. {mod_muc, [{access, muc_access},
- [
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"}]},
- ..
- .. {mod_irc, [{access, autor_irc},
- [
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)