TeamSpeak3-Server sicher aufsetzen

Artimis

Registered User
Hallo @ *.

Ich habe lange den Verlauf der Beta-Phase abgewartet und mich das eine und andere Mal gefreut, dass ich nicht so fahrlässig war, junge Beta-Software zu nutzen. Doch wie man es von TeamSpeak kennt, kann es gut sein, dass es keine Stable-Version geben wird und inzwischen soll die Software auch sicher und stabil laufen, sodass ich dann doch einen eigenen TS3-Server aufgesetzt habe.

Allerdings traue ich dem Frieden immer noch nicht, weshalb ich folgende Maßnahmen durchgeführt habe:

  • Der TeamSpeak3-Server läuft selbstverständlich unter eingeschränkten Rechten.
  • Der FileTransfer-Port (30033) lauscht ausschließlich auf localhost (127.0.0.1).
  • Der Server startet in eine minimalen chroot-Umgebung mit der geballten Power der Bins cat, rm, sleep, su (nur für root:root ausführbar), dirname und bash/sh mit seinen eigenen Befehlen wie cd, exit..., mehr nicht.
Nun wollte ich einmal fragen, was ihr sonst so an Maßnahmen bezügich der Sicherheit eingeleitet habt, um einer in der Vegangenheit oft genug vorgefallene Komprimittierung vorzubeugen.

Ich bin auf eure Antworten gespannt!
Liebe Grüße
 
Last edited by a moderator:
Hallo Xionix!
Danke für deine Antwort

Der Grund ist simpel: Weil der Server ohne diese Binaries nicht funktioniert.

Die von mir zur Verfügung gestellten Binaries sind exakt diese, die der Server für den reibungslosen Betrieb benötigt plus bash für das Startscript und su für den Benutzerwechsel von root zum Starten der chroot-Umgebung zu ts3, dem Benutzer für den TeamSpeak-Server.

Ich gehe aber davon aus, dass eventuelle Einbrecher mit den wenig mächtigen Binaries nicht viel anfangen können. Sie können nicht einmal Verzeihnisse auflisten, geschweige denn irgendwelche Scripts herunterladen oder selbst erstellen.

Ich wüsste nicht, wie man das weiter stutzen könnte.
Deshalb frage ich ja, ob wem noch etwas einfällt, was manbesser, anders oder zusätzlich machen kann.
 
[OT]Wenn ich das Lese geht mir das Herz auf.
Wenn nur alle so auf Sicherheit achten würden.[OT]




Mfg
Impact
 
Der Grund ist simpel: Weil der Server ohne diese Binaries nicht funktioniert.

Also bei mir geht das auch ohne irgendwelchen anderen ausführbaren Dateien mittels start-stop-daemon, da ich das mitgelieferte Startskript nicht benutze.

Auszug aus meinem init.d Script
Code:
/sbin/start-stop-daemon --chroot /home/ts3/ --start --exec "./ts3server_linux_x86" --pidfile "/var/run/ts3.pid" --make-pidfile --chdir "$TS3_DIR" --chuid "$TS3_UID:$TS3_GID" --background -- inifile=ts3server.ini
 
Ja, du hast recht. Ich hätte auch präzisieren sollen: Die Binaries werden vom Startscript benutzt.

Ich werde mir deine Lösung in jedem Falle einmal ansehen und schauen, ob ich dadurch auf die Bins verzichten werde. Ich dachte schon, jetzt kommt etwas, wo man auf das Stratscript verzichtet und alles händisch machen soll z.B. mit killall und Co.
Aber deine Lösung sieht ziemlich gut aus! Der Start-Stop-Daemon scheint auch mit dem chroot sehr viel komfortabler umzugehen.
 
Mir ist noch etwas nettes eingefallen:
Wer, anders als ich, nicht auf einem linux-vserver ohne iptables sitzt, kann mit einem Match-Modul nur der Prozess-ID vom TeamSpeak3-Server Traffic erlauben, allen anderen nicht.
Dies müsste durch ein simples
Code:
iptables -A OUTPUT -m owner --sid-owner $TSPID -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner $TSUID -j DROP
im Start- und Restart-Block und jeweils einem "-D" im Stop- und Restart-Block zu bewerkstelligen sein.
Dies verhindert, dass der unter dem eventuell gekapertem TS3-Benutzer Netzwerkverkehr nach außen stattfindet (z.B. Angriffe).
 
Back
Top