ServerQuery Passwort ändern

    • Official Post

    Hallo,


    hier möchte ich euch zeigen, wie ihr das Passwort eures ServerQuerys ändern könnt.


    Inhaltsverzeichnis

    • Spezialfall "serveradmin"
    • TeamSpeak Client
    • SQL

    TeamSpeak speichert die ServerQuery Passwörter in einem bestimmtem Hash-Format in der SQL-Datenbank ab, welcher sich wie folgt ergibt:

    • Definiere das Passwort im Klartext: sehrGeheimes$Passwort2014
    • Generiere den binärischen ASN1 encoding SHA1-Hash des Klartextes: CW▒q▒▒b▒V.▒▒T▒▒▒▒▒▒p
    • Generiere den base64 Hash vom zuvor erstellten Hash: Q1fFccP0YodWLoT1VIfX9dbH5XA=

    Wichtig zu wissen bei Hashes ist, dass man sie NIE zurück "konvertieren" oder besser gesagt zurück verfolgen kann. Das ist auch der Grund, warum Passwörter gehasht und NICHT im Klartext in einer Datenbank stehen. ;)


    Gut, kommen wir zum "Wie ändere ich das ServerQuery Passwort?".

    • Spezialfall "serveradmin"
      Bei dem "serveradmin" ist das ein kleiner Spezialfall, da es hier um gravierende Sicherheiten des Servers geht. Dieses Passwort kann man beim (Neu-) Start des TeamSpeak Servers änden, indem man nach dem Parameter "start" einfach noch einen zweiten Parameter namens "serveradmin_password" dahinter setzt. Sieht dann in unserem Fall so aus:

      Code
      ./ts3server_startscript.sh start serveradmin_password='sehrGeheimes$Passwort2014'


      bzw. für Windows so:

      Code
      ts3server_win64.exe serveradmin_password=sehrGeheimes$Passwort2014


      Hinweis #1: In der Prozessliste taucht dann auch das Passwort im Klartext auf, daher sollte man den TeamSpeak Server danach nochmal unbedingt neustarten - ohne den Passwort-Parameter.
      Hinweis #2: Bei Windows dürfen KEINERLEI Gänsefüße/Anführungszeichen beim Passwort stehen, da diese sonst mit zum Passwort interpretiert werden!


      Ansonsten kann man hier das Passwort ebenso über die 3. Möglichkeit ändern: SQL :)

    • TeamSpeak Client
      Hierzu loggt man sich auf dem TeamSpeak Server ein und wählt dann in der Menüleiste "Extras" den Unterpunkt "ServerQuery Login". Hier gibt man dann den selben Benutzernamen wie man bereits hatte ein und dann erhält man ein neu generiertes Passwort. Fertig. Wer jedoch ein sicheres und eigenes Passwort haben möchte, der muss die Datenbank manuell updaten und dazu braucht man einen entsprechenden Zugriff auf die SQLite Datenbankdatei oder auf die MySQL Datenbank. Siehe auch 3. "SQL".


    • SQL
      Zunächst generieren wir uns den nötigen Hash für unser Wunschpasswort, das wir dann in die Datenbank speichern müssen - daher den Hash bitte kurz zwischenspeichern!


      Ich habe hierzu zwei Möglichkeiten gebaut, die einen Hash generieren:
      a) PHP

      PHP
      <?php echo base64_encode(sha1('sehrGeheimes$Passwort2014', true)); ?>


      b) Linux Kommandozeile

      Code
      echo -n 'sehrGeheimes$Passwort2014' | openssl dgst -binary -sha1 | openssl base64


      Beide Möglichkeiten liefern dann folgenden Hash zurück:

      Quote from Hash für das Passwort "sehrGeheimes$Passwort2014"

      Q1fFccP0YodWLoT1VIfX9dbH5XA=


      Diesen speichern wir uns dann mal kurz wo hin, damit wir ihn gleich weiter verwenden können. ;)


      Als nächstes verbinden wir uns mit der Datenbank und überschreiben unseren alten Passwort Hash mit dem neuen. Das geht bei SQLite zum Beispiel wie folgt:
      a) Datenbank öffnen:

      Code
      $ sqlite3 ts3server.sqlitedb


      b) Passwort des Benutzers / Logins "Sebbo" mit dem neuen Passwort-Hash überschreiben:

      Code
      sqlite> UPDATE clients SET client_login_password='Q1fFccP0YodWLoT1VIfX9dbH5XA=' WHERE client_login_name='Sebbo';


      Hinweis: "sqlite>" NICHT schreiben! Das ist nur der Prompt, damit ihr wisst, dass ihr in der Datenbank arbeitet.


      Gut... Um aus der SQLite Datenbank raus zu kommen, drückt ihr einfach die Tastenkombination "Strg" + "D". Fertig. Jetzt könnt ihr euch mit eurem Loginnamen "Sebbo" und dem dazugehörigen Passwort "sehrGeheimes$Passwort2014", was wir neu erstellt haben, einloggen.


      Unter MySQL sieht das ganze ähnlich aus. Das kann man via PHPmyAdmin oder über eine MySQL Kommandozeile ausführen. Der Befehl sieht jedoch gleich aus. :)

    Gut, dann sind wir auch schon fertig. So "einfach" kann man das Passwort eines ServerQuery Logins ändern. Für Fragen stehe ich gerne zur Verfügung.

    Viele Grüße,
    Sebbo

    ---

    DevOps Engineer <3