Instalación de servidor XMPP: Prosody

Llevamos varias entradas hablando de Jabber/XMPP. Ya es hora de instalar nuestro propio servidor. Instalaremos prosody un servidor Jabber/XMPP que es software libre.

Instalación de Prosody

Añadiremos el repositorio oficial de prosody y la llave con el siguiente comando:

echo deb http://packages.prosody.im/debian wheezy main | tee -a /etc/apt/sources.list
wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -

Seguidamente actualizaremos los repositorios para obtener la última versión:

apt-get update

Proseguiremos con la instalación:

apt-get install prosody

Y ya tendremos nuestro servidor instalado. Nos falta configurarlo.

Configuración

La configuración de prosody se encuentra en un archivo llamado prosody.cfg.lua. Vamos a editarlo con nano:

nano /etc/prosody/prosody.cfg.lua

En la línea 155 pondremos el dominio en el que se encuentra nuestro servidor.

VirtualHost “elbinario.net”

Y eliminaremos la línea 156 que dice:

enabled = false — Remove this line to enable this host

También comentaremos el VirtualHost “localhost” para que no nos de problemas. Nos debería quedar así:

--VirtualHost "localhost"

Si eliminasemos o comentasemos las líneas correspondientes al SSL ya funcionaría, pero cómo nos improta la privacidad, vamos a activar SSL.

Activar SSL

Lo primero que vamos a hacer va a ser generar las claves SSL. Si usáis la versión 0.9, la que viene con el repositorio que hemos añadido al principio, existe un comando para generar los certificados fácilmente:

prosodyctl cert generate elbinario.net

Le diremos que queremos una clave de 4096 bits.

Si usamos una versión anterior, generaremos el certificado así:

openssl req -new -x509 -days 365 -nodes -out "elbinario.net.crt" -newkey rsa:4096 -keyout "elbinario.net.key"

Y nos irá preguntando cosas para el certificado. Responded lo que queráis. Al final nos saldrá la ruta del certificado:

Config written to /var/lib/prosody/elbinario.net.cnf
Certificate written to /var/lib/prosody/elbinario.net.crt

Debajo del campo VirtualHost en la línea 155, está la opción SSL. Debeís darle las rutas de vuestros certificados. Os debería quedar algo así:

ssl = {
key = ” /var/lib/prosody/elbinario.net.key”;
certificate = “/var/lib/prosody/elbinario.net.crt”;
}

Nota: En la configuración por defecto hay dos campos ssl, podemos llenar los dos con la misma configuración o comentar uno de los dos. Funcionará en ambos casos, pero es importante que no sean distintos, en ese caso, os dará error al iniciar prosody.

Reiniciamos el servidor y todo debería funcionar. Sólo nos faltará crear nuestro usuario.

service prosody restart

Añadir usuarios

Para añadir usuarios podemos hacerlo desde la terminal, ejecutando el siguiente comando:

prosodyctl adduser admin@elbinario.net

Añadir nuestro usuario como administrador

admins = {“admin@elbinario.net” }

Cifrar nuestras conversaciones con OTR

Para cifrar nuestras conversaciones de extremo a extremo, sin que ni nuestro propio servidor entienda que estamos hablando, podéis ver una guía aquí.

Más información

8 Comments

  1. hola, primero felicidades por el post es genial.
    Tengo algunas dudas, quiero crear un servidor xmpp. Cuento con un servidor dell poweredge r 905 en el cual quiero implementar xmpp con Debian. Mis dudas son:
    – el dominio tiene que ser especial? Cuento con un dominio godaddy en el que tengo una pagina web, lo podria usar? o requiero uno en especial.
    – Se requiere una ip estatica para el servidor? e leido que se requiere en algunos post
    Gracias.

  2. [….] Restarting Prosody XMPP Server: prosody

    A problem occured while reading the config file /etc/prosody/prosody.cfg.lua:

    Error: /etc/prosody/prosody.cfg.lua:163: unexpected symbol near ‘�’

    More help on configuring Prosody can be found at http://prosody.im/doc/configure
    Good luck!

    failed!

    Por mas que modifico la línea a mano, no consigo quitar el error! Además de hacerlo de varias paginas…sigue igual

    1. Tiene pinta de que tienes un error de codificación. Si quieres pega tu config en el pad o entra en jabber y miraremos de ayudarte si hay alguien en ese momento.

  3. Lo primero, gracias por el tutorial. Ahora una duda que me gustaría saber si me podéis resolver. Tengo un pequeño servidor debian instalado en una VPS de una empresa en EEUU, sería más seguro instalar un servidor XMPP en esta VPS o darme de alta en algún site tipo duckgo????

    Muchas gracias

    1. Muy buena pregunta ;)

      Nosotros siempre fomentamos los servicios auto-alojados, pero en este caso, la verdad es que personalmente no me fiara de un VPS alojado en EEUU, puesto que las leyes de privacidad allí, no son para nada garantistas, por lo que en el caso que comentas yo me fiara mas de duckgo, pero lo ideal seria tener un propio vps en otro país de Europa.

  4. Muchas gracias por la aclaración, hasta que encuentre una oferta de un VPS en Europa, me quedaré con DuckGo.

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax