Gameserver per Webseite verwalten

fs2004

Lt. Junior Grade
Registriert
Apr. 2004
Beiträge
263
Hallo!
Ich habe zuhause noch einen alten PC rumstehen (1,6Ghz, 256MB,40Gb,100MB-LAN). Ich wollte darauf mehrere Dedicated-Game-Server installieren (BF2, UT2004, FarCry,CSS etc). Diese sollten sich aber dan per Webseite konfigurieren (Map, Zahl, Passwort,etc), starten, stopen, und dessen status (an, aus, welche map? welche spieler?) abrufen lassen.
Dazu habe ich mir folgende "Struktur" überlegt: die einzelnen Game-Server werden installiert. Dannach ein Apache2 Server, der die Webseite verwaltet. Die Webseite müsste wahrscheinlich in PHP sein, damit sie mit den anderen servern interagieren kann.
Ist dies überhaupt so möglich?

Vielen dank

Fs2004
 
Klar ist das möglich.

Du musst dir erstmal Doku suchen, wie die Server Challanges sind, also der Status abgefragt wird, und vorallem brauchst du die Kommandozeilen für die Server für die Startscripte.

Das ganze dann in eine Form und damit hast du schonmal das Starten. Das Beenden dann mit den jeweiligen kill Kommandos deines bevorzugten OS.
 
danke schon mal! =) Es motiviert wenn es ÜBERHAUPT möglich ist!!!

Ehm, das ganze soll unter Debian Linux laufen. Wie verbinde ich BASH und die Webseite, die ja sogar noch von Nicht-Linux (aka Windows [XP]) Rechner korrekt angezeigt und benutzt werden soll?

Ich habe bewusst Den Umweg um den Browser gewählt, damit eine gewisse "Plattformunabhängigkeit" gewährt ist.
 
Eine Plattformunabhängikeit hast du auch mit HLSW. Du kannst damit die meisten Server steuern.

Wenn du das allerdings in einer Webseite steuern willst musst du wahrscheinlich mit system() Befehlen in PHP Befehle auf dem Server ausführen. Das dürfte kein Problem sein, da PHP ja eine serverseitige Sprache ist.

Viel Glück :)
 
DANKE!!! Cool. Ich schau mir mal das HLSW an.

Vielleicht köntn mir noch mit folgendem helfen: ich hab den Apache2 auf mein Debian System installiert (apt-get install apache2-common), es will jedoch nicht starten. ich habe versucht es mit /etc/init.d/apache2 start zu starten, es tut sich aber nix. mit nix, mein ich ABSOLUT nix. Keine Ausgabe. NADA...

Kann mir da jemand weiterhelfen?

Danke

Weitere Tips und Anregungen zum Thema "GameServer per Webseite verwalten" nehm ich noch gern entgegen =)

Wie funktioniert dieses "system()" muss ich einfach den Befehl, den ich ausgeführt haben will in die klammern schreiben?
 
Zuletzt bearbeitet von einem Moderator: (Doppelpost zusammengeführt, 2x Fullquote des Vorposters gekickt)
PHP:
<?php
system("mkdir $HOME/test");
?>

Achtung, der Befehl löscht deine platte :D
Befehl geändert, bevor das jemand testet ;)
 
Zuletzt bearbeitet von einem Moderator:
???

Kann ich da auch noch normale Variablen benutzen?
 
Dir ist aber schon klar, dass du mit system, exec usw. nur Kommandos ausführen kannst, sofern dein Apache-User die Berechtigung dazu besitzt?!?

Du kannst den Apache natürlich auch als root laufen lassen oder auch gleich ein Schild "kompromittierter Server" dranhängen.

Ich habe sowas auch mal versucht, jedoch weiß ich nicht, wie man es sicher und zugleich praktikabel löst.

Die einzige Möglichkeit die ich sehe ist, dass man sämtliche Gameserver als Apache-User im Verzeichnis htdocs laufen lässt - dann kann man weiterhin ein basedir in der php.ini definieren etc., um die Sicherheit des Systems nicht allzusehr zu gefährden. Allerdings hast du dann den Nachteil, dass der Apache-User wieder sehr viele Rechte hat; sprich: wird ein Gameserver oder der Webserver kompromittiert, so kann der Angreifer auch alle anderen Gameserver lahm legen.
 
Cerox, dein Gedanke ist sehr gut.
Ich kann dich aber entwarnen: der Server wird nur lokal in LANs (ich wohn in Afrika, da ist "LAN" sehr begrenzt) benutzt, wo so wie so keiner weiß, wie man mit Linux (außer mir natürlich) umgeht.

Deine Idee mit einem Apache-User, der die Server starten kann, gefällt mir aber denoch! Abgrenzen, wo es geht! Viel Dank!

Kannst du mir das mit basedir etc. etwas genauer erklären? Ich würd sagen, direkt per Forum,da das vllt andere Leute auch interessiert. Eine kleine Paint Skizze wäre auch net schlecht.

nochmals: VIELEN DANK!
 
Also das open_basedir ist eine Variable in der php.ini, welche festlegt, in welchem Rahmen PHP auf Dateien zugreifen darf.

Wenn das open_basedir z.B. /home/apache/htdocs ist, kann PHP mit Funktionen nur "ab" htdocs zugreifen und nicht auf /etc/ oder sonst was.

Warum erzähle ich das eigentlich: http://php.net -> da findest du auch die Erklärung zum safe_mode, den du auf on stellen solltest.

Eine kleine Paint Skizze wäre auch net schlecht.

Wovon?

Hier ne kleine Erklärung zum Absichern vom Apache.

edit: Noch ne Idee:

Du hast z.B. zwei User:

- www (für Apache)
- game1 (User für den ersten Gameserver

Wenn du im Webinterface z.B. auf Server stoppen gehst, schreibt der User game1 irgendwo innerhalb von htdocs eine "0" in eine Textdatei (z.B. status.txt).

Ein Shellscript könnte dann im Hintergrund laufen und die status.txt regelmäßig "kontrollieren". Falls ne 0 drin steht, könnte er dann den Gameserver stoppen.

Das könnte man mit allen Usern machen und somit hätte man seine gewohnten getrennten Rechte und man würde die Sicherheit des Systems in keiner Weise riskieren.

Nachteil:
- hoher Einrichtungsaufwand
- einige Scripte im Hintergrund aber das sollte performancemäßig kein Problem darstellen

edit 2:
Quak, mir fällt gerade ein, dass ein Shellscript als root ausreichen sollte.

Dann kannst du z.B. mit su user -c "gameserverstartscript start" einen Gameserver starten. Ich glaub, dass muss ich bei mir auch mal machen^^ (nicht für Gameserver aber für andere Daemons); du hast mich da auf eine gute Idee gebracht :)
 
Zuletzt bearbeitet:
Zurück
Oben