Cronjobs für Kunden erlauben?

casper99

New Member
Hi Leute,

ich biete für meine Kunden Webhosting auf Debian an.
Normalerweise beinhaltet dies nur das Ausliefern statischer Webseiten sowie php-Skripts über den Webbrowser, die dann als php-fastCGI ausgeführt werden.

PHP nutzt für jeden Kunden eine eigene php.ini mit "open_basedir" Beschränkung zumindest bei Aufruf über den Aapche.

Nun wollen einige Kunden regelmäßige Cronjobs laufen lassen.


Meine Frage:
Es gibt ja zahlreiche Dateien allein bei einer Debian Standardinstallation, die jeder lesen dürfte. Das will ich auch verhindern.

Wie kann ich am sichersten Cronjobs anbieten, diese aber so sicher wie möglich einschränken, sodass nur unterhalb des Kundenauftrittes Dateien ausgeführt werden können, und auch diese nicht außerhalb zugreifen können?. Am schönsten als CHROOT-Umgebung.

Oder wie macht Ihr das besonders sicher?
 
99.9% der Cronjobs muessen gar nicht als CLI aufgerufen werden sondern koennen auch als Webseite. Wenn du per .htaccess die Zugriffserlaubnis auf localhost begrenzt und zB (ebenfalls per .htaccess) auch ein Passwort als GET-Parameter implementierst hast du die gewuenschte Funktionalitaet ueber ein simples wget-Cronjob implementiert.

Alternativ kannst du auch PHP Openbasedir auf der CLI verwenden, die Kuenden duerfen dann nur noch Skript und dessen Argumente aber nicht die Binary angeben.
 
d4f, stehe ich auf dem Schlauch? Mir wäre neu, dass sich cron von irgendeinem .htaccess-Gefrickel oder PHPs open_basedir beeindrucken lässt. Die Manpages zu cron schweigen auch dazu...
 
Er meint das glaube ich so, dass der cronjob ein Curl auf ein Script im webspace macht, welches dann ausgeführt wird
 
Natuerlich implizieren beide Methoden dass der User _NICHT_ direkten Zugriff auf die cron haben sondern nur ein Webinterface.
Die erste Methode macht dann HTTP-Aufrufe der URL was verschiedene Nachteile mit sich bringt (Belegung von Apache-Prozessen, Timeout's,...) waehrend die zweite Methode ein vollwertiger CLI-Aufruf ist aber halt mit vordefinierten PHP-Optionen.
 
Vielen Dank d4f für die Rückmeldung.
Ich finde beide Methoden sehr interessant.

Du hast Recht, der Kunde erhält keinen direkten Zugriff auf die CRON-Datei. Die CRONs werden vorher geprüft, bevor sie eingerichtet werden.

Ich finde insbesondere die WGET Methode sehr interessant, da ich sie auch als sehr sicher einstufe. Aber hier gibt es (wie du bereits sagtest) den timeout Nachteil. Einige Skripte haben nämlich genau dieses Problem.

Über die CLI auch mit open_basedir einzuschränken klingt auch sehr gut.

Kennt denn noch zusätzlich jemand eine Möglichkeit diese Ausführung in einem CHROOT-Jail einzuschließen?
 
Back
Top