ubuntuusers.de

Shellscript per Html website starten

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

Humbi

Anmeldungsdatum:
14. Juni 2014

Beiträge: 74

Hey inception76

vielleicht solltest du den Server lieber weiterhin über SSH bedienen. Es gibt übrigends auch Apps mit denen du dich mittels SSH einloggen kannst von unterwegs.

Es gibt Mittel und Wege Scripte auf dem Server auszuführen, aber dazu MUSS man sich damit beschäftigen.

inception76 schrieb:

... leider echt kein Plan und will jetzt nicht stunden lang neue dinge lernen da ich dafür leider keine Zeit habe. Das Interesse besteht nur fehlt mir die zeit.

Ich hab dir eine PN geschrieben am Anfang mit einem Beispiel. Keine Reaktion. Leute posten dir eine ganze Lösung wie man es machen kann. Aber scheinbar beschäftigst du dich 0 damit.

inception76 schrieb:

Die Seite wird ja passwortgeschützt sein und das Verzeichnis würde man nicht aufrufen können.

Ein Verzeichnis das man nicht aufrufen kann kannst auch du nicht aufrufen.

inception76 schrieb:

Wäre es auch möglich das sich nicht das php script im browser öffnet sondern das ich einfach auf den button clicke und es ausgeführt wird.

Das tut es in dem Beispiel von halloICKEbins bereits. Und PHP öffnet sich nicht im Browser. Hypertext Preprocessor wird auf dem Server ausgeführt. Was du zu sehen bekommst ist lediglich HTML.

Bitte investiere ein paar Stunden und informiere dich wenigstens über die hier notwendigen Programme und Befehle.

Eine andere Möglichkeit die mir spontan einfällt wäre ein Cronjob der alle 5 min eine Datei abfragt. Beinhaltet die Datei den String xy wird der Gameserver neu gestartet. Dadurch benötigt der User www-data keine Rootrechte. Über eine Passwortabfrage und ein zusätzliches Codewort das sich jeden Monat ändert könnte man sicherstellen, dass wirklich nur du den Server von aussen bedienen kannst.

Gruß Humbi

inception76

(Themenstarter)

Anmeldungsdatum:
16. März 2017

Beiträge: 16

Humbi schrieb:

vielleicht solltest du den Server lieber weiterhin über SSH bedienen. Es gibt übrigends auch Apps mit denen du dich mittels SSH einloggen kannst von unterwegs.

Diese Apps besitzte ich nur Hoste ich für einen Kumpel einen Gamserver wo ich ihm gerne die Möglichkeit geben würde den selber zu Verwalten.

Humbi schrieb:

Ich hab dir eine PN geschrieben am Anfang mit einem Beispiel. Keine Reaktion. Leute posten dir eine ganze Lösung wie man es machen kann. Aber scheinbar beschäftigst du dich 0 damit.

Die PN habe ich gelesen war nur zu dem Zeitpunkt unterwegs und dadurch ist das leider in vergessenheit geraten. Die Lösungsvorschläge habe ich ja ausprobiert welche auch funktioniert haben. Mehr oder weniger da ich noch paar Probleme mit den Berechtigungen habe.

Humbi schrieb:

Ein Verzeichnis das man nicht aufrufen kann kannst auch du nicht aufrufen.

Damit meinte ich das ich das Verzeichnis per .htaccess für unberechtigte unzugänglich mache.

Humbi schrieb:

Das tut es in dem Beispiel von halloICKEbins bereits. Und PHP öffnet sich nicht im Browser. Hypertext Preprocessor wird auf dem Server ausgeführt. Was du zu sehen bekommst ist lediglich HTML.

Damit meinte ich das sich ein neues fenster öffnet wodurch das script dann wohl ausgeführt wird. Was ich aber will ist das ich auf den button clicke und sich das script ausführt.

Mfg, Daniel

Developer92 Team-Icon

Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

inception76 schrieb:

Diese Apps besitzte ich nur Hoste ich für einen Kumpel einen Gamserver wo ich ihm gerne die Möglichkeit geben würde den selber zu Verwalten.

Dann nutzt man entsprechende Software und bastelt nicht irgendetwas zusammen bei dem man dem Webserver Rootrechte geben muss…

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7782

inception76 schrieb:

ich möchte ein startscript über meine html Seite starten wie soll ich das ganze machen?

Anders. Entkoppelt. PHP (kurzlebige Requests) und Gameserver (langlebiger Dienst) und das ganze am besten noch mit ganz verschiedenen Usern und Rechten, das passt einfach nicht zusammen. Und was nicht zusammen passt, wird voneinander entkoppelt. Du willst da sowieso gar nichts ausführen, sondern höchstens einen Event auslösen.

