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
PHP System -> iptables verändern
-
- Administrator
- Posts: 2643
- Joined: 2004-01-21 17:44
Re: PHP System -> iptables verändern
Das willst Du nicht ernsthaft, oder? iptables lässt sich nur als root ausführen, ergo könntest Du sowas konstruieren:NiXiX wrote:Wie kann ich dem Apachen die Berechtigung geben über php iptables aufzurufen?
Code: Select all
system("sudo iptables ....")
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.
-
- Posts: 62
- Joined: 2003-11-29 14:42
Re: PHP System -> iptables verändern
Der Webserver ist öffentlich nicht zugänglich, deshalb ertragbar. Ausserdem hostet er nur dieses Script.jfreund wrote:- allerdings müsstest Du dem Apache-User dann Zugriff auf sudo gewähren... sicherheitstechnisch jedenfall höchst bedenklich!Code: Select all
system("sudo iptables ....")
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
Hatte ich zuerst auch gedacht. Das Problem ist, dass Crontab nur 1 minütiges aufrufen unterstützt und ich zwingend Realtime benötige.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.
-
- Administrator
- Posts: 2643
- Joined: 2004-01-21 17:44
Re: PHP System -> iptables verändern
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.
-
- Posts: 62
- Joined: 2003-11-29 14:42
Re: PHP System -> iptables verändern
Die liegt bei mir unter /etc/sudoers und sieht so aus:
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
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
Weisst du gerade wie ich dem user www-data die Berechtigungen auf iptables (/sbin/iptables) gebe?
Gruss, NiX
-
- Administrator
- Posts: 2643
- Joined: 2004-01-21 17:44
Re: PHP System -> iptables verändern
Aus dem Kopf grade auch nicht, aber vielleicht hilft Dir das:
http://www.gentoo.org/doc/de/sudo-guide.xml
http://www.gentoo.org/doc/de/sudo-guide.xml
-
- Project Manager
- Posts: 11186
- Joined: 2003-02-27 01:00
- Location: Hamburg
Re: PHP System -> iptables verändern
PHP als (F)CGI mit su[exec|php] statt mod_php einsetzen.
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings 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.
Wings for Life ● Wings 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.
-
- Posts: 62
- Joined: 2003-11-29 14:42
Re: PHP System -> iptables verändern
Genialer Link. Danke.jfreund wrote:Aus dem Kopf grade auch nicht, aber vielleicht hilft Dir das:
http://www.gentoo.org/doc/de/sudo-guide.xml
Jetzt gehts :-)