Benutzer-Werkzeuge

Webseiten-Werkzeuge


teamspeak

Dies ist eine alte Version des Dokuments!


TeamSpeak

TeamSpeak ist eine proprietäre Sprachkonferenz-Software, die es ermöglicht, über das Internet oder ein LAN miteinander zu kommunizieren.

Mumble → Open Source & freie TeamSpeak-Alternative mit Verschlüsselung

Aktuell ist TeamSpeak 3 (Version 3.0.19.4)

TeamSpeak 3 - Client

hier die Anleitung für Ubuntu, sie sollte aber für alle Linux-Distributionen so funktionieren, da hier nichts Distributionsabhängiges gemacht wird:

Installation:

> bash TeamSpeak3-Client-linux_amd64-3.0.19.4.run

das hier ist die Startdatei:

> ls -lha TeamSpeak3-Client-linux_amd64/ts3client_runscript.sh
-rwx------ 1 fritz fritz 283 Jul 14 12:19 TeamSpeak3-Client-linux_amd64/ts3client_runscript.sh

TeamSpeak 3 - Musik-Bot

TeamSpeak 3 - Server (Raspberry Pi 4 + Linux Ubuntu 20.04 LTS)

Download der Server-Version für Linux:

root@linux:~# useradd -m -s /bin/bash ts3
root@linux:~# passwd ts3

Datei runterladen: https://files.teamspeak-services.com/releases/server/

V="$(links -dump https://files.teamspeak-services.com/releases/server/ | egrep '[^0-9]3[.]' | awk '{a=$1;gsub("[.]","");print $1,a}' | sort -nr | head -n1 | awk '{print $2}')";wget https://files.teamspeak-services.com/releases/server/${V}/teamspeak3-server_freebsd_amd64-${V}.tar.bz2
ts3@ubuntu:~$ tar xjf teamspeak3-server_linux_amd64-3.13.3.tar.bz2
ts3@ubuntu:~$ cd teamspeak3-server_linux_amd64/
ts3@ubuntu:~$ less doc/server_quickstart.md
ts3@ubuntu:~$ touch .ts3server_license_accepted
ts3@ubuntu:~$ ./ts3server_startscript.sh start
Starting the TeamSpeak 3 server
./ts3server_startscript.sh: 44: ./ts3server: Exec format error
TeamSpeak 3 server could not start

Warum? ⇒ Teamspeak3-Server installieren auf ein Raspberry Pi 4

Antwort: Der "TeamSpeak 3 - Server" wurde für "Intel-CPUs" gebaut und läuft deshalb nicht auf "ARM-CPUs".

TeamSpeak 3 - Server (FreeBSD 13.0 RC1)

[root@freebsd ~]# pw useradd -m -M 0700 -s bash -n ts3
[root@freebsd ~]# passwd ts3

ggf. ist das folgende noch zu tun...

[root@freebsd ~]# echo "tmpfs                   /dev/shm        tmpfs   rw,mode=1777    0       0" >> /etc/fstab
[root@freebsd ~]# mount /dev/shm

Datei runterladen: https://files.teamspeak-services.com/releases/server/

V="$(links -dump https://files.teamspeak-services.com/releases/server/ | egrep '[^0-9]3[.]' | awk '{a=$1;gsub("[.]","");print $1,a}' | sort -nr | head -n1 | awk '{print $2}')";wget https://files.teamspeak-services.com/releases/server/${V}/teamspeak3-server_freebsd_amd64-${V}.tar.bz2
[ts3@freebsd ~]$ tar xjf teamspeak3-server_freebsd_amd64-3.13.3.tar.bz2
[ts3@freebsd ~]$ cd teamspeak3-server_freebsd_amd64
[ts3@freebsd ~]$ less doc/server_quickstart.md
[ts3@freebsd ~]$ touch .ts3server_license_accepted
[ts3@freebsd ~]$ vi ts3server_startscript.sh
...
COMMANDLINE_PARAMETERS="createinifile=1"
...

