[linux-support] Apache und root-cgi

Christian Schweingruber chrigul at lorraine.ch
Wed Dec 31 23:10:35 CET 2003


Hallo Reto

Reto Stalder schrieb:
> Hallo zämä,
> 
> ich möchte ein cgi-Skript schreiben, welches es ermöglicht, via 
> Webbrowser einige Firewallregeln zu ändern. Zum Testen habe ich 
> folgendes Skriptchen benutzt:
> 
> #!/bin/sh
> 
> echo Content type: text/plain
> echo
> echo CGI/1.0 test script report:
> echo
> echo '/sbin/ipchains -L:'
> echo `/sbin/ipchains -L`
> echo
> echo '/usr/sbin/ipmasqadm portfw -l:'
> echo `/usr/sbin/ipmasqadm portfw -l`
> 
> Beide Befehle geben einen Eintrag in /var/log/apache/error.log.
> Der ipchains Befehl: ipchains: Permission denied
> Und der ipmasqadm Befehl: portfw: socket creation failed: Operation not 
> permitted
> 
> Das Skript gehört dem User root, ist aber für ugo auf executable 
> gesetzt. Ich habe auch das setuid und das setgid bit ausprobiert, ohne 
> Erfolg.
> 
> Hat jemand eine Idee, wie ich mein Skript zur Mitarbeit bewege?

Shell Scrips können nicht über SUID mit Rootrechten versehen werden.

Es gibt (mindestend) 2  Ansätze:

1. Quick & Dirty: Die verwendeten Tools (binary files) kopieren und mit suid bit 
versehen. durch das script diese Ausführen lassen.
Das ganze ist natürlich aus Security sicht äusserst bedenklich!

2. Sauber(er):
Win kurzes wrapper-programm (zB. in C) schreiben, und dieses mit suid ausrüsten. 
Darin muss die authenzitität und berechtigung des requests genau geprüft werden.
Dann ist das ganze vertretbar.

Gruess und guete Rutsch!

Chrigu

> 
> Gruss,
> Reto
> 
> _______________________________________________
> Linux-support mailing list
> Linux-support at lugbe.ch
> http://www.lugbe.ch/vmailman/listinfo/linux-support
> 
> 




More information about the Linux-support mailing list