si:logiciels:biboumi

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
si:logiciels:biboumi [2025/04/24 21:22] – supprimée - modification externe (Unknown date) 127.0.0.1si:logiciels:biboumi [2025/04/24 21:22] (Version actuelle) – ↷ Page déplacée de si:biboumi à si:logiciels:biboumi vcalame
Ligne 1: Ligne 1:
 +====== 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 =====
 +
 +<code bash>apt install biboumi</code>
 +
 +Créer le fichier ///etc/biboumi/biboumi.cfg// :
 +
 +<file /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=
 +</file>
 +
 +Puis
 +
 +<code>
 +mkdir /var/log/biboumi/
 +chown _biboumi: /var/log/biboumi
 +</code>
 +
 +**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 :
 +<code>
 +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
 +</code>
 +
 +Voici comment j'ai contourné ce problème :
 +
 +<code>cp /lib/systemd/system/biboumi.service /etc/systemd/system/</code>
 +
 +Puis j'ai ajouté ces 2 lignes dans ///etc/systemd/system/biboumi.service// :
 +
 +<file>
 +[Service]
 +...
 +CapabilityBoundingSet=CAP_NET_BIND_SERVICE
 +NoNewPrivileges=true
 +...
 +</file>
 +
 +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// :
 +<file>
 +...
 +  - 
 +    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
 +...
 +</file>
 +
 +<code>sudo -u ejabberd ejabberdctl reload_config</code>
 +
 +Suite à quoi on doit voir une ligne comme celle-ci dans ///var/log/ejabberd/ejabberd.log//
 +<code>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 </code>
 +
 +Et lorsque le service biboumi sera lancé on verra ceci dans les logs ejabber :
 +<code>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</code>