[ts3@freebsd ~]$ ./ts3server_startscript.sh start
[ts3@freebsd ~]$ vi ts3server_startscript.sh
...
COMMANDLINE_PARAMETERS="inifile=ts3server.ini"
...

[ts3@freebsd ~]$ vi ts3server.ini
[ts3@freebsd ~]$ ./ts3server_startscript.sh restart

In der FreeBSD-Version gibt es einen Fehler (Bug). Der bewirkt, dass man hier den default_voice_port nicht ändern kann, egal was man im inifile einträgt, er startet immer mit dem default_voice_port=9987. Alle anderen Ports kann man ändern, nur diesen einen nicht.

Allerdinsgs habe ich es bis jetzt noch nicht geschafft, den TeamSpeak 3 - Server ohne root-Rechte zu starten.

Bei mir startet er nur so:

[root@freebsd ~]$ cd /home/ts3/teamspeak3-server_freebsd_amd64/
[root@freebsd ~]$ ./ts3server_startscript.sh restart

Dieses Sicherheitsproblem habe ich dadurch gelöst, dass ich meinen TeamSpeak-Server jetzt in einer Bhyve-VM mit Linux laufen lasse. Und damit meine Fritz!Box nicht immerzu mit der IP des Host- und der IP des Gast-Systems durcheinander kommt und dadurch der Zugriff auf den TeamSpeak-Server gestört ist, muß das Netzwerk für die Bhyve-VM als NIC Passthrough (eine Netzwerkkarte alleine nur für die VM) konfiguriert werden. Dann gibt es keine Sicherheitslücke und keine Probleme mehr.

TeamSpeak 3 - Server (FreeBSD 12.0)

ACHTUNG! Wenn eine neue Version veröffentlicht wurde, dann funktionieren die alten nicht mehr. Es gibt dann die Fehlermeldung "Failed loading default license file!".
Um den Fehler zu beseitigen, muss man ein Upgrade durchführen.

Um den TeamSpeak-Server mit der Version 3.12.1 starten zu können, benötigt der Kernel von FreeBSD 12.1 diese beiden Optionen:

options         INET6                   # IPv6 communications protocols
options         COMPAT_FREEBSD11        # Compatible with FreeBSD11

Ein TeamSpeak3-Server verwendet folgende Port's per Default:

  • Default port (UDP eingehend): 9987
  • Default filetransfer port (TCP eingehend): 30033
  • Default serverquery port (TCP eingehend): 10011
  • Default weblist port (UDP ausgehend): 2010
  • Default tsdns port (TCP eingehend): 41144
  • Default accounting port (TCP ausgehend): 2008

failed to register local accounting service: File exists

Leider kann man den "TeamSpeak 3 - Server" auf FreeBSD nicht in einer Jail und nicht mit einem unprivilegierten Benutzer starten. Dann erscheint diese Fehlermeldung im Log.

2021-01-05 20:52:36.738472|ERROR   |Accounting    |   |failed to register local accounting service: File exists

Ruft man dagegen das Startkommando als "root" auf, dann startet der TS3-Server.

Es hat irgendwie mit den SHM-Rechten zu tun… Mit diesem Kommando kann man sich die "POSIX shared memory segments" anzeigen lassen

> posixshmcontrol ls

meine Lösung: Ich habe mir in einer Bhyve-VM ein Linux installiert und betreibe da drin einen Linux-TS3-Server.

Download: TeamSpeak 3 - Server (FreeBSD 12.0)

diese Version ist oft aktueller als die Version aus den Ports:

Beispiel Version 3.5 (es funktionierte nicht in einer Jail):

> pkg install security/ca_root_nss
> tar xjf teamspeak3-server_freebsd_amd64-3.5.1.tar.bz2 -C /usr/local/
> cd /usr/local/teamspeak3-server_freebsd_amd64/
> less doc/server_quickstart.txt
> touch .ts3server_license_accepted
> ./ts3server_startscript.sh start
...
------------------------------------------------------------------
                      I M P O R T A N T                           
