Installer et configurer un serveur mumble (murmur) sur debian

Logo indiquant que la page est valide XHTML par le W3C Validator

Explications

Ces pages web vont vous présenter toutes les étapes pour avoir un serveur mumble opérationel sur linux. Si vous avez un serveur dédié chez OVH, 1&1, ou encore un HomeServer à la maison, un serveur mumble peut vous être utile.

A propos

Ces pages n'ont pas vocations a être complètes, exactes, détaillés, pédagogiques. Les liens externes ont été fonctionnels au jour de la rédaction de la page.

Note: Cette page a été rédigée en Mars 2009, et le serveur mumble installé sur une debian lenny.

Installation - configuration

Première étape, installer et configurer le paquet mumble. Attention, il peut y avoir beaucoup de dépendances qui parraissent inutiles (X11, fonts), mais je suppose que le mainteneur de debian fait du bon boulot.

#apt-get install mumble-server

Par défaut mumble ne s'execute pas en démon. Bref peu pratique puisqu'il faut soit laisser ouvert putty ouvert ou screener le processus. On va configurer cela avec le script debconf. Le script peut vous demander votre adresse mail utilisée lors des validations d'inscriptions. Mettez le mot de passe de SuperUser. Attention aux majuscules et minuscules du compte.

#dpkg-reconfigure mumble-server

Une fois fait, on va encore vérifier la configuration. Chez OVH avec les ip failover fait en sorte que votre serveur n'utilise que l'ip failover. Sinon quand vous vous connecterez à mumble vous serez muet.> Le son sera coupé au bout de quelques secondes.

Indiquer votre ip publique. Profitez en pour changer le message d'accueil, voire le certificat SSL si vous en avez un. Si vous voulez vous pouvez mettre un mot de passe qui sera utilisé par tout les utilisateurs non enregistrés.

#vi /etc/mumble-server.ini
Modifier la ligne host= avec votre ip (81.8.3.122)

Relancez murmur.

#/etc/init.d/mumble-server stop && /etc/init.d/mumble-server start

Voila, vous pouvez maintenant vous connecter à votre serveur avec le pseudo de votre choix et le mot de passe public éventuellement configuré.

Comptes utilisateurs

Le compte SuperUser ne permets pas de parler. Vous souhaitez être administrateur avec votre pseudo ? Vous souhaitez donnez plus de droits à d'autres utilisateurs ?

Il est temps de créer des comptes. La manipulation n'est pas forcément simple. Il est possible de manipuler la base SqLite de murmur et d'ajouter des utilisateurs, ou bien de communiquer avec murmur en dbus et de lui demander l'ajouts des utilisateurs.

Personnellement j'utilise ce script pour créer des comptes. La documentation de mumble fourni un script perl pour permettre à vos lusers de s'inscrire eux-même. Un fois un compte créer, connectez vous en SuperUser avec un client mumble et faites un clic droit dans mumble et éditez la «LCA».

Sauvegarde

Coupez le service mumble et sauvegardez ce fichier. Il contient les utilisateurs créée et leurs droits associés.

cp -p /var/lib/mumble-server/mumble-server.sqlite /backup/


Script de création de comptes utilisateurs mumble - Script to register mumble users.

#! /usr/bin/perl
#
# For now, this is a CGI using Perl.
#

use warnings;
use strict;

## User configurable settings:
# Which server to add to? Unless you have multiple virtual servers,
# this is always 1


my $name = 'pseudo';
my $pw = 'passe';
my $email = 'mail@example.net';

our $serverid = 1;

## End of user configurable data
##
## Really. You shouldn't touch anything below this point.

# If we're being run as a CGI in suexec, $HOME doesn't exist. Fake it.
my $home = (getpwuid($<))[7];

# This needs to be done before "use Net::DBus"
if (open(F, "$home/murmur/.dbus.sh")) {
  while() {
    chomp();
    if ($_ =~ /^(.+?)\='(.+)';$/) {
      $ENV{$1}=$2;
    }
  }
  close(F);
}

use Net::DNS;
use Net::DBus;



my $bus;
my $service;

# First try the system bus
eval {
  $bus=Net::DBus->system();
  $service = $bus->get_service("net.sourceforge.mumble.murmur");

};

# If that failed, the session bus
if (! $service) {
  eval {
    $bus = Net::DBus->session();
    $service = $bus->get_service("net.sourceforge.mumble.murmur");
  }
}

die "Murmur service not found" if (! $service);


# Fetch handle to remote object
my $object = $service->get_object("/$serverid");
my $res;

$res = $object->registerPlayer($name);
print '..';
if (($res != 0) && ($res != "0")) {
    my @array = ($res, $name, $email, $pw);
    $object->updateRegistration(\@array);
    print "Succeeded. Thank you for registering.";
} else {
    print "Failed Username rejected by server.";
}