DEV Community

Dimitris Tzemos
Dimitris Tzemos

Posted on

Murmur Servers How to set up murmur server/mumble client

This "Mumble & Murmur" voice chat application guide shows how to setup the murmur server on Slackel, Salix so a group of users can use
mumble client to voice chat each other. Software used in this guide consists of:

  • murmur (the server application)
  • mumble (a voice chat application for groups)

== What is Mumble? ==
Mumble is a voice chat application for groups. While it can be used for any kind of activity, it is primarily intended for gaming.
It can be compared to programs like Ventrilo or TeamSpeak. People tend to simplify things, so when they talk about Mumble they either talk about "Mumble"
the client application or about "Mumble & Murmur" the whole voice chat application suite.

== What is Murmur? ==
"Murmur" is the name of the server application. In any case, if anyone talks about Murmur it is for sure the server part.

== Obtain a dyndns domain ==

  • Obtain a DNS domain and create one with a dynamic dns provider (e.g. noip.com)
  • Port forward tcp, udp port 64738 using your router interface

After that, we are ready to go on.

== Getting and Installing Murmur and Mumble ==

Install murmur and mumble with the usual commands:

   slapt-get -u
   slapt-get -i murmur
   slapt-get -i mumble
Enter fullscreen mode Exit fullscreen mode

== Set Up murmur Server ==

To make things easier for you just run the script on /usr/doc/murmur-1.2.19/config-helper.sh to create mumble-server group and mumble-server user:

   sudo sh /usr/doc/murmur-1.2.19/config-helper.sh
Enter fullscreen mode Exit fullscreen mode

The above script will also create:

  • /var/log/mumble-server
  • /var/lib/mumble-server
  • /var/run/mumble-server and chown these by mumble-server group, mumble-server user

Next open as root /etc/murmur.ini

Change the following variables
database= to database=/var/lib/mumble-server/mumble-server.sqlite
#logfile=murmur.log to logfile=/var/log/mumble-server/mumble-server.log
#pidfile= to pidfile=/var/run/mumble-server/mumble-server.pid
The above variables are set up during installation, we just mention them here for users to know about them.
#welcometext=Welcome to this server running Murmur. Enjoy your stay! to welcometext="whatever you like!"
It is important to set up this because it is the name your server will appear in public lists under your country flag
#registerPassword=secret to registerPassword=secret
#registerUrl=http://mumble.sourceforge.net/ to registerUrl="your_dns_domain" (e.g. registerUrl=http://myserver.noip.me)

  • It is important to set up this otherwise no one can finds you.
  • It is your ip. Also put this in your router to be updated each time your ip changes.

#uname= to uname=mumble-server

this variable has also set up during installation
Save the file /etc/murmur.ini
and start murmur server as root

      sudo chmod 755 /etc/rc.d/rc.murmur 
      sudo /etc/rc.d/rc.murmur  start
Enter fullscreen mode Exit fullscreen mode

Even you start murmur server as root it will switch to mumble-server user ( Look above uname=mumble-server)

After some minutes your murmur server will appear in "Public Internet" under your country flag with the name you have in registerName= variable

===Setting SuperUser Password===

Now you will need to set the SuperUser Password. The server should be running at this point.
Open a terminal and write as root

      sudo murmurd -ini /etc/murmur.ini -supw  your-password
Enter fullscreen mode Exit fullscreen mode

We will need this to set up rooms, register users, kick users etc

== Set Up mumble client ==

As user run mumble client. It is in Internet group of programs in menus.

When mumble appears click on server --> connect

A window appears. You will see your server name under LAN.

  • Right click on your server name and click "add to Favorite".
  • Under "Favorite", Right click on your server name and click on "Edit"
  • Delete the line next to "Address" and write there what there is in registerUrl "without http://" (e.g. myserver.noip.me)
  • Next to "Port" write 64738
  • Next to "Username" write whatever nick you like
  • Click on "OK"
  • Click on "Connect"
  • In the next warning message, accept the certificate. Click on "Yes"

Congratulations
You have just connected to your murmur server.

=== Connecting as SuperUser===

  • click on server -> connect
  • Under "Favorite", Right click on your server name and click on "Edit"
  • Delete the user name and write there SuperUser ( as i wrote it)
  • Write the SuperUser password
  • Click on "OK"
  • Click on "Connect"

You are SuperUser. But SuperUser has no voice. So give to your previous user all SuperUser capabilities plus voice ability.

