wojt-ek
27.09.2004, 14:02:36
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
27.09.2004, 15:15:09
Miałem ten sam problem. Podaj pełną ścieżkę do sudo, w moim przypadku pomogło.
wojt-ek
28.09.2004, 07:07:55
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
28.09.2004, 07:19:42
Przeniesione: php Pro => php
gabrys
28.09.2004, 09: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?)
wojt-ek
28.09.2004, 10:25:38
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

!
dzieki za pomoc!
FiDO
28.09.2004, 10:28:06
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
28.09.2004, 13:38:38
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.