XMPP

Introduccion

Actualmente esta instalado el servidor SRV-INTERNET. Es un servidor XMPP simplificado.

https://prosody.im

Activación de la autenticación via Cyrus SASL <-> PAM <-> RADIUS en srv

Prosody autentica con cyrsus SASL (https://www.sendmail.org/~ca/email/cyrus/sysadmin.html)

Pasos para la configuración

  • ejecutar apt-get install sasl2-bin lua-cyrussasl libsasl2-modules-ldap según https://wiki.debian.org/InstallingProsody
  • editar el archivo /etc/default/saslauthd
    • START=yes
    • MECHANISMS="pam"
  • en el archivo /usr/lib/sasl2/prosody.conf escribir:
    • pwcheck_method: saslauthd
    • mech_list: PLAIN
  • Añadir el usuario prosody al grupo sasl

Cliente

El programa cliente instalado en brocoli es mcabber

Para enviar mensajes desde scripts, utilizar sendxmpp

Comando de ejemplo: echo "hola" | sendxmpp --verbose --tls --subject Prueba hugo@lechuga.eu

CLI chatbot

Base de chatbot en python.

https://github.com/puhoy/sleekbasebot

provado el script https://searchcode.com/codesearch/view/2408657/

https://pypi.python.org/pypi/sleekxmpp/1.3.2

para enviar un mensaje y ya... http://sleekxmpp.com/getting_started/sendlogout.html

un borrador del script lo conseguimos con pullconfig sendxmpp

para instalar el paquete sleekxmpp:

wget https://pypi.python.org/packages/.../sleekxmpp-[version].tar.gz
tar -xvf sleekxmpp-[version].tar.gz
cd sleekxmpp-[version]
sudo python setup.py install

Ubicación de los paquetes de python
/usr/local/lib/python2.7/dist-packages/

Conexion

5222,5269/tcp Escuchando en 0.0.0.0

La conexion es escriptada mediante TLS
TODO: Ahora se usa un certifcado para lechuga.eu, debería utilizarse un certificado para lechuga.eu, segun se queja mcabber

Gestion de usuarios xmpp

https://prosody.im/doc/creating_accounts

No se permite la creacion que no sea a traves de la linea de comandos (allow_registration = false)

prosodyctl adduser me@lechuga.eu -> Añadir un usuario
prosodyctl deluser me@lechuga.eu -> Eliminar un usuario
prosodyctl passwd me@lechuga.eu -> Cambiar la clave de un usuario

La lista se obtiene mediante el comando prosodyctl mod_listusers

Usuarios actuales

Las claves se encuentran en el archivo de claves

srv-internet@lechuga.eu -> Servidor de patio

Configuración

vim /etc/prosody/prosody.cfg.lua

Interesante

XEP-0185: Dialback Key Generation and Validation
https://xmpp.org/extensions/xep-0185.html

Libreria para acceptar comandos por xmpp
http://slixmpp.readthedocs.io/getting_started/echobot.html