O Servidor XMPP prosody

De Manuais Informática - IES San Clemente.
Revisión del 18:29 16 may 2015 de Bruno (discusión | contribs.)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Á hora de instalar un servidor do protocolo XMPP (Jabber) para mensaxería interna nunha rede local, moitos elixen jabber, ejabberd ou openfire, pero aínda que funcionais, estas aplicacións poden chegar a demandar bastantes recursos.

Se un posúe unha rede pequena ou mediana e só desexa un simple servizo de mensaxería instantánea, afortunadamente existe unha alternativa de servidor livián chamada prosody, que aínda que está programado en LUA que é unha linguaxe interpretada, segundo os seus desenvolvedores funciona moi ben grazas a luajit.

Instalación

O primeiro paso é engadir o repositorio oficial de Prosody.

Engadimos a seguinte liña ao ficheiro /etc/apt/sources.list ou a un ficheiro con extensión .list dentro do directorio /etc/apt/sources.list.d/ como pode ser prosody.list

deb http://packages.prosody.im/debian stable main

No caso de que a distribución fose diferente da debian actual (jessie), habería que cambiar a palabra stable polo nome da distribución de (Debian: wheezy. Ubuntu: trusty, utopic, precise ...).

Engadimos tamén a chave do repositorio

wget https://prosody.im/files/prosody-debian-packages.key
apt-key add prosody-debian-packages.key

Actualizamos os repositorios e instalamos o paquete prosody

apt-get update
apt-get install prosody

Configuración básica

A configuración de Prosody é mantida nun só arquivo, prosody.cfg.lua que se atopa dentro /etc/prosody/

A configuración está dividida en dúas partes. A primeira parte é coñecida coma a sección "global". Todos os axustes daquí aplícanse ao servidor completo, e son a configuración por defecto para todos os host virtuais.

A segunda metade do arquivo é unha serie de VirtualHost e definicións de compoñentes. Os axustes baixo cada VirtualHost ou cada Compoñente aplícanse soamente a ese host virtual ou compoñente.

Engadir Host Virtuais

Un host virtual en Prosody é un dominio no cal se poden crear contas de usuario. Por exemplo se vostede quere que os seus usuarios teñen enderezos como john.smith@example.com entón vostede necesita engadir un host virtual chamado "example.com".

Engadir un host virtual ao servidor é tan fácil como engadir unha liña ao arquivo de configuración baixo os axustes globais. Para example.org, un engadiríase:

VirtualHost "example.org"

Todas as opcións baixo este encabezamento aplicaranse soamente a este anfitrión ata o seguinte VirtualHost ou liña coa directiva Component. Hai que ter coidado sempre de engadilo no lugar correcto despois de todas as opcións globais.

Nota: O nome host "virtual" é utilizado en configuración para evitar confusión co host físico real no que se instala Prosody. Unha soa instancia de Prosody pode servir moitos dominios, cada un definido como entrada de VirtualHost á configuración de Prosody. Un servidor que ofrece un só dominio tería unha única entrada de VirtualHost.

Encriptación

Todo host virtual, necesita un certificado e unha chave privada. O FQDN do certificado deberá ser o mesmo que o nome do host virtual. Deberemos introducir as rutas aos ficheiros que teñen a chave privada e o certificado dentro da configuración do host virtual.

ssl = {
	key = "/etc/prosody/certs/example.com.key";
	certificate = "/etc/prosody/certs/example.com.crt";
}

Administradores do sitio

Hai que indicar tamén quen é o administrador de cada host virtual:

admins = { "admin1@example.com", "admin2@example.com" }

Autenticación

Por defecto a autenticación faise mediante texto plano

authentication = "internal_plain"

Tamén poderiamos indicar:

  • internal_plain: Chaves en texto plano almacenadas de xeito privado pola aplicación Prosody.
  • internal_hashed: Chaves hash almacenadas de xeito interno por Prosody
  • cyrus: Integración con Cyrus SASL (LDAP, PAM, …)
  • anonymous: Mecanismo SASL "anónimo" con usuarios aleatorios sen contrasinal.

Creación de contas de usuario

Os usuarios de Prosody, a non ser que empreguemos outro tipo de autenticación non son usuarios do sistema. Prosody ten unha aplicación chamada prosodyctl para crear usuarios

prosodyctl adduser tom@example.com

Pediranos introducir dúas veces o contrasinal. Tamén podemos indicar todo nunha liña

prosodyctl register salvatore example.com mypassword

Grupos de usuarios

O módulo mod_groups permite aos administradores definir grupos de usuarios que farán que lle aparezan aos usuarios na súa lista de contactos sen ter que engadilos manualmente.

Para habilitar o módulo engadimos:

    modules_enabled = {
        -- Other modules
        "groups"; -- Enable mod_groups
    }
 
    groups_file = "/etc/prosody/sharedgroups.txt"

Un exemplo do ficheiro de usuarios é o seguinte:

    [Support Team]
    support@example.com
    john.doe@example.com
    
    [Development Team]
    hardworkingdeveloper@example.net=Joe Coder
    other.dev@example.com=Mel

Os dous últimos, teñen un nome predefinido, que será o que lle apareza a cada un dos usuarios no listado.

Rexistros DNS

O protocolo XMPP protocol xestiona rexistros de tipo SRV, como por exemplo para o dominio example.org, pódense crear os seguintes rexistros:

#srvce.prot.owner-name  [ttl]  [class]   rr  pri  weight port target
_xmpp-client._tcp.example.org.  IN      SRV  10   100    5222 im.example.org.
_xmpp-server._tcp.example.org.  IN      SRV  10   100    5269 im.xample.org.
im.example.org.            A    192.0.2.12

sendo 192.0.2.12 o enderezo IP do servidor XMPP.

No caso de que o servidor DNS empregado fose dnsmasq introducimos

srv-host=_xmpp-server._tcp.example.org,im.example.org,5269,10,100
srv-host=_xmpp-client._tcp.example.org,im.example.org,5222,10,100