Aujourd’hui nous allons voir comment installer la dernière version stable de Murmur sur une station Debian Lenny.

Description

Murmur est en fait la version serveur de Mumble.
Mumble étant un logiciel de VoIP sous licence BSD largement répandu dans le monde des joueurs mais il s’avère également très utile pour faire des Conf Call.
Dans le même style on retrouve Ventrilo ou encore TeamSpeak.

Pour de plus amples informations sur cet outil je vous renvois sur la page du projet: http://mumble.sourceforge.net/

Post-Installation

Du fait que je souhaite installer la dernière version stable à ce jour (1.2.2) je ne vais pas utiliser les dépôts officiels Debian disposant eux de la version 1.1.4.
Je souhaite également adapter la configuration de la manière suivante:

  • Utilisateur et groupe « mumble-server »
  • Fichier de données dans « /var/lib/mumble-server/ »
  • Répertoire des sources dans « /opt/ »
  • Fichier de configuration dans « /etc/ »
  • Fichier de log dans « /var/log/mumble-server »
  • Fichier de lock (contenant le pid) dans « /var/run/mumble-server/ »

Toutes les opérations se font en tant que « root » ou au travers de « sudo ».

Compte utilisateur

Création du compte utilisateur « mumble-server » avec les caractéristiques suivantes:

  • Nom d’utilisateur: mumble-server
  • Description: Mumble Server
  • Home directory: /var/lib/mumble-server
  • Shell: /bin/false
  • UID: 1000
  • Groupe: mumble-server
  • GID: 1000
$ useradd -c "Mumble Server" -d "/var/lib/mumble-server" -m -s "/bin/false" -u 1000 -U mumble-server

Vérification:

$ id mumble-server
uid=1000(mumble-server) gid=1000(mumble-server) groups=1000(mumble-server)
$ ls -l /var/lib | grep mumble-server
drwxr-xr-x  2 mumble-server mumble-server   4096 Jan 30 16:14 mumble-server

Création du répertoire des logs

On va créer le répertoire visant à accueillir les logs et donner les autorisations à l’utilisateur « mumble-server »:

$ mkdir /var/log/mumble-server
$ chown -R mumble-server:mumble-server /var/log/mumble-server

Création du répertoire de lock

On va créer le répertoire dans lequel sera stocké le fichier contenant le pid du processus et donner les autorisations à l’utilisateur « mumble-server »:

$ mkdir /var/run/mumble-server
$ chown -R mumble-server:mumble-server /var/run/mumble-server

Mise en place des sources

Nous allons commencer par télécharger les sources depuis le site du projet (lien) dans le répertoire « /opt »:

$ cd /opt
$ wget "http://sourceforge.net/projects/mumble/files%2FMumble%2F1.2.2%2Fmurmur-static_x86-1.2.2.tar.lzma/download" -O murmur-static_x86-1.2.2.tar.lzma

Une fois l’archive téléchargée il faut la décompresser:

$ lzma -d murmur-static_x86-1.2.2.tar.lzma
$ tar -xf murmur-static_x86-1.2.2.tar

On se retrouve donc avec un répertoire « murmur-static_x86-1.2.2″ contenant nos sources.
NB: on peut supprimer l’archive « murmur-static_x86-1.2.2.tar »

Configuration

Par défaut lorsque l’on exécute murmur, celui-ci charge le fichier « murmur.ini » présent dans son répertoire d’exécution. Me concernant je préfère que ce fichier se trouve dans « /etc », on va donc faire une copie du fichier « murmur.ini » dans « /etc » sous le nom « mumble-server.cfg » puis sauvegarder le fichier présent dans le répertoire d’exécution (par exemple « murmur.ini.bak »):

$ cd /opt/murmur-static_x86-1.2.2/
$ cp -p murmur.ini /etc/mumble-server.cfg
$ mv murmur.ini murmur.ini.bak

Ceci implique qu’il faudra spécifier au programme où se trouve le fichier de configuration (nous verrons cela un peu plus bas).
Par contre si on ne veut pas s’embêter nous avons également la possibilité de créer un lien symbolique dans le répertoire d’exécution:

$ ln -s /etc/mumble-server.cfg murmur.ini

Maintenant que notre fichier de configuration est en place nous pouvons l’éditer:

$ vi /etc/mumble-server.cfg

