TS3 PHP Framework - TSDNS

  • Hallo zusammen,


    zunächst mal: ich weiß nicht wirklich, ob ich in der richtigen Rubrik poste... irgendwie passt das Thema nirgends so richtig rein.


    Ich wollte euch mal fragen, ob sich einer mit dem TS3 PHP Framework auskennt?


    Ich vermiete Teamspeak Server und mein Webshop wurde von mir in PHP erstellt. Der Webshop erstellt nach der Bestellung für den Kunden automatisch einen TS3 Server mit allen benötigten Rechten und sendet dann eine Mail mit dem Token, damit der Kunde den TS Server nutzen kann. Das einzige, was mir jetzt noch fehlt ist das automatische Einrichten von TSDNS.


    Ich hatte mir zunächst überlegt, den Webserver selbst in die Teamspeak TSDNS Datei schreiben zu lassen, aber das birgt leider extreme Sicherheitsrisiken und ich kenne mich auch nicht gut genug mit Linux aus, um das zu realisieren. Dann habe ich mir überlegt: vielleicht kann das Framework das ja auch?


    Oder gibt es für den Server ein Addon, um die TSDNS Einträge erstellen zu lassen? Oder hat vielleicht noch jemand eine andere Idee? Ich stehe etwas auf dem Schlauch.


    Vielleicht ist ja auch ein Linux- Guru da, der Tipps hätte, wie ich mittels Apache in diese Datei schreiben und dann den TSDNS Server updaten darf, ohne dass es unsicher wird... ich bin für alle Ideen und Vorschläge offen.


    Liebe Grüße
    Joey

    • Offizieller Beitrag

    Hallo,


    also prinzipiell ist ein Framework nur ein standardisiertes Design. Funktionen wie eine Datei schreiben bietet sowas eigentlich nicht.


    Mein Lösungsvorschlag hierfür wäre, dass du die Datei mittels PHP schreibst bzw. anpasst. Neue Einträge sind ja einfach, wenn du den Rest nicht anfassen willst. Hierzu kannst du folgenden Code verwenden:

    PHP
    <?php// Öffne Datei "anhängend" (= aufgrund des "a")$datei = fopen("/home/ts3/tsdns/tsdns_settings.ini", "a");// Hänge den Text "Neue Zeile zum Anhängen" an die geöffnete Datei anfwrite($datei, "Neue Zeile zum Anhängen");// Schließe die Datei, um zu speichernfclose($datei);?>


    Weitere Infos kannst du auch der Dokumentationen entnehmen:
    fopen: http://www.php.net/manual/en/function.fopen.php :)
    fwrite: http://www.php.net/manual/en/function.fwrite.php
    fclose: http://www.php.net/manual/en/function.fclose.php


    Um den TSDNS dann zu sagen, dass es einen neuen Eintrag gibt, kannst du dann ebenfalls mittels PHP erledigen. Führe dazu einfach den Befehl "update" für den TSDNS durch:

    PHP
    <?php
    // Merke das aktuelle Verzeichnis
    $aktuelles_verzeichnis = getcwd();
    // Wechsle in das TSDNS Verzeichnis des TS Servers
    chdir('/home/ts3/tsdns/');
    // Führe den Update Befehl durch
    shell_exec('./tsdnsserver_linux_amd64 --update');
    // Wechsle wieder zurück ins alte Verzeichnis
    chdir($aktuelles_verzeichnis);
    ?>


    Wichtig hierbei ist, dass du wirklich in dem Verzeichnis "tsdns" drin bist, sonst findet die Binär-Datei deine Konfigurationsdatei nicht. Die sucht nämlich im aktuellen Verzeichnis, wo du drin bist. ;)


    Weitere Infos zu shell_exec: http://www.php.net/manual/en/function.shell-exec.php
    Weitere Infos zu chdir: http://www.php.net/manual/en/function.chdir.php

  • Hm, also wie man mit PHP in eine Datei schreibt weiß ich, das ist nicht das Problem. Das Problem ist eher, dass der Apache natürlich nicht in das Teamspeak Verzeichnis wechseln darf und auch keinerlei Schreibrechte auf die Datei hat, da sie dem User Teamspeak gehört und in dessen Home- Verzeichnis liegt.


    Meiner Meinung nach sollte der Apache auch keine Rechte auf dieses Verzeichnis bzw. die Datei bekommen (Sicherheitsaspekt). Da man aber über das Framework eben doch auf den TS Server zugreifen kann und damit ja auch neue Server usw. anlegen kann, war halt meine Idee, darüber auch den TSDNS anlegen zu lassen. Irgendwie muss es ja funktionieren, dass der Apache über das Framework den TS Server so steuert, dass er in seinem Verzeichnis und auf seiner Datenbank tun und lassen kann, was er will.


    Leider kenne ich mich dafür nicht genug mit dem Framework aus und ich weiß auch nicht, ob theoretisch ein TS Server seinen TSDNS Eintrag selbst anlegen könnte (z.B. übder den Client oder sowas).

  • Hallo,


    Ich würde das mit Cronjobs realisieren.


    Eine Datenbank erstellen und dort die TSDNS Adressen hineinschreiben.


    Dann ein Script schreiben das mit Cronjobs jede minute ausgeführt wird und wieder eine TSDNS.ini schreibt. Das würde nicht so ein großes Sicherheitsrisiko darstellen und man könnte alles schön strukturiert darstellen.


    Den Conjob natürlich als dem User des Teamspeak3-Servers ausführen.


    Über das Framework wird das schlecht realisierbar sein, da dieses nur mit Socketverbindungen die ServerQuery ansteuert, und der TSDNS ein eigenes Programm ist.


    Grüße,


    Manu

    Gute vServer, Root Server oder Dedicated Server gesucht?


    Die findest du hier:
    (5% Rabatt mit dem Rabattcode "TSConnNewcomer" bei Erstbestellung)


    Noon-Server.de



    logo_big.png

  • Dieses Thema enthält 8 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.