Page 1 of 1
interface
Posted: 2011-09-25 13:40
by Swordfish1986
hallo
ich habe mal wider eine kurze frage
ich möchte gerne eine art server steuer seite erstellen start stop und restart scripte habe ich schon drin die ich aber nur über putty ansteuern kann
könnte mir jemand bitte erklären wie ich einen knopf auf meiner homepage dazu bringen kann diese scripte auszuführen
vielen dank im voraus
Re: interface
Posted: 2011-09-25 17:46
by rudelgurke
Per PHP mit exec()
Eine andere Alternative, wenn es nur um start / stop / restart geht wäre vielleicht Monit - bringt genau dass mit was benötigt wird und noch etwas mehr.
Re: interface
Posted: 2011-10-15 00:17
by Swordfish1986
habs mir jetzt mal bisl angeschaut und getestst so nicht schlecht aber ich möchte etwas eigennes haben
weis jemand wie eine php oder ähnliches aussehen muss um über meine hp die start stop befehle auf dem rootserver zu steuern
Re: interface
Posted: 2011-10-15 00:34
by ddm3ve
Mmmmmh, also ganz ehrlich, wenn der code nicht 100% sauber und sicher geschrieben ist, dann nutzt ein gewiefter Angreifer gezielt Deine php Seite mit eingebundenem exec um das zu machen, was er will aber nicht du.
Ergo, lass es und nutze etwas, was sich etabliert hat.
Re: interface
Posted: 2011-10-29 21:46
by Swordfish1986
ich habe jetzt auf meinen root server 4 minecraft server laufen ich möchte aber nicht für jeden immer nur ausführen ich habe noch mein eigenes leben :D wie kann ich dafür sorgen das die ihren server selbst starten und stoppen können ohne mich zu belästigen?
habt ihr da eine idee
die großen server anbieter machendoch nix anders die startenund stoppen auchüber eine hp was ist dort anders?
Re: interface
Posted: 2011-10-30 14:10
by rudelgurke
Entweder per PHP Systemcalls zulassen - vielleicht keine gute Idee - oder als Alternative vielleicht ein schlankes Monitoring-System aufsetzen.
Monit vielleicht - 4 Instanzen die jeweils nur die Minecraft Server überwachen.
Gibt vielleicht noch andere Lösungen die in eine ähnliche Richtung gehen.
Re: interface
Posted: 2011-10-30 16:45
by ddm3ve
Kleines Interface.
Z.B. das Script darf lediglich per http Request eine Steuer / Flagdatei anlegen z.B.
/var/www/meindedomain/restart.srv1
Ein Cronjob prüft im Minutentakt ob eine entsprechende Datei existiert und startet den Server neu.
Damit lässt sich ein potentieller schaden recht schnell eingrenzen.
Übrigens machen es die meisten anderen Anwendungen so ähnlich.
Sie nutzen eine Datenbank, schreien dort die Änderungen rein und dieses wird durch einen eigenen cronjobund Scripte in die Dateien etc. übernommen.
Re: interface
Posted: 2011-11-03 04:21
by tas2580
Ich hatte das gleiche Problem auch und habe am Anfang auch mit exec von PHP aus gearbeitet. Das hat aber neben dem Sicherheitstechnischen Nachteil (PHP Safe Mode aus) auch den Nachteil das Webserver und Gameserver die gleiche Maschine sein müssen.
Also habe ich das ganze umgebaut, auf dem Gameserver läuft jetzt ein kleines Perl-Script das auf einem Port horcht, das Webinterface öffnet auf dem Port dann einen Socket und sendet seine Befehle.
Den groben Code habe ich
hier veröffentlicht. Ich habe das ganze dann noch mit Passwortabfrage erweitert und lasse nur die IP des Webservers zu damit nicht jeder der den Port kennt den Server starten oder stoppen kann.
Da sämtliche Befehle im Perl-Script hardcoded sind gibt es jetzt keine Sicherheitsprobleme mehr, selbst wenn jemand das Passwort errät bringt das nichts da er die IP des Webservers braucht um überhaupt was zu erreichen und wenn jemand den Webserver hackt kann er maximal den Gameserver starten und stoppen. Befehle ausführen wie bei der PHP exec Lösung ist so nicht möglich.
Gruß Tobi