NB: Je ne vais pas vous donnez toute les directives ci-dessous mais seulement les configurations pour démarrer.

Dans la section « database » on va renseigner le répertoire et le nom du fichier de données:

database=/var/lib/mumble-server/mumble-server.sqlite

Le fichier de données est une mini base de données sqlite.

Dans la section « logfile » on va renseigner le répertoire et le nom du fichier de log:

logfile=/var/log/mumble-server/murmur.log

Dans la section « pidfile » (commentée par défaut) on va renseigner le répertoire et le nom du fichier de lock:

pidfile=/var/run/mumble-server/mumble-server.pid

Dans la section « welcometext » on va mettre un petit message de bienvenue:

welcometext="Bienvenue sur mon serveur Mumble"

Dans la section « port » on renseigne le port d’écoute:

port=64738

Dans la section « serverpassword » on peut renseigner un mot de passe pour restreindre l’accès au serveur (non public):

serverpassword=mypassword

Si votre serveur n’est pas directement sur Internet par exemple et qu’il dispose d’une adresse IP translatée, il vous faut renseigner sur quelle adresse Murmur doit écouter dans la section « host »:

hosts=XXX.XXX.XXX.XXX

La configuration est à présent terminée (pour démarrer simplement).

Démarrage du produit

Pour démarrer le serveur il suffit d’exécuter le binaire « murmur.x86″.
En lui spécifiant l’argument « -h » vous obtiendrez tous les paramètres possibles:

$ /opt/murmur-static_x86-1.2.2/murmur.x86 -h
Usage: ./murmur.x86 [-ini <inifile>] [-supw <password>]
  -ini <inifile>   Specify ini file to use.
  -supw <pw> [srv] Set password for 'SuperUser' account on server srv.
  -readsupw [srv]  Reads password for server srv from standard input.
  -v               Add verbose output.
  -fg              Don't detach from console [Unix-like systems only].
  -wipessl         Remove SSL certificates from database.
  -version         Show version information.
If no inifile is provided, murmur will search for one in 
default locations.

L’option primordiale dans notre cas est « -ini <inifile> » qui nous permettra d’utiliser notre fichier de configuration « /etc/mumble-server.cfg ».

Avant tout chose il faut définir le mot de passe du compte « Superuser » qui est le « root » de Murmur.
Comme vous l’avez remarqué l’utilisateur « mumble-server » ne dispose pas d’un véritable shell (« /bin/false ») nous allons donc utiliser « start-stop-daemon »:

$ start-stop-daemon --start --chuid mumble-server --group mumble-server --exec /opt/murmur-static_x86-1.2.2/murmur.x86 -- -ini /etc/mumble-server.cfg -supw mysuperpassword
 
Initializing settings from /etc/mumble-server.cfg (basepath /etc)
Binding to address XXX.XXX.XXX.XXX
SSL: Added CA certificates from '/etc/ssl/certs/ca-certificates.crt'
ServerDB: Openend SQLite database /var/lib/mumble-server/mumble-server.sqlite
Superuser password set on server 1

Le compte utilisateur « Superuser » dispose de toutes les autorisations lorsque vous vous connectez avec le client Mumble sauf le droit de parler.
NB: J’ai dû exécuté deux fois la commande pour que le mot de passe soit pris en compte.

A ce stade notre serveur n’est toujours pas démarré donc pour se faire:

$ start-stop-daemon --start --chuid mumble-server --group mumble-server --exec /opt/murmur-static_x86-1.2.2/murmur.x86 -- -ini /etc/mumble-server.cfg

Vous pouvez consulter la log pour vérifier qu’il n’y a pas d’erreur:

$ cat /var/log/mumble-server/mumble-server.log

Arrêt du serveur

Pour arrêter le serveur:

$ start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/mumble-server/mumble-server.pid

Firewall

Si votre serveur est doté d’un firewall n’oubliez pas d’ouvrir le port de connexion en TCP et UDP:

$ iptables -I INPUT -p tcp --dport 64738 -j ACCEPT
$ iptables -I INPUT -p udp --dport 64738 -j ACCEPT

Conclusion

Votre serveur Murmur est à présent à l’écoute vous pouvez donc vous y connecter avec le client Mumble en spécifiant bien l’adrsese IP et le port que vous avez renseigné dans votre fichier de configuration.
Généralement le client est disponible dans les dépôts officiels.