====== Wie zu: Kostenlosen Teamspeak-Server aufsetzen ======
Ich habe schon seit längerem einen Account bei Oracle. die (vermutlich, um ihre Cloud zu bewerben) kostenlose Server anbieten. Näheres zu den Angeboten findet [[https://www.oracle.com/cloud/free/|Ihr hier]].
Konkret interessierten mich hier die "AMD Compute VMs", die als "always free" beworben werden:
{{ :blog:tsserver:ksnip_20221019-122719.png?nolink&400 |}}
Da ich mir über einen längeren Zeitraum ziemlich einen abgebrochen habe, bis ich auf einem der Server mal etwas zum Laufen bekommen habe, auf das ich auch von außen zugreifen konnte, dachte ich, ich mache mal ein wie-zu, in dem ich alle Schritte zeige, die (reproduzierbar ((zumindest einmal & für mich))) zu einem eigenen [[https://teamspeak.com/de/|Teamspeak-Server]] für Lau führen.
===== Instanz aufsetzen =====
Also, auf zu [[https://signup.cloud.oracle.com/|Oracle]]! Ich werde den Registrierungsprozess hier nicht beschreiben, ich denke, das bekommt man auch so hin.
Nach der (hoffentlich erfolgreichen) Registrierung legt man nun den Server an: Nachdem man ein "Compartment" angelegt hat, legt man unter "Instances" eine neue Instanz an.
{{ :blog:tsserver:instanz.png?400 |}}
Man gibt der Instanz einen Namen (oder lässt den Vorschlag stehen, ist halt nicht so schön), dann ändert man unter "Image and Shape" das Image auf "Canonical Ubuntu" (hier 22.04.) und wählt als Shape unter "Specialty and previous generation" die einzige Möglichkeit "VM Standard" aus.
Das macht man deshalb, weil die anderen kostenlosen Varianten Arm-Prozessoren haben und das hinterher zu allen möglichen Problemen führen kann, wenn man - wie ich - keine Ahnung hat, was man da tut.
Zur Authentifizierung wählt man SSH-Keys. Hier kann entweder ein vorhandenes pub-File hochladen oder ein neues generieren lassen. Im Zweifel das Pair nehmen, welches Oracle generiert hat und sicherheitshalber beide Dateien (key.pub und .key) speichern.
Den Rest der Einstellungen kann man so lassen, wie sie sind. Alles bestätigen und dann dauert es etwas, bis die Instanz deployed und gestartet ist.
Nun sollte das etwa so aussehen:
{{ :blog:tsserver:instanz_ov.png?direct&400 |}}
Wichtig sind hier die IP-Adresse und der Username, die braucht man im übernächsten Schritt.
===== Ingress-Rules =====
Zuerst muss man aber noch die Ingress-Regeln anpassen. Dazu klickt man auf den Link zum Subnet (im Screenshot oben hervorgehoben), dann auf die dazugehörende Security-Liste:
{{ :blog:tsserver:subnetz2security.png?400 |}}
In dieser Security-Liste müssen jetzt die Port-Weiterleitungen für TeamSpeak eingerichtet werden. Oben links auf "Add Ingress Rules" klicken und dann Regeln für die Ports 9987, 30033, 10011, 10080, 10443 und 41144 anlegen.
Hier mal eine Beispielregel für den Voice-Port:
{{ :blog:ingress1.png?direct&400 |}}
Die gelb hervorgehobenen Felder müssen ausgefüllt sein. Die weiteren Regeln unterscheiden sich nur im IP-Protokoll (udp oder tcp) und dem Port. Die Beschreibung ist optional. Eine Liste aller benötigten Ports findet man [[https://support.teamspeak.com/hc/en-us/articles/360002712257-Which-ports-does-the-TeamSpeak-3-server-use-|bei Teamspeak.]]
Am Ende sollte man dann so eine Liste haben((die ersten drei Punkte haben nichts mit TS zu tun, aber man braucht auf jeden Fall Port 22/tcp für SSH!)):
{{ :blog:tsserver:liste_ingres.png?400 |}}
Dann ist man im Interface von Oracle erst mal fertig und es geht im Terminal weiter.
===== Server installieren =====
Um die Verbindung aufzubauen, macht man im Terminal eine ssh-Session auf.
Format ist **ssh -i keyfile user@ip-adresse**
Passend zum obigen Screenshot wäre das dann((der Dateiname ist natürlich immer ein anderer!)):
ssh -i ssh-key-2022-10-17.key ubuntu@1144.24.186.174
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Dann erst mal das System updaten, ist ja schließlich schon ein oder zwei Minuten her, dass man es installiert hat:
sudo apt update
sudo apt upgrade
Jetzt muss noch ein Programm namens bzip2 installiert werden, sonst schlägt nachher das Entpacken von TeamSpeak fehl:
sudo apt install bzip2
Jetzt kommt der Teil, der mir die meisten Probleme bereitet hat: Die Firewall bzw. die nötigen Ports zu öffnen. Neben den Ingress-Rules oben hat folgendes schließlich zumn Erfolg geführt:
# Firewall abschalten
sudo ufw disable
# Die alte IP-Tabelle ins Klo spülen:
sudo iptables --flush
# Die nötigen Ports wieder aufmachen:
# Zuerst ssh, sonst ist nach dem Einschalten der Firewall das Terminal
# hinüber und man kann eine neue Instanz erstellen:
sudo ufw allow 22/tcp
# Dann die Ports für Teamspeak:
sudo ufw allow 3033/tcp
sudo ufw allow 9987/udp
sudo ufw allow 1011/tcp
sudo ufw enable
//Anmerkung: Hier fehlen noch ein paar Ports [[https://support.teamspeak.com/hc/en-us/articles/360002712257-Which-ports-does-the-TeamSpeak-3-server-use-|(siehe Liste)]], aber die habe ich bis jetzt nicht gebraucht...//
**Wenn das Terminal jetzt noch reagiert, ist schon einiges geschafft!**
Nun braucht man einen User für Teamspeak, damit das nicht unnötig als Root läuft:
sudo adduser --disabled-login teamspeak
#(da kann alles leer bleiben, am Ende nur Yes wählen)
Entfernen des ohnehin nicht vorhandenen Passworts:
sudo passwd -d teamspeak
Bis ich diese Zeile heraus hatte, war wieder einige Zeit ins Land gegangen. Toll, wie viel Zeit einen //kein// Passwort kosten kann..
Jetzt den User wechseln und in sein Home-Verzeichnis wechseln:
su teamspeak
cd ~
Den Server runterladen:
wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
Achtung: Hier kann es eine neue Version geben, einfach mal bei Teamspeak schauen, was aktuell ist!
Den ganzen Bumms entpacken:
tar xvjf teamspeak3-server_linux_amd64-3.13.7.tar.bz2
# Damit das nicht fehlschägt, haben wir vorhin bzip2 installiert.
Jetzt kommt ein bisschen Hausmeisterei, das geht sicher auch eleganter. Wer es kann, darf gerne seine eigenen Befehle anwenden:
cd teamspeak3-server_linux_amd64
cp * -R /home/teamspeak
cd ..
rm -r teamspeak3-server_linux_amd64
rm teamspeak3-server_linux_amd64-3.13.7.tar.bz2
Damit der Server nachher startet, muss man ihm zeigen, dass man die Lizenz akzeptiert. Dazu legt man eine entsprechende (leere) Datei an:
touch .ts3server_license_accepted
Jetzt kann der Server gestartet werden:
./ts3server_startscript.sh start
Wenn der Server gestartet ist, bekommt man ein paar Infos eingeblendet, die man unbedingt kopieren und irgendwo sichern muss:
------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
Server Query Admin Account created
loginname= "serveradmin", password= "123jn1234jkn"
apikey= "NhasqlösjkNlöäasdküiopj18389"
------------------------------------------------------------------
------------------------------------------------------------------
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=NRWnj2bxaödkljsfLJKNlQTIwokjkpuhWIxRu1j
------------------------------------------------------------------
Nun den User Teamspeak verlassen:
exit
Damit TS als Service gestartet wird, braucht es noch eine Datei, die legt man mit nano an:
sudo nano /lib/systemd/system/teamspeak.service
In diese Datei kommt dann folgender Inhalt:
[Unit]
Description=Teamspeak Server Service
Wants=network.target
[Service]
WorkingDirectory=/home/teamspeak
User=teamspeak
ExecStart=/home/teamspeak/ts3server_minimal_runscript.sh
ExecStop=/home/teamspeak/ts3server_startscript.sh stop
ExecReload=/home/teamspeak/ts3server_startscript.sh restart
Restart=always
RestartSec=15
[Install]
WantedBy=multi-user.target
Speichern mit STRG+o, verlassen mit STRG+x. Als nächstes den Service "enablen", wir wir Franzosen sagen:
sudo systemctl enable teamspeak.service
It's done Jim, it's done!
===== Teamspeak Client =====
Jetzt kann man den Teamspeak-Client seiner Wahl anwerfen und sich zum Server verbinden. Wenn man sich das erste Mal zu seinem neuen Server verbindet. wird man darauf hingewiesen, dass der Server-Admin noch nicht "beansprucht" wurde. Um das zu tun, gibt man in das Feld "priviledged key" den Token aus der Meldung nach der Installation des Servers ein (den man sich hoffentlich irgendwohin gespeichert hat...)
Das sollte es nun gewesen sein, ich habe bis jetzt auf diesem Server nur zu zweit gesprochen, aber das hat wirklich gut und in einer super Tonqualität funktioniert. Wichtig war mir auch, eine Alternative zu diesem absolut räudigen Discord zu haben, was nicht nur aus Datenschutzgründen der totale Horror ist, sondern auch noch einen wirklich ranzigen Linux-Client hat, der mir jedes mal die Zornesadern anschwellen ließ, wenn ich gezwungen war, ihn zu benutzen.
Ich hoffe, ich kann mit dieser Anleitung dem einen oder anderen etwas helfen. Enjoy!
==== Quellen ====
Hier ein paar Links zu quellen, aus denen ich die obigen Informationen zusammengesucht habe:
[[https://docs.oracle.com/en-us/iaas/developer-tutorials/tutorials/apache-on-ubuntu/01oci-ubuntu-apache-summary.htm|oraclecom - Free Tier: Install Apache and PHP on an Ubuntu Instance]]
[[https://bitlaunch.io/blog/how-to-set-up-a-teamspeak-linux-server/|bitlaunch.io: How to set up a Teamspeak Linux Server]]
[[https://support.teamspeak.com/hc/en-us/articles/360002712257-Which-ports-does-the-TeamSpeak-3-server-use-|Liste der Ports bei Teamspeak]]
[[https://teamspeak.wiki/index.php/Installing_TeamSpeak_3_Server_on_Linux|teamspeak.wiki: Installing TeamSpeak 3 Server on Linux]]
[[https://stackoverflow.com/questions/54794217/opening-port-80-on-oracle-cloud-infrastructure-compute-node|stack overflow - "Opening port 80 on Oracle Cloud Infrastructure Compute node"]]
[[https://unix.stackexchange.com/questions/56765/creating-a-user-without-a-password|stackexchange: Creating a user without a password]]
[[https://medium.com/iaastha/open-ingress-port-in-oracle-cloud-instances-383f346c4add|medium.com - Open Ingress Ports in Oracle Cloud Instances]]
[[https://www.bennetrichter.de/en/tutorials/teamspeak3-server-linux/|Bennet Richter: How to Install a TeamSpeak 3 Server on Linux]]
Screenshots habe ich mit [[https://github.com/ksnip/ksnip|ksnip]] gemacht.
Stand aller Links und Infos: Oktober 2022
{{tag>oracle teamspeak wie_zu linux discord_riecht_nach_lulu}}
~~DISCUSSION~~