=== Connecting as previous user ===

  • click on server -> connect
  • Under Favorite, Right click on your server name and click on "Edit"
  • Delete the Password
  • Delete the SuperUser name and write there the previous user name
  • Click on "OK"
  • Click on "Connect"

== Make Your Server Public==

===create a Certificate Authority (CA)===

You do not have to do the following anymore. Server will registered as Public using murmur certificate. You can do these if you want to use your own certificate Authority.

  • create a working directory

       mkdir CAwork
        cd CAwork
    
  • first set yourself up as a CA. a CA can sign a certificate requests to create an SSL certificate.

  • Run the command (a directory demoCA will be created under CAwork)

         /etc/ssl/misc/CA.pl -newca
    
  • hit enter to create CA certificate

  • enter the PEM pass phrase

  • renter the pass phrase

  • fill out the info asked for. Be sure to set all fields (for example )

         countryName  = GR
          stateOrProvinceName    = Some-State
          organizationName       = Internet Widgits Pty Ltd
          commonName             = ariadni.noip.me CA
          emailAddress           = webmaster@ariadni.noip.me
    
  • Make sure the commonName to be different from the commonName in the next step.

CA.pl will create a cacert.pem in the directory demoCA, the private CA key is in private/cakey.pem

===Create a Certificate Request===
next we will create a request for a server certificate.

          /etc/ssl/misc/CA.pl   -newreq-nodes
Enter fullscreen mode Exit fullscreen mode

some servers need a private certificate not protected by a pass phrase. the -nodes (note: no space between -newreq and -nodes) tells openssl to make an unpassword protected certificate.
Be sure to set the Common Name to the dns name of the server that will be using it!

Be sure to set all fields (for example )

            countryName  = GR
            stateOrProvinceName  = Some-State
            organizationName     = Internet Widgits Pty Ltd
            commonName           = ariadni.noip.me
            emailAddress         = webmaster@ariadni.noip.me
Enter fullscreen mode Exit fullscreen mode
  • Make sure the commonName to be different from the commonName in the above step. e.g I have set the names ariadni.noip.me CA and ariadni.noip.me

the request file will be created in the directory you're currently in with a name of newreq.pem and the private key is in newkey.pem

===Sign the request===

next use your CA certificate to sign the certificate request:

           /etc/ssl/misc/CA.pl   -sign
Enter fullscreen mode Exit fullscreen mode

you'll be prompted for your CA password. the info from the newreq.pem file will be displayed and you'll be asked if you want to sign it. After the certificate is signed, and you're prompted if you want to commit the certificate.

The certificate is created, signed and stored in newcert.pem, in the same directory you're currently in.

Now some more job and we are ready.
The certificate has both the encoded version and a human-readable version in the same file. You can strip off the human-readable portion as follows:

          cp demoCA/cacert.pem tmp.pem
          openssl x509 -in tmp.pem -out cert.pem
Enter fullscreen mode Exit fullscreen mode

cert.pem is our Root certificate

          mv newcert.pem tmp.pem
          openssl x509 -in tmp.pem -out newcert.pem
Enter fullscreen mode Exit fullscreen mode

newcert.pem is our signed requested file from our Certificate Authority

===Installing the Certificate and Key===
Create a file mycert.pem with contents of both Root Certificate Authority certificate (cert.pem) and signed certificate file (newcert.pem)

          cat cert.pem newcert.pem > mycert.pem
          mv newkey.pem mykey.pem
Enter fullscreen mode Exit fullscreen mode

After this step, you have two files:

  • A private key in mykey.pem
  • A combined Root Certificate Authority certificate and your signed certificate in mycert.pem

Now the file mycert.pem contains the certificate and mykey.pem contains the key.

  • copy these two files to /etc/ where murmur.ini exists (you can copy them elsewhere but you have to put the path in murmur.ini)
  • Edit /etc/murmur.ini uncomment and change the following two lines:

             sslCert=mycert.pem
             sslKey=mykey.pem
    

===Restart murmur===

             /etc/rc.d/rc.murmur restart
Enter fullscreen mode Exit fullscreen mode

Tell your friends about your murmur server and that they can found you under your country flag in Public Internet server list of mumble.
In any case, give them your dyndns.org domain name to add it to "Favorite" (see above).
And can connect and talk with you even your server do not appear in Public Internet server list of mumble.

Top comments (0)