El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

servidor jabber con prosody

| Comments

Lua, es uno de los tantos lenguajes interpretados que hay. Lo curioso de este es que es Made in Brasil…

Aunque no les quedó mal, lo de ellos definitivamente es la samba y el futboll. Lo digo porque ese fue uno de los primeros lenguajes que estuve manoseando y No creo que halla un buen motivo para escribir algo con él.

¡Pero Proŝody, demuestra que me equivoco!

La robusteza, simplicidad y el rendimiento de este servidor, quizás sean superiores a la de ejabberd (que está escrito en Erlang, un lenguaje aún más exótico que Lua). Por otra parte, su todo en uno, lo hace más versátil que otros cuantos. No tiene nada que envidiarle al cochino OpenFire y toda su parafernaria de Java.

En su estado natural, prosody solo viene con lo básico. Ampliarlo, es solo cuestión de modificar la configuración. No piense en una extraña interfaz web como la de ejabber, hablamos de un fichero de configuración “.lua” con todo comentado. Lua, que es bien rarito, usa para comentario es “–” en vez de “#”

Comenzamos. En debian todo es muy fácil:

“aptitude”
1
aptitude install prosody

Esto dará lugar un fichero de configuracion en: /etc/prosody/prosody.cfg.lua

De ahí modificaremos lo que necesitamos. Primero, poner la JID del admin, eso lo haremos aunque nuestro dominio no halla sido declarado.

“prosody.cfg.lua”
1
admins = { 'tu_usaurio@tudominio.cu' }

Ahora vamos a la sesión modules_enabled. Todo bien comentadito. Yo lo habilito todo menos el servidor http y el telnet, como que no me da buena espina.

Si habilitamos el módulo “motd” nuestro servidor contará con un MOTD, pero debemos especificarlo. De esta forma cada módulo es una función que puede o no llevar parámetros de configuración. Para argumentar la configuración de motd, escribimos FUERA de las sesión de módulos.

“prosody.cfg.lua”
1
motd_text = 'este es el motd de mi server'

Pero motd_text no estaba escrito en ninguna parte. Para ver si un módulo tiene o no configuración, sus detalles, que hace y hasta un ejemplo, podemos verlo en la lista de módulos.

http://prosody.im/doc/modules

Pero volvamos a la configuración. La siguiente linea de interés es la que permite el registro de usuarios.

“prosody.cfg.lua”
1
allow_registration = true;

OJO! se requiere un “;” al final de la configuración (razón por la cual abandoné Lua en aquel entonce). Si no quieres que los usuarios se registren déjalo en false. Puedes usar la aplicación de control para crear usuarios. Ejecuta prosodyctl sin parámetros y veras una pantalla aprueba de imbéciles que te dice como crear los usuarios y otras opciones interesantes.

Por ejemplo, para crear un usuario

“prosodyctl”
1
prosodyctl adduser fulanito@dominio.cu

Lo siguiente es el SSL, no es bueno desabilitarlo porque muchos cliente jabbers traen por definición usar ssl. Mejor seguir a las que dice:

“prosody.cfg.lua”
1
2
c2s_require_encryption = false
s2s_require_encryption = false

Poniéndolas en false, el servidor usara lo mismo SSL que plana.

Pero aún no hemos declarado el dominio. Resulta que como te dije todo es modular. Los dominios son VirtualHost. Al igual que en apache, incluso el dominio por defecto, es un virtual host. Podemos declarar varios dominios y dejarlos deshabilitados.

“prosody.cfg.lua”
1
VirtualHost "tudominio.cu"

Ya tenemos un dominio, podríamos tener más con solo agregarlos pero con eso ya tenemos un servidor con lo indispensable. Vamos a extenderlo un poco, una sala de conferencia:

“prosody.cfg.lua”
1
Component "conference.tudominio.cu" "muc"

Ahora solo falta crear un puntero DNS que apunte a conference.tudominio.cu

Pero hablando de punteros DNS. Para que jabber pinche, necesita un puntero DNS especial.

Para dnsmasq, supongamos que el servidor que correo el jabber se llama chat.tudominio.cu

“dnsmasq.conf”
1
2
3
4
address=/chat.tudominio.cu/10.1.1.1
srv-host=_xmpp-client._tcp.chat.tudominio.cu,chat.tudominio.cu,5222
srv-host=_xmpp-server._tcp.chat.tudominio.cu,chat.tudominio.cu,5269
txt-record=_xmppconnect.chat.tudominio.cu,"_xmpp-client-xbosh=http://chat.tudominio.cu:5280/http-bind"

Por cierto, eso último, es el puntero al servidor bosh.

“prosody.cfg.lua”
1
 bosh_ports = { 5280 }

y a cotorrear se ha dicho…

Si este artículo te resultó interesante, considere donar 0.04 BTC: 14iNmkfULf5jggumVh963kUg4UPScEZHgz

Comments