Gehaxelts Blog

IT-Security & Hacking

Raspberry Pi: Mumble Server mit umurmur

Eine meiner Follower hatte sich einen Blogpost über einen Mumbleserver auf dem Raspberry Pi gewünscht.

Da murmur nicht wirklich OpenSource ist, oder ich einfach den Source nicht gefunden habe, nutze ich umurmur, was ähnlich und extra für “kleine” Server, wie Router, gedacht ist.

Voraussetzungen:

Ordner

Wir legen für diesen Streich einen Ordner im Homeverzeichnis an:

mkdir ~/urmumur

Paketmanager

Folgende Pakete können über den Paketmanager installiert werden:

sudo apt-get install openssl libtool autoconf

Libconfig

Diese Library benötigt umurmur, sodass wir die uns selbst kompillieren müssen.

Dazu laden wir zunächst das Archiv herunter, entpacken es und wechseln dorthinein.

1
2
3
4
cd ~/umurmur
wget "http://www.hyperrealm.com/libconfig/libconfig-1.4.9.tar.gz"
tar xfv libconfig-1.4.9.tar.gz
cd libconfig-1.4.9

Danach können wir die Bibliothek kompillieren:

1
2
3
./configure
make
sudo make install

Libprotoc-c

Das Prozedere wiederholt sich eigentlich. Wir laden das Archiv herunter, entpacken es und kompillieren den Inhalt:

1
2
3
4
5
6
7
cd ~/umurmur
wget "http://protobuf-c.googlecode.com/files/protobuf-c-0.15.tar.gz"
tar xfv protobuf-c-0.15.tar.gz
cd protobuf-c-0.15
./configure --disable-protoc
make
sudo make install

Polarssl

In der Beschreibung steht zwar, dass man entweder openssl oder polarssl installiert haben muss, aber ohne polarssl wollte umurmur nicht, deswegen schieben wir auch das nach.

1
2
3
4
5
cd ~/umurmur
wget "https://polarssl.org/download/latest-stable"
tar xfv lastet-stable
cd polarssl
./configure

Das maken dauert bei polarssl ~65 Minuten.

make

Wenn man dann Kaffe getrunken hat, und der Prozess abgeschlossen ist, dann kann man mit dem wesentlichen weitermachen.

umurmur

Nun machen wir uns an die Kompillierung von umurmur:

1
2
3
4
5
6
7
8
cd ~/umurmur
git clone https://github.com/fatbob313/umurmur.git
cd umurmur
./autogen.sh
./configure
make
sudo make install
cd ~/umurmur

Fehlerbehebung

Nun kann man bereits versuche umurmur zu starten, bzw. erstmal die Hilfe auszugeben.

Sollten dann Fehler erscheinen, dass librarys nicht gefunden werden konnten, dann kann man das mit folgenden zwei Zeilen fixen:

1
2
sudo cp /usr/local/lib/libconfig.so.9 /usr/lib/
sudo cp /usr/local/lib/libprotobuf-c.so.0 /usr/lib

Konfiguration

Im Ordner ~/umurmur/umurmur liegt eine Beispielkonfiguration namens “umurmur.conf.example”.

Ich habe mir die Konfiguration nicht weiter angeschaut, sondern diese nur “lauffähig” gemacht.

Man muss die beiden Zeilen zu den Zertifikaten auskommentieren, den Port in Anführungszeichen setzen, sowie die IP anpassen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
max_bandwidth = 48000;
welcometext = "Welcome to uMurmur!";
password = "";
max_users = 10;
bindport = "64738";
bindaddr = "192.168.2.93";
logfile = "/var/log/umurmurd.log";
channels = ( {
   name = "Root";
   parent = "";
   description = "Root channel. No entry.";
   noenter = true;
   },
   {
   name = "Lobby";
   parent = "Root";
   description = "Lobby channel";
   },
   {
   name = "Red team";
   parent = "Lobby";
   description = "The Red team channel";
     # password = "redpw";
   },
   {
   name = "Blue team";
   parent = "Lobby";
   description = "The Blue team channel";
     # password = "bluepw";
   }
);
# Channel links configuration.
channel_links = ( {
   source = "Lobby";
   destination = "Red team";
   },
   {
   source = "Lobby";
   destination = "Blue team";
   }
);
default_channel = "Lobby";

Diese Konfiguration speichert ihr dann als “umurmur.conf” ab.

umurmur starten

Zu Debugzwecken biete es sich an, den umurmur im Vordergrund zu starten:

umurmurd -d -c ~/urmurmur/umurmur/umurmur.conf

Falls man sich dann mit einem Mumble-Clienten verbinden kann, und alles ohne weitere Probleme läuft, dann kann man den Daemon in den Hintergrund schieben:

urmurmurd -c ~/urmurmur/umurmur/umurmur.conf

Fazit

Nun läuft ein kleiner Mumble-Server auf eurem Raspberry Pi.

Gruß

gehaxelt