====== biboumi ====== Biboumi est une passerelle XMPP <-> IRC qui s'installe côté serveur XMPP et permet de rejoindre des salons IRC avec un client XMPP standard (donc sans avoir besoin d'installer un client IRC en plus d'un client XMPP déjà installé). Au démarrage biboumi se connecte à ejabberd sur un port TCP dédié en tant que composant XMPP et ejabberd proposera alors automatiquement aux clients un service supplémentaire de salons IRC. Pour que ça fonctionne ejabberd et biboumi doivent partager un secret. ===== Installation ===== apt install biboumi Créer le fichier ///etc/biboumi/biboumi.cfg// : hostname=biboumi.parinux.org # le vhost XMPP dédié password=xxxxxxxxxxxx # le secret partagé avec ejabberd xmpp_server_ip=127.0.0.1 # l'IP de ejabberd port=8888 # le port d'écoute côté ejabberd db_name=/var/lib/biboumi/biboumi.sqlite admin=pitchum@parinux.org realname_customization=true realname_from_jid=false log_level=1 log_file=/var/log/biboumi/biboumi.log ca_file= Puis mkdir /var/log/biboumi/ chown _biboumi: /var/log/biboumi **Contournement spécifique** Je soupçonne que c'est dû au fait que le noyau est trop vieux (3.16.x) même si j'ai pas trouvé d'info précise confirmant cette hypothèse. Bref, le service biboumi n'arrive pas à se lancer et journalctl affiche : janv. 03 21:59:32 xmpp-1 systemd[1]: Starting Biboumi, XMPP to IRC gateway... janv. 03 21:59:32 xmpp-1 systemd[7827]: biboumi.service: Failed to apply ambient capabilities (before UID change): Invalid argument janv. 03 21:59:32 xmpp-1 systemd[7827]: biboumi.service: Failed at step CAPABILITIES spawning /usr/bin/biboumi: Invalid argument janv. 03 21:59:32 xmpp-1 systemd[1]: biboumi.service: Main process exited, code=exited, status=218/CAPABILITIES Voici comment j'ai contourné ce problème : cp /lib/systemd/system/biboumi.service /etc/systemd/system/ Puis j'ai ajouté ces 2 lignes dans ///etc/systemd/system/biboumi.service// : [Service] ... CapabilityBoundingSet=CAP_NET_BIND_SERVICE NoNewPrivileges=true ... Puis ''systemctl daemon-reload'' et ''systemctl restart biboumi''. **contournement du contournement** En fait, pour une raison que j'ignore, le contournement précédent n'a pas fonctionné lors du restart de biboumi par la suite. J'ai donc mis en place un autre contournement à l'arrache : ''identd_port=1113'' dans //biboumi.cfg// et redirection iptables :113 -> :1113 sur troll3. ==== Interfaçage avec ejabberd ==== **Activer l'écoute côté ejabberd** Dans ///etc/ejabberd/ejabberd.yml// : ... - port: 8888 ip: "127.0.0.1" # l'interface sur laquelle ejabberd accepte les connexions de composants XMPP externes tels que biboumi mais pas seulement module: ejabberd_service access: all shaper: fast # je sais pas à quoi ça sert mais c'est dans la doc alors je le laisse hosts: "biboumi.parinux.org": password: "xxxxxxxxxxxx" # le secret partagé avec biboumi ... sudo -u ejabberd ejabberdctl reload_config Suite à quoi on doit voir une ligne comme celle-ci dans ///var/log/ejabberd/ejabberd.log// : 2019-01-03 21:38:59.735 [info] <0.720.0>@ejabberd_listener:init:143 Start accepting TCP connections at 127.0.0.1:8888 for ejabberd_service Et lorsque le service biboumi sera lancé on verra ceci dans les logs ejabber : 2019-01-03 21:56:45.767 [info] <0.737.0>@ejabberd_service:handle_auth_success:161 (tcp|<0.737.0>) Accepted external component handshake authentication for biboumi.parinux.org from 127.0.0.1