Apache / CGI / Perl -> Reboot

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

Apache / CGI / Perl -> Reboot

Beitrag von para » 07.05.2003 00:25:46

Hi,
kann mir jemand sagen, wie ich mit einem Perl CGI-Skript aus Apache heraus den Server neu starten kann...? Ein

Code: Alles auswählen

`shutdown -r now`;
klappt ja nicht, weil Apache nicht als root läuft bzw. /sbin/shutdown meines Wissens nach nur innerhalb einer Konsole funktioniert...

Gibt's dort ne Lösung? Vielleicht auch noch einigermaßen sicher?

Danke, Para

Benutzeravatar
odradeck
Beiträge: 156
Registriert: 24.03.2003 20:58:57
Wohnort: Aachen

Beitrag von odradeck » 07.05.2003 02:02:32

Wenn es nur darum geht, den Rechner über http ausschalten zu können, würde ich Dir den Webmin empfehlen
http://www.webmin.com

Gruss
odde
~ wer Rechtschreibfehler findet, darf sie behalten ~

ivo
Beiträge: 629
Registriert: 29.04.2002 12:41:22
Wohnort: Lichtenstein/Sa.
Kontaktdaten:

Re: Apache / CGI / Perl -> Reboot

Beitrag von ivo » 07.05.2003 07:44:16

para hat geschrieben:Hi,
kann mir jemand sagen, wie ich mit einem Perl CGI-Skript aus Apache heraus den Server neu starten kann...? Ein
suexec in Kombination mit sudo und /etc/sudoers (Hatten wir das Thema nicht schonmal?)

Bitte nimm nicht webmin, wenn du nur das eine Problem damit lösen willst. Das ist wie mit Kanonen auf...

*iv

Benutzeravatar
odradeck
Beiträge: 156
Registriert: 24.03.2003 20:58:57
Wohnort: Aachen

Beitrag von odradeck » 07.05.2003 16:44:04

@ivo ich finde den webmin so unglaublich handlich - was spricht denn gegen den?
oder bringt der so viele Sicherheitslücken mit sich?
Dass er alles mögliche andere auch kann, ist doch kein Grund den zu vermeiden. Zudem lassen sich die verfügbaren Funktionen sehr einfach einschränken.
~ wer Rechtschreibfehler findet, darf sie behalten ~

ivo
Beiträge: 629
Registriert: 29.04.2002 12:41:22
Wohnort: Lichtenstein/Sa.
Kontaktdaten:

Beitrag von ivo » 07.05.2003 19:07:04

Gut, im Vergleich suexec <-> webmin steht es bei securityfocus 6:11. Aber ich finde die webmin-Lösung recht oversized.

Mein Script hätte -- bei installiertem suexec -- vielleicht 5 Zeilen (exklusive HTML-Kran) und webmin dagegen ist ein komplettes Paket von Lösungen, wovon ich nur eine brauche:

Unix: One problem -- one tool. So war es auf jeden Fall mal gedacht.

*iv

para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

Beitrag von para » 07.05.2003 20:31:26

Danke für die Antworten!
An Webmin hatte ich auch zuerst gedacht, aber mir war es ebenfalls zuviel des Guten... Ich hab's mir allerdings auch noch nie angesehen :wink: Derzeit bin ich mit meinem "manuellen" Konfigurieren recht glücklich, so dass ich nicht unbedingt mehr installieren möchte als ich brauche - sind ja sonst bald wieder Windoze-Zustände :lol:
Was suexec/sudo angeht werde ich mal suchen... Kommt mir von Knoppix bekannt vor. Wie war das mit dem securityfocus gemeint? Ist suexec soviel unsicherer?
Kurz noch zum zweiten Teil meiner Frage: kann ich (z.B. mit suexec) /sbin/shutdown überhaupt aus Apache/Perl ausführen? Im "man" stand was von "nur in Konsole angemeldete User dürfen das"... Stimmt das?

Ciao, Para

floschi
Beiträge: 791
Registriert: 17.09.2002 14:36:18
Wohnort: München
Kontaktdaten:

Beitrag von floschi » 07.05.2003 22:56:47

Hi!

Du könntest noch die noch sicherer Variante wählen und per Skript in eine Datei schreiben lassen, die von einem cronjob regelmäßig ausgewertet wird und der kann ja als root auch restarten ;)

Von Webmin kann ich dir in nem offenen Netz nur abraten (Internet), ist einfach ein Dienst, der als ROOT läuft und von außen erreichbar ist - sowas ist gegen jegliche Security-Policy!

Grüßle

Olfi ;)

ivo
Beiträge: 629
Registriert: 29.04.2002 12:41:22
Wohnort: Lichtenstein/Sa.
Kontaktdaten:

Beitrag von ivo » 08.05.2003 07:36:50

suexec hat bei sf 6 Einträge und webmin 11. Das sagt nicht viel aus, ist aber ein häufig benutzer Vergleich von Sicherheit bei Anwendungen.

Also mal in etwas längerer Form:

