Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> /usr/sbin/iptables -I FORWARD.... z poziomu PHP
wojt-ek
post 27.09.2004, 14:02:36
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.05.2004

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
silent
post 27.09.2004, 15:15:09
Post #2





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.08.2004
Skąd: Jastrzębie Zdrój

Ostrzeżenie: (0%)
-----


Miałem ten sam problem. Podaj pełną ścieżkę do sudo, w moim przypadku pomogło.
Go to the top of the page
+Quote Post
wojt-ek
post 28.09.2004, 07:07:55
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.05.2004

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
scanner
post 28.09.2004, 07:19:42
Post #4





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Przeniesione: php Pro => php


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
gabrys
post 28.09.2004, 09:07:01
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.09.2004
Skąd: w-w

Ostrzeżenie: (0%)
-----


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?)
Go to the top of the page
+Quote Post
wojt-ek
post 28.09.2004, 10:25:38
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.05.2004

Ostrzeżenie: (0%)
-----


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!
Go to the top of the page
+Quote Post
FiDO
post 28.09.2004, 10:28:06
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


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).


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
gabrys
post 28.09.2004, 13:38:38
Post #8





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.09.2004
Skąd: w-w

Ostrzeżenie: (0%)
-----


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.

Ten post edytował gabrys 28.09.2004, 13:40:49
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 04:19