------------------------------------------------------------------
               Server Query Admin Account created                 
         loginname= "serveradmin", password= "5dES0fRS"
------------------------------------------------------------------


------------------------------------------------------------------
                      I M P O R T A N T                           
------------------------------------------------------------------
      ServerAdmin privilege key created, please use it to gain 
      serveradmin rights for your virtualserver. please
      also check the doc/privilegekey_guide.txt for details.

       token=EroSShyR4R00o961S+ucdknq0NJ6yiJ68hsWUcSc
------------------------------------------------------------------

> netstat -anp tcp
> netstat -anNp tcp
> ls -lha logs/
> less logs/ts3server_*.log

Backup: TeamSpeak 3 - Server (FreeBSD 12.0)

https://www.teamspeak-info.de/ts_server_backup_erstellen.htm

Die folgenden Dateien bzw. Verzeichnisse gehören in ein Backup rein:

  • ts3server.sqlitedb - enthält u.a. Channels, Einstellungen, User, Rechte, alle virtuellen Server
  • ts3server.ini (falls vorhanden)
  • query_ip_whitelist.txt
  • query_ip_blacklist.txt
  • files/

zum Beispiel könnte man das so machen:

> tar czf /home/TS3-Server_Backup.tgz /usr/local/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb /usr/local/teamspeak3-server_freebsd_amd64/ts3server.ini /usr/local/teamspeak3-server_freebsd_amd64/query_ip_whitelist.txt /usr/local/teamspeak3-server_freebsd_amd64/query_ip_blacklist.txt /usr/local/teamspeak3-server_freebsd_amd64/files/ /usr/local/teamspeak3-server_freebsd_amd64/.ts3server_license_accepted
/root/bin/TS3-Server_Backup.sh
#!/bin/sh
 
#
# http://wir1234.de/wiki/doku.php?id=teamspeak#downloadteamspeak_3_-_server_freebsd_120
#
 
SiK="/home" 
 
if [ -e ${SiK}/TS3-Server_Backup.tgz ] ; then
        if [ -e ${SiK}/TS3-Server_Backup_01.tgz ] ; then
                if [ -e ${SiK}/TS3-Server_Backup_02.tgz ] ; then
                        if [ -e ${SiK}/TS3-Server_Backup_03.tgz ] ; then
                                rm -f ${SiK}/TS3-Server_Backup_03.tgz
                        fi
                        mv ${SiK}/TS3-Server_Backup_02.tgz ${SiK}/TS3-Server_Backup_03.tgz
                fi
                mv ${SiK}/TS3-Server_Backup_01.tgz ${SiK}/TS3-Server_Backup_02.tgz
        fi
        mv ${SiK}/TS3-Server_Backup.tgz ${SiK}/TS3-Server_Backup_01.tgz
fi
 
tar czf ${SiK}/TS3-Server_Backup.tgz /usr/local/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb /usr/local/teamspeak3-server_freebsd_amd64/ts3server.ini /usr/local/teamspeak3-server_freebsd_amd64/query_ip_whitelist.txt /usr/local/teamspeak3-server_freebsd_amd64/query_ip_blacklist.txt /usr/local/teamspeak3-server_freebsd_amd64/files/

Fehlermeldung: Failed loading default license file!

Bei dieser Fehlermeldung hat es mir geholfen, das ich mir die neueste Version runtergeladen und installiert habe (Update von Version 3.5.1 auf 3.9.1). Und dann die folgenden Dateien und Verzeichnisse aus dem alten einfach rüber kopiert (Backup + .ts3server_license_accepted):

  • ts3server.sqlitedb - enthält u.a. Channels, Einstellungen, User, Rechte, alle virtuellen Server
  • ts3server.ini (falls vorhanden)
  • query_ip_whitelist.txt
  • query_ip_blacklist.txt
  • files/
  • .ts3server_license_accepted

WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT

Update des TeamSpeak-Servers

neueste FreeBSD-Version (64-Bit) holen: https://www.teamspeak.com/de/downloads/#server

Daten sichern:

tar czf TS3-Server_Backup_-_SiK_der_Daten.tgz /usr/local/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb /usr/local/teamspeak3-server_freebsd_amd64/ts3server.ini /usr/local/teamspeak3-server_freebsd_amd64/query_ip_whitelist.txt /usr/local/teamspeak3-server_freebsd_amd64/query_ip_blacklist.txt /usr/local/teamspeak3-server_freebsd_amd64/files/ /usr/local/teamspeak3-server_freebsd_amd64/.ts3server_license_accepted

alte Version bei Seite legen:

mv /usr/local/teamspeak3-server_freebsd_amd64 /usr/local/teamspeak3-server_freebsd_amd64_-_$(date +'%F_%H-%M-%S')

neueste Version entpacken:

tar xjf teamspeak3-server_freebsd_amd64-3.12.1.tar.bz2 -C /usr/local/

gesicherte Daten zurückspielen:

tar xzf TS3-Server_Backup_-_SiK_der_Daten.tgz -C /

und zum Schuß ggf. noch die Rechte anpassen:

chown -R teamspeak:teamspeak /usr/local/teamspeak3-server_freebsd_amd64

Admin-Rechte in der Datenbank vergeben

Quelle: Rechte in der Datenbank mit Sqlite Manager ändern

Wenn man Zugang zu den SQLite-Dateien von TeamSpeak hat, dann kann man sich Admin-Rechte verschaffen, wie im folgenden beschrieben. In diesem Beispiel wurde es auf einem FreeBSD 12 durchgeführt.

1. vom richtigen Server die ID ermitteln:

> echo -e ".header on \n SELECT * FROM servers;" | sqlite3 /usr/local/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb
server_id|server_port|server_autostart|server_machine_id|server_month_upload|server_month_download|server_total_upload|server_total_download
1|9987|1||0|120429|3543318|6131488

server_id=1

2. vom Admin die ID ermitteln:

> echo -e ".header on \n SELECT * FROM groups_server;" | sqlite3 /usr/local/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb
group_id|server_id|name|type|org_group_id
1|0|Guest Server Query|2|
2|0|Admin Server Query|2|
3|0|Server Admin|0|
4|0|Normal|0|
5|0|Guest|0|
6|1|Server Admin|1|3

group_id=6

3. vom User mit der richtigen client_unique_id bzw. dem richtigen Namen ("Fritz"):

> echo -e ".header on \n SELECT * FROM clients;" | sqlite3 /usr/local/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb
client_id|server_id|client_unique_id|client_nickname|client_login_name|client_login_password|client_lastconnected|client_totalconnections|client_month_upload|client_month_download|client_total_upload|client_total_download|client_lastip|org_client_id
1|0|serveradmin|serveradmin|serveradmin|V4ZvXlLwn3nJa2qxhjs4R77G4rs=|0|0|0|0|0|0||
2|1|eu7t26sa4sfADoiKris1u9DLI0A=|Otto|||1546627755|1|0|0|0|0|192.168.2.111|
3|1|ServerQuery|ServerQuery Guest|||1546627755|0|0|0|0|0||
4|1|zs04xrL8e853l0tk5o6nklWsUPg=|Fritz|||1569873812|318|0|40619|2761850|818703|192.168.2.169|

client_id=4

4. Zwischenstand, jetzt sollten wir folgende Daten haben:

group_id=6
server_id=1
client_id=4

5. einen Admin-Datensatz wie folgt anlegen:

group_id	= 6 (group_id)
server_id	= 1 (server_id)
id1		= 4 (client_id)
id2		= 0