Du könntest z.B. im PHP entweder eine start- oder eine stop-Datei anlegen. Und per Cron (des Gameserver-Users) diese Datei dann abholen und damit die eigentliche Aktion lostreten.

*/5 * * * * rm /var/www/html/start-server && start-server.sh
*/5 * * * * rm /var/www/html/stop-server  && stop-server.sh

Das ist natürlich super primitiv und da gibts viel bessere Möglichkeiten. FIFO zum Beispiel. Aber das ist dann wieder direkt und du musst dir Gedanken machen, was passiert, wenn jemand auf den Button hämmert wie ein Diablospieler.

Wenns kein Webserver sein muss, SSH-Keys mit forced command sind auch eine schöne Möglichkeit, um Events loszutreten. Löst dann auch gleich das Problem, wer das überhaupt machen darf.

Aber auch hier, das sind kurzlebige Requests, es sei denn du sorgst in deinem Startscript dafür, daß sich das irgendwie ausklinkt oder dein Server macht das zufällig sowieso.

Humbi schrieb:

Eine andere Möglichkeit die mir spontan einfällt wäre ein Cronjob der alle 5 min eine Datei abfragt.

Ai, das hat ja doch schon jemand geschrieben. Ich hab nur das PHP sudo gesehen. Mea culpa. 😉

Humbi

Anmeldungsdatum:
14. Juni 2014

Beiträge: 74

Um mal auf der sicheren Seite zu bleiben. Für deine Zwecke reicht doch SSH. Erstelle für deinen Freund einen neuen User auf dem Server, richte ihm SSH ein und beschränke dann seine Rechte auf das nötigste.

frostschutz hat mich neugierig gemacht, weil ich forced commands noch nicht kannte.

Aber hier findest eine gute Anleitung wie du dem neuen User nur noch das Ausführen des Scriptes erlaubst.

https://www.thomas-krenn.com/de/wiki/Ausf%C3%BChrbare_SSH-Kommandos_per_authorized_keys_einschr%C3%A4nken

Wenn du also command="/home/neuerUser/restartscript.sh" einträgst. Sollte selbst ein "nano script" nur das Script selbst auslösen.

Damit kann dein Kumpel kein Blödsinn treiben und dein Server bleibt sicher.

Gruß Humbi

halloICKEbins

Avatar von halloICKEbins

Anmeldungsdatum:
12. September 2017

Beiträge: 226

Developer92 schrieb:

Tut mir leid, aber das ist sicherheitstechnisch wohl das schlimmste was man machen kann. Nicht nur, dass du damit das Skript als root ausführen kannst, nein, jeder der Zugriff auf deinen Webserver erlangt, hat damit Rootrechte. Genau das will man durch das Rechtemanagement verhindern.

Nur um das nochmal zusammenzufassen: Der einzige Teil deines Servers, der direkt mit Unbekannten kommuniziert, kann dadurch Rootrechte erlangen. Nicht einmal per SSH würde ich meinem User so Rootrechte erlangen lassen.

Ich bin mir im absolut im Klaren, dass meine Lösung nicht die Musterlösung sein kann!!!

Mich würde aus eigenem Interesse interessieren, welche Möglichkeiten ein Angreifer in dem Konstrukt hat, da das Script und damit ja auch der Inhalt fest definiert.

LG

Developer92 Team-Icon

Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

halloICKEbins schrieb:

Ich bin mir im absolut im Klaren, dass meine Lösung nicht die Musterlösung sein kann!!!

Es geht nicht darum, dass du eine Musterlösung bastelst, sondern darum, dass die vorgeschlagene Lösung aus sicherheitstechnischer Sicht absoluter Mist ist. Daran ändern auch deine drei Ausrufezeichen nichts.

Mich würde aus eigenem Interesse interessieren, welche Möglichkeiten ein Angreifer in dem Konstrukt hat, da das Script und damit ja auch der Inhalt fest definiert.

Es geht nicht um das Skript. Du gibst dem Webserver, und alles was dieser ausführt, Rootrechte. Ein kleiner Exploit einer beliebigen Komponente reicht und du kannst deinen Server neu aufsetzen. In dem Moment, in dem du diese Lösung umsetzt, würde ich den Server als kompromittiert betrachten. Es gibt weit bessere Lösungen als dem Webserver Rootrechte zu geben. Abgesehen davon könntest du den Gameserver ja auch mit dem User und der Gruppe www-data betreiben, ist ja nicht so als müsste man unbedingt Rootrechte dafür haben…

Antworten |