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