> echo "INSERT INTO group_server_to_client (group_id,server_id,id1,id2) VALUES(6,1,4,0);" | sqlite3 /usr/local/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb
> echo -e ".header on \n SELECT * FROM group_server_to_client WHERE group_id=6 AND server_id=1 AND id1=4 ORDER BY group_id;" | sqlite3 /usr/local/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb
group_id|server_id|id1|id2
6|1|4|0

Jetzt hat "Fritz" Admin-Rechte.

Admin Server Query - Rechte

Wenn man über den TS3-Client Berechtigungsschlüssel erstellt, dann haben diese nur max. das Recht "Server Admin" (6), um sich aber Instanz-Rechte wieder zurück holen zu können, benötigt man Berechtigungsschlüssel mit dem Recht "Admin Server Query" (2).

echo -e ".header on \n SELECT * FROM groups_server/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb
group_id|server_id|name|type|org_group_id
1|0|Guest Server Query|2|
2|0|Admin Server Query|2|
3|0|Server Admin|0|
4|0|Normal|0|
5|0|Guest|0|
6|1|Server Admin|1|3
8|1|Neuling|1|5

Und so kann man erstellte Berechtigungsschlüssel vom Recht "6" auf das Recht "2" anheben.

hier die Schlüssel mit den Standardrechten "6":

echo -e ".header on \n SELECT * FROM tokens;" | sqlite3 /usr/local/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb
server_id|token_key|token_type|token_id1|token_id2|token_created|token_description|token_customset|token_from_client_id
1|AGRowEv4RZcs+WZb2XZG6xxiADWBXi14bmqhEhHN|0|6|0|1594161216|||4
1|BiWmEeAeYxEpYKvreWhGknxQx9OwwzvLTYvY+6hM|0|6|0|1594161226|||4
1|CWiv+NhTvfbTlfyMYRBX3RsC7s4cJLT9UdSnT1FL|0|6|0|1594161226|||4
1|DQ2Vf2yG0nRrp1RQEAkby7bz6OYJ5AFvLWCTmYhK|0|6|0|1594161227|||4
1|EXH+PWHuQmwRbCFxhLOWfD9S6ukRsVKG1ZwCifBJ|0|6|0|1594161227|||4
1|FqpJs38WTdk22gbRQgZ46olk7rGxqzqnw9Gfyh2I|0|6|0|1594161227|||4
1|Go2Wsj5KssHRWtFzgubdC7dRER0Gj5ReN7d14lXH|0|6|0|1594161229|||4

die Rechte der Schlüssel aufwerten:

echo "UPDATE tokens SET token_id1 = 2 WHERE token_id1 = 6;" | sqlite3 /usr/local/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb

jetzt haben die Schlüssel die erweiterten Rechten "2":

echo -e ".header on \n SELECT * FROM tokens;" | sqlite3 /usr/local/teamspeak3-server_freebsd_amd64/ts3server.sqlitedb
server_id|token_key|token_type|token_id1|token_id2|token_created|token_description|token_customset|token_from_client_id
1|AGRowEv4RZcs+WZb2XZG6xxiADWBXi14bmqhEhHN|0|2|0|1594161216|||4
1|BiWmEeAeYxEpYKvreWhGknxQx9OwwzvLTYvY+6hM|0|2|0|1594161226|||4
1|CWiv+NhTvfbTlfyMYRBX3RsC7s4cJLT9UdSnT1FL|0|2|0|1594161226|||4
1|DQ2Vf2yG0nRrp1RQEAkby7bz6OYJ5AFvLWCTmYhK|0|2|0|1594161227|||4
1|EXH+PWHuQmwRbCFxhLOWfD9S6ukRsVKG1ZwCifBJ|0|2|0|1594161227|||4
1|FqpJs38WTdk22gbRQgZ46olk7rGxqzqnw9Gfyh2I|0|2|0|1594161227|||4
1|Go2Wsj5KssHRWtFzgubdC7dRER0Gj5ReN7d14lXH|0|2|0|1594161229|||4
/home/http/wiki/data/attic/teamspeak.1627566926.txt · Zuletzt geändert: von manfred