Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: /usr/sbin/iptables -I FORWARD.... z poziomu PHP
Forum PHP.pl > Forum > PHP
wojt-ek
Potrzebuje napisac skrypt php, ktory bedzie wykonywal komendę
/usr/sbin/iptables -I FORWARD -p tcp -s 192.168.0.9 --dport 80 -j DROP
Oczywiscie ta komenda wymaga uruchomienia z poziomu roota ale moze
zna ktos sposob na uruchomienie jej z php?

Probuję tak:
system('/usr/sbin/iptables -I FORWARD -p tcp -s 192.168.0.9 --dport 80 -j DROP', $out);
echo "$out";
i nie dziala..
do pliku /etc/sudoers dodalem ponizsza linie:
nobody ALL=(root) /usr/sbin/iptables
i probowalem tak jak nizej i tez nic:
system('sudo -u root /usr/sbin/iptables -I FORWARD -p tcp -s 192.168.0.9 --dport 80 -j DROP', $out);

please pomozcie mi bo sam juz nie wiem co mam zrobic.

wojtek
silent
Miałem ten sam problem. Podaj pełną ścieżkę do sudo, w moim przypadku pomogło.
wojt-ek
niestety podanie calej sciezki do sudo nie pomoglo.
załączam plik php i zawartosc

plik 8.php
<?
system('/usr/bin/sudo -u root /usr/sbin/iptables -I FORWARD -p tcp -s 192.168.0.144 --dport 80 -j DROP', $out);?>

sudoers:
root ALL=(ALL) ALL
nobody ALL=(root) /usr/sbin/iptables

bardzo licze na Waszą pomoc

wojtek
scanner
Przeniesione: php Pro => php
gabrys
rozumiem że serwer www chodzi jako user nobody?
proponuje taki wpis w sudoers:

nobody ALL = NOPASSWD: /usr/sbin/iptables


safe mode jest w php wylaczony? (przynajmniej dla tego katalogu?)
wojt-ek
Cytat(gabrys @ 2004-09-28 10:07:01)
rozumiem że serwer www chodzi jako user nobody?
proponuje taki wpis w sudoers:

nobody ALL = NOPASSWD: /usr/sbin/iptables


safe mode jest w php wylaczony? (przynajmniej dla tego katalogu?)

serwer www chodzi jako nobody.
safe_mode wylaczone.
dodalem Twój wpis do sudoers i zadzialalo exclamation.gif!
dzieki za pomoc!
FiDO
To jest malo bezpieczne rozwiazanie... Zawsze jak trzeba ingerowac w system lepiej zrobic to tak, ze skrypt zapisuje do jakiegos pliku operacje do zrobienia, natomiast inny skrypt, wykonywany co pare minut z cron'a, odczytuje to i robi co trzeba (on juz moze byc odpalany z roota).
gabrys
zgadzam sie, malo bezpieczne.

chyba ze jedyny katalog w ktorym jest wylaczony safe mode to katalog w ktorym my dzialamy a serwer www zamiast na nobody pusic tylko na jego wlasny np. www-data (dla pewnosci).

W Twoim sposobie zabezpieczniem bylaby jak sadze nieznajomosc przez niepowolowane osoby nazwy pliku ktorego zawartosc jest wykonywana przez skrypt. OK.

to ja proponuje cos lepszego (pozbawionego zwloki czasowej)
nie wpisywac do sudoers /usr/sbin/iptables
tylko do kopii iptables znajdujacej sie zupelnie gdzie indziej
np.
/wwwroot/sudoers/wwwdata_iptables

wtedy ktos kto by chcial sie dostac do iptables musi tez znac dokladna jego lokalizacje, a jesli cala reszta uzytkownikow serwera www chodzi na safe mode to i tak nie ma sie czym przejmowac - nikt wiecej nie bedzie mogl uzywac ` `, system itd.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.