Szukalem podobnego tematu i znalazlem, ale traktowaly jedynie
o wykonaniu komend z pod php, ale to co mnie napotkalo
zaintrygowalo na tyle, ze postanowilem zapytac na forum:
dlaczego tak sie dzieje ?
Z linuxa nie jestem mocny i wierzcie mi, ze probowalem wszystkich
metod znanych mnie. Przewertowalem wpisy w NND i forum, ale
odpowiedzi nieznalazlem.
Moze od poczatku ...
Na serwerze apatche zalozylem sobie virtualny host na porcie 200
i tam przekierowuje wszystkiech kto jest zablokowany w sieci i przy
wywolaniu dowolnej stronki pokazuje sie zamiast niej strona umieszczona
w odpowiednim folderze mojego serwera. Jest to zwykle powiadomienie
o blokadzie i kontakt do administratora. To jest akurat proste i dziala
znakomicie. Wystarczy po wprowadzeniu w odpowiednim miejscu
wprowadzic poprostu adres IP blokowanego i przeladowac iptables :
/etc/rc.d/iptables restart
Zatrzymywane jest forewall i pare innych uslug po czym sa uruchamiane
bez potrzeby restartowania NND.
Jak do tej pory jest wszystko zrozumiale, ale zachcialo mi sie
to robic z poziomu php wiec zrobilem sobie folderek w folderze
serwera i napisalem :
<?PHP
#!/bin/bash
exec ("sudo /home/httpd/html/folder/skrypt.txt");
?>
I zapisalem to pod nazwa przladuj.php
Po czym w tym samym folderze umiescilem plik skrypt.txt z zawartoscia:
/etc/rc.d/iptables restart
Widomo, ze to niezadziala poki sie niewpisze odpowiedniej linijki w
sudoers wiec uruchomilem visudo i zrobilem takie wpisy :
nobody ALL=NOPASSWD:/home/httpd/html/folder/skrypt.txt
nobody ALL=NOPASSWD:/home/httpd/html/folder/przeladuj.php
Zapisalem, zrobilem restart NND no i jeszcze nadalem na wszelki wypadek
chmod na 777 calemu folderowi oraz wszystkim plikom zeby byc
penym ze sie to wykona.
Na koniec pozostalo mi to wyprobowac wiec sobie zahashowalem
linijke ze swoim ip w pliku blokady i wywolalem skrypt z pod
www :
http://192.168.0.1/folder/przeladuj.php
Niby to dziala, ale po wywolaniu strony cos sie robi, ale strona niekonczy
dzialania i tak dzieje sie bardzo dlugo !! Na pewno zadlugo zeby
to moznabylo wdrozyc w przyszlosci do jakiegos innego rozwiazania.
Czym to moze byc spowodowane ?
Nie znam wszystkich procesow jakie sa wykonywane po kolei i zaczolem
nawet myslec, ze przy przeladowywaniu iptables oraz zamykaniu i
otwieraniu firewall jest zrywane polaczenie do serwera i stad taki, a nie
inny afekt. Nie jestem tego pewien bo w tym wypadku jesli tak by
bylo rzeczywiscie to w przegladarce powinna sie pojawic pusta strona, a
ona niekonczy poprostu dzialania tylko czeka na serwer w nieskonczonosc.
Napisalem, ze to dziala bo jesli wywolam dowolna stronke w drugim
oknie przegladarki to uzyskuje zadany efekt czyli albo jestem
zablokowywany bo pojawia mi sie komunikat z foldera blokada
apatche, albo moge normalnie surfowac po internecie.