Skrypcik do wyświetlania komunikatów (bez SQUIDa)
Potrzebujemy nowego łańcucha IPTABLES ... iptables -t nat -N INFO Następnie dodajemy: iptables -t nat -A INFO -j RETURN I na koniec: iptables -t nat -(I lub A) FORWARD -j INFO
Oczywiście interesuje nas port 80, więc można to jeszcze bardziej dopracować... ale to już sobie każdy sam pokombinuje. Jeśli wpuścicie cały ruch, to i tak wszystko wyleci na końcu z łańcucha.
To jest część stała, która musi znaleźć się w naszym firewallu (ładowanym przed uruchomieniem LMSD).
A oto skrypt, wrzucamy to w LMSD, np. co dwie minuty:
--
{ /* usuwa wszystkie wpisy w łańcuchu INFO */ exec("/usr/local/sbin/iptables -t nat -F INFO")
/* Musimy utworzyć sobie grupę dla komputerów - BEZ_INFORMACJI; I teraz wszystkie komputery należące do grupy o ID = 1 (jeśli to była pierwsza nasza grupa) mają automatycznie wyłączane ostrzeżenia jeśli wpinacie np. urządzenia VoIP dla klientów, to się wam przyda, wykrzykniki są automatycznie wyłączane... */ UPDATE nodes nd RIGHT JOIN nodegroupassignments na ON nd.id = na.nodeid AND na.nodegroupid=1 AND nd.warning = 1 SET warning = 0
/* tu mamy dwie wersje - komunikat dla ludzi z ostrzeżeniem lub brakiem dostępu, lub komunikat tylko dla ludu z włączonymi ostrzeżeniami */ /* komputery = SELECT inet_ntoa(ipaddr) AS ip FROM nodes WHERE access = 0 OR warning = 1 */ komputery = SELECT inet_ntoa(ipaddr) AS ip FROM nodes WHERE warning = 1;
/* dodajemy regułki dla ludu, który został wyłowiony z bazy danych */ /* x.y.z.v to IP na którym słucha Apache */ if (number(komputery)) for (i=0; i<number(komputery); i++) exec("/usr/local/sbin/iptables -t nat -A INFO -p tcp --dport 80 -s " + komputery[i].ip + " -d! x.y.z.v -j DNAT --to x.y.z.v:100") /for /if
/* nie zapominamy o regule powrotu */ exec("/usr/local/sbin/iptables -t nat -A INFO -j RETURN")}
--
Teraz wystarczy przez "PHP exec" i "sudo" kasować reguły i przy użyciu MySQLa wpisywać zera do kolumny warning do bazy danych.
Sporo roboty ze stroną jest, ale u mnie działa. Przy użyciu PHP nawet info dla userów wyciągam z bazy danych :-)
!DSPAM:48076239196271163869485!
Konrad pisze:
Potrzebujemy nowego łańcucha IPTABLES ... iptables -t nat -N INFO Następnie dodajemy: iptables -t nat -A INFO -j RETURN I na koniec: iptables -t nat -(I lub A) FORWARD -j INFO
Dużo mniej roboty jest przy użyciu ipsetów...Możesz np utworzyć jeden ipset o nazwie "komunikat" i wszystkie hosty należące do niego przekierowywać na komunikat... Panowanie nad hostami dodanymi do ipseta też jest sporo prostsze - co by się nie działo, to dany host jest w ipsecie, albo go nie ma - przy łańcuchu iptables musisz czyścić cały łańcuch - w przeciwnym wypadku może się zdarzyć, że wpis dla któregoś hosta będzie powtórzony 2 razy..
Może się czepiam, ale osobiście nie lubię modyfikacji ustawień na zasadzie - czyścimy całość i ładujemy od nowa...niezależnie czy to firewall, kolejki czy jeszcze coś innego.
Nie odbierz mnie źle - ale ipset imho naprawdę sporo uprości.
pozdrawiam, Dawid W
!DSPAM:4807a94e253255962586004!
najlepsza i najlatwiejsza metoda wysylania komunikatow bez squida to za pomoca /proc/net/ipt_condition mam fajny skrypt do tego tylko niestety jest slaby z baz danych i nie wiem jak to powiazac z lms`em - chodzi glownie o wrzucanie zawartosci komunikatu do odpowiedniego pliku jesli ktos chce pomyslec wspolnie o tym to jestem chetny
Konrad pisze:
Potrzebujemy nowego łańcucha IPTABLES ... iptables -t nat -N INFO Następnie dodajemy: iptables -t nat -A INFO -j RETURN I na koniec: iptables -t nat -(I lub A) FORWARD -j INFO
Dużo mniej roboty jest przy użyciu ipsetów...Możesz np utworzyć jeden ipset o nazwie "komunikat" i wszystkie hosty należące do niego przekierowywać na komunikat... Panowanie nad hostami dodanymi do ipseta też jest sporo prostsze - co by się nie działo, to dany host jest w ipsecie, albo go nie ma - przy łańcuchu iptables musisz czyścić cały łańcuch - w przeciwnym wypadku może się zdarzyć, że wpis dla któregoś hosta będzie powtórzony 2 razy..
Może się czepiam, ale osobiście nie lubię modyfikacji ustawień na zasadzie - czyścimy całość i ładujemy od nowa...niezależnie czy to firewall, kolejki czy jeszcze coś innego.
Nie odbierz mnie źle - ale ipset imho naprawdę sporo uprości.
pozdrawiam, Dawid W
_______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
!DSPAM:4807c469274981106414047!
maccolo pisze:
najlepsza i najlatwiejsza metoda wysylania komunikatow bez squida to za pomoca /proc/net/ipt_condition mam fajny skrypt do tego tylko niestety jest slaby z baz danych i nie wiem jak to powiazac z lms`em - chodzi glownie o wrzucanie zawartosci komunikatu do odpowiedniego pliku jesli ktos chce pomyslec wspolnie o tym to jestem chetny
Wszystko fajnie tylko prosimy odpowiadaj pod postem i tnij wiadomosci i sygnaturki, takie tutaj preferujemy zasady pisania i sie ich trzymamy.
maccolo pisze:
najlepsza i najlatwiejsza metoda wysylania komunikatow bez squida to za pomoca /proc/net/ipt_condition mam fajny skrypt do tego tylko niestety jest slaby z baz danych i nie wiem jak to powiazac z lms`em - chodzi glownie o wrzucanie zawartosci komunikatu do odpowiedniego pliku jesli ktos chce pomyslec wspolnie o tym to jestem chetny
Wszystko fajnie tylko prosimy odpowiadaj pod postem i tnij wiadomosci i sygnaturki, takie tutaj preferujemy zasady pisania i sie ich trzymamy.
tak dobrze?:>
!DSPAM:4807cee9284819210314635!
maccolo pisze:
maccolo pisze:
najlepsza i najlatwiejsza metoda wysylania komunikatow bez squida to za pomoca /proc/net/ipt_condition mam fajny skrypt do tego tylko niestety jest slaby z baz danych i nie wiem jak to powiazac z lms`em - chodzi glownie o wrzucanie zawartosci komunikatu do odpowiedniego pliku jesli ktos chce pomyslec wspolnie o tym to jestem chetny
Wszystko fajnie tylko prosimy odpowiadaj pod postem i tnij wiadomosci i sygnaturki, takie tutaj preferujemy zasady pisania i sie ich trzymamy.
tak dobrze?:>
Już prawie chwytasz. Tylko nie wstawiaj cytowanego tekstu jako swojego :)
!DSPAM:4807d1ab287461106414047!
maccolo pisze:
najlepsza i najlatwiejsza metoda wysylania komunikatow bez squida to za pomoca /proc/net/ipt_condition mam fajny skrypt do tego tylko niestety jest slaby z baz danych i nie wiem jak to powiazac z lms`em - chodzi glownie o wrzucanie zawartosci komunikatu do odpowiedniego pliku jesli ktos chce pomyslec wspolnie o tym to jestem chetny
No to rozwiń myśl. Bardzo chętnie Ci pomogę, tylko jak to działa... jak DNAT? Rzuć przykładem i opisem działania...
!DSPAM:480872e180731068017541!
maccolo pisze:
najlepsza i najlatwiejsza metoda wysylania komunikatow bez squida to za pomoca /proc/net/ipt_condition mam fajny skrypt do tego tylko niestety jest slaby z baz danych i nie wiem jak to powiazac z lms`em - chodzi glownie o wrzucanie zawartosci komunikatu do odpowiedniego pliku jesli ktos chce pomyslec wspolnie o tym to jestem chetny
No to rozwiń myśl. Bardzo chętnie Ci pomogę, tylko jak to działa... jak DNAT? Rzuć przykładem i opisem działania...
moim zdaniem jest to najlepsze rozwiazanie dla powiadomien chocby dlatego ze nie wykorzystuje cron i odswiezania co 2min.... kompilujesz jajko z dodaniem condition potem w wersji 2.6.x masz w /proc/net/nf_condition/192.68.0.2... --> w zaleznosci jak ustawisz wtyczke gdy wlaczasz powiadomienia condition ustawia sie na 1 i wtedy przekieruje go na specjalna strona chodzaca na porcie 82 po kliknieciu przycisku na stronce, condition wraca na 0 i user wraca do swojej stronki...
!DSPAM:4808764783605156419305!
Dawid Widyna pisze:
Dużo mniej roboty jest przy użyciu ipsetów...Możesz np utworzyć jeden ipset o nazwie "komunikat" i wszystkie hosty należące do niego przekierowywać na komunikat... Panowanie nad hostami dodanymi do ipseta też jest sporo prostsze - co by się nie działo, to dany host jest w ipsecie, albo go nie ma - przy łańcuchu iptables musisz czyścić cały łańcuch - w przeciwnym wypadku może się zdarzyć, że wpis dla któregoś hosta będzie powtórzony 2 razy..
Może się czepiam, ale osobiście nie lubię modyfikacji ustawień na zasadzie - czyścimy całość i ładujemy od nowa...niezależnie czy to firewall, kolejki czy jeszcze coś innego.
Nie odbierz mnie źle - ale ipset imho naprawdę sporo uprości.
Chętnie przerobię to na jakiś inny formacik. Iptables ma pewną wadę. Nie wiem czy to iptables, czy przeglądarki, ale od razu po skasowaniu skryptu reguły przekierowanie nie przestaje działać. Potrzeba 5-10 sekund... dopiero po takim czasie można przeładować. Ja używam do tego JavaScriptu... ale nie satysfakcjonuje mnie to do końca.
To co to są te ipsety? Daj jakiś przykładzik... To działa jak DNAT?
!DSPAM:4808729679541402712270!
Konrad pisze:
Chętnie przerobię to na jakiś inny formacik. Iptables ma pewną wadę. Nie wiem czy to iptables, czy przeglądarki, ale od razu po skasowaniu skryptu reguły przekierowanie nie przestaje działać. Potrzeba 5-10 sekund... dopiero po takim czasie można przeładować. Ja używam do tego JavaScriptu... ale nie satysfakcjonuje mnie to do końca.
Wydaje mi się, że to kwestia przeglądarek, kombinowałem z różnymi nagłówkami w <head> ale ostatecznie dałem po prostu <META HTTP-EQUIV="Refresh" CONTENT="15;.............
To co to są te ipsety? Daj jakiś przykładzik... To działa jak DNAT?
W tym wypadku to nie jest cel iptables (choć może nim być) - jest to użyte zamiast -s $IP... http://ipset.netfilter.org/tips.html
Finalnie działa to tak: -klient dostaje przekierowanie na stronę z komunikatem --jednorazowo z komunikatem z lms (warn=1, access=1), klikając przycisk "przeczytałem ..." po kilkunastu sekundach jest przenoszony na stronę, którą zamierzał odwiedzić i komunikat już mu się nie wyświetla --jeśli jest mega-dłużnikiem (flaga access=0, warn=1) jest przekierowywany na stronę z komunikatem i informacją o ogranieczeniu prędkości do 64/64, kliknięcie przycisku "przeczytałem ...." deaktywuje DNAT dla jego IP na okres np 5 minut (to już kwestia wpisu w cronie)
itd itp
pozdrawiam, Dawid Widyna
!DSPAM:480877c486711804284693!
On Fri, 18 Apr 2008 12:28:20 +0200, Dawid Widyna wrote
Konrad pisze:
Chętnie przerobię to na jakiś inny formacik. Iptables ma pewną wadę. Nie wiem czy to iptables, czy przeglądarki, ale od razu po skasowaniu skryptu reguły przekierowanie nie przestaje działać. Potrzeba 5-10 sekund... dopiero po takim czasie można przeładować. Ja używam do tego JavaScriptu... ale nie satysfakcjonuje mnie to do końca.
Wydaje mi się, że to kwestia przeglądarek, kombinowałem z różnymi nagłówkami w <head> ale ostatecznie dałem po prostu
<META HTTP-EQUIV=\"Refresh\" CONTENT=\"15;.............
tcpdump wszystko Ci pokaże ;-)
Pozdrawiam.
Dawid Widyna wrote:
Wydaje mi się, że to kwestia przeglądarek, kombinowałem z różnymi nagłówkami w <head> ale ostatecznie dałem po prostu
<META HTTP-EQUIV=\"Refresh\" CONTENT=\"15;.............
jest to kwestia serwera na którym masz stronę z komunikatem
A.L.E.C pisze:
Dawid Widyna wrote:
Wydaje mi się, że to kwestia przeglądarek, kombinowałem z różnymi nagłówkami w <head> ale ostatecznie dałem po prostu
<META HTTP-EQUIV=\"Refresh\" CONTENT=\"15;.............
jest to kwestia serwera na którym masz stronę z komunikatem
Dzięki za cynk.
Przekierowanie na stronę docelową nie działa wtedy, gdy nie czytając komunikatu szybko klikam przycisk "przeczytałem ....". Gdy ustawię refresh na 4 sekundy, to w przeglądarce pojawia się strona z mojego serwera, a nie serwera docelowego.
Doradzony przez Tomka tcpdump pokazuje, że niby mój komp komunikuje się z właściwym serwerem (IP serwera, na którym stoi stronka na którą ma być przekierowany po przeczytaniu komunikatu) - jednak po ilości pakietów sądzę, że sprawdza tylko, czy strona nie zmieniła się w ciągu ostatnich "5" sekund.
pozdrawiam, Dawid W
!DSPAM:480885d4100852037086813!
A.L.E.C pisze:
Dawid Widyna wrote:
Wydaje mi się, że to kwestia przeglądarek, kombinowałem z różnymi nagłówkami w <head> ale ostatecznie dałem po prostu
<META HTTP-EQUIV=\"Refresh\" CONTENT=\"15;.............
jest to kwestia serwera na którym masz stronę z komunikatem
Zmniejszyłem KeepAliveTimeout i przekierowanie działa wzorowo, zostawię na jakiś czas żeby sprawdzić, czy nie ma efektów ubocznych.
Jeszcze raz dzięki za cynk.
pozdrawiam, Dawid W
!DSPAM:480886c0102595862520361!
Dawid Widyna pisze:
Zmniejszyłem KeepAliveTimeout i przekierowanie działa wzorowo, zostawię na jakiś czas żeby sprawdzić, czy nie ma efektów ubocznych.
Można zmniejszyć KeepAliveTimeout tylko dla jednego vhosta? :P Czy oprócz dodatkowego narzutu na tworzenie nowych połączeń, powoduje jakieś dodatkowe efekty uboczne?
!DSPAM:480888a8107161804284693!
Mam jeszcze klasę napisaną w PHP z użyciem obiektu PDO. Jak dopieszczę, to opublikuję :-) Zajmuje się to wyświetlaniem danych z LMSa i obsługą komunikatów :-)
!DSPAM:48089178116391465223968!
Konrad pisze:
Dawid Widyna pisze:
Zmniejszyłem KeepAliveTimeout i przekierowanie działa wzorowo, zostawię na jakiś czas żeby sprawdzić, czy nie ma efektów ubocznych.
Można zmniejszyć KeepAliveTimeout tylko dla jednego vhosta? :P Czy oprócz dodatkowego narzutu na tworzenie nowych połączeń, powoduje jakieś dodatkowe efekty uboczne?
Description: Enables HTTP persistent connections Syntax: KeepAlive On|Off Default: KeepAlive On Context: server config, virtual host
Myślę, że się wszystkim nam przyda taka informacja :-)
!DSPAM:4808d05a276651436614547!
Konrad pisze:
Description: Enables HTTP persistent connections Syntax: KeepAlive On|Off Default: KeepAlive On Context: server config, virtual host
Myślę, że się wszystkim nam przyda taka informacja :-)
i/lub to:
Description: Amount of time the server will wait for subsequent requests on a persistent connection Syntax: KeepAliveTimeout seconds Default: KeepAliveTimeout 15 Context: server config, virtual host Status: Core Module: core
tdabek@go2.pl pisze:
i/lub to:
Description: Amount of time the server will wait for subsequent requests on a persistent connection Syntax: KeepAliveTimeout seconds Default: KeepAliveTimeout 15 Context: server config, virtual host Status: Core Module: core
Moja wersja wyłącza w ogóle ten parametr :P Inne mam zmartwienie. Dobre P2P na porcie 80 zniszczy Apache'a :/ Część P2P gada na porcie 80 przy użyciu HTTP, więc layer7 się nie sprawdzi.
Na razie używam limita... -m limit --limit 1/s --burst 10 Ma to jednak wadę... gość który ma P2P, nie koniecznie dostanie komunikat.
Jakiś pomysł? :-)
!DSPAM:4808d73f284565156419305!
Dnia 18 kwietnia 2008 19:15 Konrad kcem@tlen.pl napisał(a):
Moja wersja wyłącza w ogóle ten parametr :P Inne mam zmartwienie. Dobre P2P na porcie 80 zniszczy Apache'a :/ Część P2P gada na porcie 80 przy użyciu HTTP, więc layer7 się nie sprawdzi.
Na razie używam limita... -m limit --limit 1/s --burst 10 Ma to jednak wadę... gość który ma P2P, nie koniecznie dostanie komunikat.
Jakiś pomysł? :-)
Hm, a jaki progs p2p trzeba zainstalować, żeby to przetestować (tzn jaki będzie działał w sposób opisany przez Ciebie)?
Nie wiem, jaki jest mechanizm takiego p2p działającego po http, ale czemu uważasz, że zniszczy Apache ? Cały ruch na port 80 kierujesz na swój serwer z komunikatem...więc program p2p musiałby być głupi, żeby nawalać pakietami w nieskończoność.
Podaj namiar na takowy program - sprawdzę u siebie.
pozdrawiam, Dawid W
!DSPAM:4808e186292852037086813!
widynek pisze:
Hm, a jaki progs p2p trzeba zainstalować, żeby to przetestować (tzn jaki będzie działał w sposób opisany przez Ciebie)?
Nie wiem, jaki jest mechanizm takiego p2p działającego po http, ale czemu uważasz, że zniszczy Apache ? Cały ruch na port 80 kierujesz na swój serwer z komunikatem...więc program p2p musiałby być głupi, żeby nawalać pakietami w nieskończoność.
Podaj namiar na takowy program - sprawdzę u siebie.
W jednej sieci miałem już taki przypadek, że musiałem apache'a wypiąć z danego IP, bo ilość połączeń powodowała, że nie można było stron oglądać (konkretnie LMSa).
No ale np. Winamp, reklamy GG, Google Toolbar, Windows Update...
Tu masz najświeższy atak na Apache'a:
192.168.200.61 - - [17/Apr/2008:19:39:52 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:39:53 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:39:54 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:39:55 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:39:56 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:39:57 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:39:58 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:39:59 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:40:00 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:40:01 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:40:02 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:40:04 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:40:05 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:40:06 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:40:07 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:40:09 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:40:10 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.61 - - [17/Apr/2008:19:40:11 +0200] "GET /firefox?client=firefox-a&rls=org.mozilla:pl:official HTTP/1.1" 200 6900 "http://pl.start2.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:pl..." "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13"
I to przez firefoxa :-) Myślisz, że to nie położy Apache'a? A jeśli masz 500 osób...
Tu inny fragment: 192.168.200.58 - - [17/Apr/2008:18:07:00 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:02 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:03 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:05 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:06 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:08 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:09 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:11 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:13 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:14 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:16 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:18 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:19 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13" 192.168.200.58 - - [17/Apr/2008:18:07:21 +0200] "GET / HTTP/1.1" 200 6723 "http://nasza-klasa.pl/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13"
No i co? Olać, czy się martwić? :P Co do P2P to był BitTorrent chyba ... a najgorszy zwierz to Azureus ...
!DSPAM:4808ebd7301531068017541!
A.L.E.C pisze:
jest to kwestia serwera na którym masz stronę z komunikatem
Chodzi o jakieś tablice routingowe, czy jakiś cache? Szukałem w tym temacie, ale nic dla iptables takiego nie znalazłem, a ip ro flush nie daje efektów w tym temacie. Do 15 sekund zaczyna znów działać prawidłowo.
Podejrzenia moje padły jeszcze na nat... przeglądarka nie wysyła pakietu, który trafia do łańcucha nat przez pewien czas... bo połączenie (TCP) jest niby nawiązane. Dopiero po pewnym czasie ponawia pakietem, który trafia do tablicy nat.
!DSPAM:480887d4105061106414047!
Dawid Widyna pisze:
Konrad pisze:
Chętnie przerobię to na jakiś inny formacik. Iptables ma pewną wadę. Nie wiem czy to iptables, czy przeglądarki, ale od razu po skasowaniu skryptu reguły przekierowanie nie przestaje działać. Potrzeba 5-10 sekund... dopiero po takim czasie można przeładować. Ja używam do tego JavaScriptu... ale nie satysfakcjonuje mnie to do końca.
Wydaje mi się, że to kwestia przeglądarek, kombinowałem z różnymi nagłówkami w <head> ale ostatecznie dałem po prostu
<META HTTP-EQUIV=\"Refresh\" CONTENT=\"15;.............
Raz zdadziała a raz nie. Przerabiałem już to. A jak pozwolisz userowi wcześniej kliknąć w link, to dostanie znów stronę z komunikatem. U mnie gość dostaje stronę z komunikatem.. "proszę czekać" i przeładowuję mu to co sekundę. Za drugim, lub trzecim razem wchodzi. Używam JavaScript z opcją location.replace, żeby w historii nie śmiecić.
15 sekund to bardzo długo. Nikt tyle nie będzie czekał. Poza tym po 15 sekundach czasem mi nie działało.
!DSPAM:480886e6103875862520361!
uczestnicy (8)
-
A.L.E.C
-
Dawid Widyna
-
Konrad
-
maccolo
-
Przemysław Kudyba
-
tdabek@go2.pl
-
Tomasz Chiliński
-
widynek