CGIs werden idR. mit dem Benutzer/der Gruppe ausgeführt, mit der der Webserver läuft. Bei Debian ist das www-data/www-data. Dieser Benutzer hat nicht das Recht den Rechner neu zu starten.

Nun kommt suexec ins Spiel. Ist suexec richtig installiert, werden CGIs mit den Rechten des Benutzers ausgeführt, dem das Script gehört, also zum Beispiel mit deinen Rechten. Nun kannst du dir in die /etc/sudoers eine Zeile einfügen, die es dir erlaubt, das Reboot-Script _ohne_ _Passwort_ zu starten.

Im Perl-CGI-Script könnte dann der Aufruf so aussehen:

Code: Alles auswählen

system("sudo /usr/sbin/neu_starten.sh");
Fertig.

Ich habe das Ganze hier, bei mir auf Arbeit mit verschiedenen Masquerading-Sachen und einer Firewall laufen. Geht sehr gut.

Noch ein Hint für /etc/sudoers:

Code: Alles auswählen

ivo             ALL=NOPASSWD:/usr/sbin/neu_starten.sh
http://httpd.apache.org/docs/suexec.html

HTH

*iv

para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

Beitrag von para » 08.05.2003 13:35:18

Danke für eure Unterstützung... Sudo kenne ich bereits und über suEXEC habe ich mich gestern bei apache.org informiert :wink:
Schade, dass es suEXEC noch nicht per apt-get gibt (oder habe ich es übersehen?). Ist halt doch einiges an Konfiguration für diese relativ "kleine" Ziel...
Da die ganze Sache für's LAN ist, habe auch mal Webmin ausprobiert. Leider lief die testing Version nicht bei mir, und somit hab ich es auch gleich wieder verworfen - wie gesagt, wäre eh zuviel des Guten.
Da das scheinbar die einzigen Möglichkeiten sind, werde ich mich wohl doch an suEXEC versuchen... Es kann aber passieren, dass ich dazu noch ein paar Fragen habe :oops:

Bis dahin, Para

ivo
Beiträge: 629
Registriert: 29.04.2002 12:41:22
Wohnort: Lichtenstein/Sa.
Kontaktdaten:

Beitrag von ivo » 08.05.2003 13:41:40

Und warum gibst du ssh keine Chance?

Laß raten: Die Kiste sollen Leute rebooten, die nichtmal imstande sind einen Browser richtig zu bedienen. Richtig?

*iv

para
Beiträge: 261
Registriert: 26.08.2002 08:37:26

Beitrag von para » 09.05.2003 07:55:38

LOL, sowas in der Art :D
ssh nutze ich an anderer Stelle und ist mir - wie Webmin - in dieser Hinsicht zuviel des Guten. Ich wollte diesmal eben versuchen, einen Rechner per Webform runterzufahren, wenn dort eh ein Apache läuft...

Para

Benutzeravatar
odradeck
Beiträge: 156
Registriert: 24.03.2003 20:58:57
Wohnort: Aachen

Beitrag von odradeck » 09.05.2003 09:32:39

gebe ja zu, dass webmin vielleicht etwas üppig ist für die Aufgabe. Mir hat der halt im lan schon gute Dienste geleistet und liess sich auch sehr einfach einrichten.

habe bei sourceforge mal geschaut, konnte aber solche Ratings wie 6:11 nicht finden. Wo bekommt ihr die her ?

odde
~ wer Rechtschreibfehler findet, darf sie behalten ~

ivo
Beiträge: 629
Registriert: 29.04.2002 12:41:22
Wohnort: Lichtenstein/Sa.
Kontaktdaten:

Beitrag von ivo » 09.05.2003 10:07:22

odradeck hat geschrieben:sf.net
Nein, nicht sourceforge.net, sondern securityfocus.com. Ich habe einfach bei den Advisories nach webmin und suexec gesucht und das gab halt 6 Treffer bei suexec und 11 bei webmin.

Ich habe auch nichts gegen webmin, da ich es nicht kenne. Auch wenn man mehr als nur seinen Rechner neu booten will, finde ich das Konzept nicht schlecht, auch, wenn ich die Administration per ssh felxiebler und sicherer finde...

*iv

Benutzeravatar
odradeck
Beiträge: 156
Registriert: 24.03.2003 20:58:57
Wohnort: Aachen

Beitrag von odradeck » 09.05.2003 11:16:45

Danke für den Link - kein wunder, dass ich bei sourceforge nix gefunden habe :wink:

ivo hat geschrieben: Ich habe auch nichts gegen webmin, da ich es nicht kenne. Auch wenn man mehr als nur seinen Rechner neu booten will, finde ich das Konzept nicht schlecht, auch, wenn ich die Administration per ssh felxiebler und sicherer finde...
*iv
hab Deinen Einwand schon verstanden, nachvollzogen und eingesehen - daher ja überhaupt meine Rückfrage nach sf.

Gruss
odde
~ wer Rechtschreibfehler findet, darf sie behalten ~

Antworten