PHP System -> iptables verändern

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
nixix
Posts: 62
Joined: 2003-11-29 14:42

PHP System -> iptables verändern

Post by nixix » 2006-12-30 09:57

Hallo zusammen.

Ich habe ein PHP Script, mit welchem ich die iptables direkt verändere:
system("iptables ...");

Wenn ich das Script als Root ausführe geht alles perfekt, die iptables-Regel werden eingelesen.

Rufe ich das Script jedoch über den Apachen auf geht nichts, es kommt auch keine Fehlermeldung. Am base_dir von php kann es nicht liegen, da wenn ich system("ls -l /"); eingebe alle Ordner vom / (wie /root /sbin / etc) angezeigt werden.

Wie kann ich dem Apachen die Berechtigung geben über php iptables aufzurufen?

Danke und Viele Grüsse,
NiX

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: PHP System -> iptables verändern

Post by daemotron » 2006-12-30 10:53

NiXiX wrote:Wie kann ich dem Apachen die Berechtigung geben über php iptables aufzurufen?
Das willst Du nicht ernsthaft, oder? iptables lässt sich nur als root ausführen, ergo könntest Du sowas konstruieren:

Code: Select all

system("sudo iptables ....")
- allerdings müsstest Du dem Apache-User dann Zugriff auf sudo gewähren... sicherheitstechnisch jedenfall höchst bedenklich!

IMHO etwas gesünder wäre es, per PHP nur eine Datei mit den Regeln zu erzeugen, die dann per Cron-Job (der unter root läuft) an iptables übergeben werden.

nixix
Posts: 62
Joined: 2003-11-29 14:42

Re: PHP System -> iptables verändern

Post by nixix » 2006-12-30 10:56

jfreund wrote:

Code: Select all

system("sudo iptables ....")
- allerdings müsstest Du dem Apache-User dann Zugriff auf sudo gewähren... sicherheitstechnisch jedenfall höchst bedenklich!
Der Webserver ist öffentlich nicht zugänglich, deshalb ertragbar. Ausserdem hostet er nur dieses Script.
Wie gewähre ich dem Apachen denn nun Zugang zu zum sudo?
Habe sudo installiert, kann das aber mit dem php system() nicht ausführen.

Danke und Gruss,
NiX
jfreund wrote: IMHO etwas gesünder wäre es, per PHP nur eine Datei mit den Regeln zu erzeugen, die dann per Cron-Job (der unter root läuft) an iptables übergeben werden.
Hatte ich zuerst auch gedacht. Das Problem ist, dass Crontab nur 1 minütiges aufrufen unterstützt und ich zwingend Realtime benötige.

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: PHP System -> iptables verändern

Post by daemotron » 2006-12-30 10:58

Normalerweise reicht es, den betreffenden User in die /etc/sudoers einzutragen (musst mal schauen, wo die Datei bei Dir liegt - ev. auch unter /etc/sudo/sudoers, je nach Distribution) und anzugeben, welche Programme er mit root-Rechten starten darf.

nixix
Posts: 62
Joined: 2003-11-29 14:42

Re: PHP System -> iptables verändern

Post by nixix » 2006-12-30 11:05

Die liegt bei mir unter /etc/sudoers und sieht so aus:

Code: Select all

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults        env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL
Wollte mit man sudoers schauen wie ich das Ding zu editieren habe, funktioniert aber nicht, bzw. habe es wahrscheinlich falsch gemacht.
Weisst du gerade wie ich dem user www-data die Berechtigungen auf iptables (/sbin/iptables) gebe?


Gruss, NiX

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: PHP System -> iptables verändern

Post by daemotron » 2006-12-30 11:24

Aus dem Kopf grade auch nicht, aber vielleicht hilft Dir das:
http://www.gentoo.org/doc/de/sudo-guide.xml

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: PHP System -> iptables verändern

Post by Joe User » 2006-12-30 11:39

PHP als (F)CGI mit su[exec|php] statt mod_php einsetzen.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

nixix
Posts: 62
Joined: 2003-11-29 14:42

Re: PHP System -> iptables verändern

Post by nixix » 2006-12-30 12:08

jfreund wrote:Aus dem Kopf grade auch nicht, aber vielleicht hilft Dir das:
http://www.gentoo.org/doc/de/sudo-guide.xml
Genialer Link. Danke.
Jetzt gehts :-)