Witam Przeszukałem listę znalazłem parę rozwiązań ale coś do końca mi nie działają. Zrobiłem tak: 1. Przegrałem pliki ze squid_redirector na katalogu gdzie jest virtualka na porcie 85 2. lms-makemessages tworzy regułki ktore przekierowują na ip_serwera:85 wyświetla się komunikat i jest ok. 3. w index.php dodałem wpis system("sudo /usr/sbin/iptables -t nat -D MESSAGES -p tcp -s ".$_SERVER['REMOTE_ADDR']." -j DNAT --to 10.0.1.1:85"); za linią DB->Execute('UPDATE nodes SET warning = 0 WHERE id = ?', array($nodeid)); Prawa dla www-data w sudo są nadane. Po potwierdzeniu przeczytania komunikatu nic się nie dzieje tak jak by ta sekcja cała nie działała if (isset($_GET['readed'])) { $DB->Execute('UPDATE nodes SET warning = 0 WHERE id = ?', array($nodeid)); system("sudo /usr/sbin/iptables -t nat -D MESSAGES -p tcp -s ".$_SERVER['REMOTE_ADDR']." -j DNAT --to 10.0.1.1:85"); header)'Location: '.$_GET ['oldurl']); } Jak wpiszę to na samym końcu czyli przed znakiem ?> system("sudo /usr/sbin/iptables -t nat -D MESSAGES -p tcp -s ".$_SERVER['REMOTE_ADDR']." -j DNAT --to 10.0.1.1:85"); to się wykonuje tylko nie zdąży pokazać komunikatu, bo kasuje przekierowanie :) Proszę o pomoc jak zrobić przekierowania.
W dniu 2011-09-13 08:03, Jakub pisze:
Witam Przeszukałem listę znalazłem parę rozwiązań ale coś do końca mi nie działają. Zrobiłem tak:
- Przegrałem pliki ze squid_redirector na katalogu gdzie jest virtualka na porcie 85
- lms-makemessages tworzy regułki ktore przekierowują na ip_serwera:85 wyświetla się komunikat i jest ok.
- w index.php dodałem wpis
system("sudo /usr/sbin/iptables -t nat -D MESSAGES -p tcp -s ".$_SERVER['REMOTE_ADDR']." -j DNAT --to 10.0.1.1:85"); za linią DB->Execute('UPDATE nodes SET warning = 0 WHERE id = ?', array($nodeid)); Prawa dla www-data w sudo są nadane. Po potwierdzeniu przeczytania komunikatu nic się nie dzieje tak jak by ta sekcja cała nie działała if (isset($_GET['readed'])) { $DB->Execute('UPDATE nodes SET warning = 0 WHERE id = ?', array($nodeid)); system("sudo /usr/sbin/iptables -t nat -D MESSAGES -p tcp -s ".$_SERVER['REMOTE_ADDR']." -j DNAT --to 10.0.1.1:85"); header)'Location: '.$_GET ['oldurl']); } Jak wpiszę to na samym końcu czyli przed znakiem ?> system("sudo /usr/sbin/iptables -t nat -D MESSAGES -p tcp -s ".$_SERVER['REMOTE_ADDR']." -j DNAT --to 10.0.1.1:85"); to się wykonuje tylko nie zdąży pokazać komunikatu, bo kasuje przekierowanie :) Proszę o pomoc jak zrobić przekierowania.
najlepiej jakbyś to oparł na tablicach ipset, skrypt będzie generował tablicę ipset a klient potwierdzeniu albo usuwa swoj wpis z tablicy albo dopisuje do drugiej gdzie sa potwierdzenia przeczytania
masz może jakieś gotowe rozwiązanie z ipset? ja używam iptables bez squida ale z winetką z lms-a i właśnie czasem klient musi kilka razy kliknąć by ograniczenie zostało zdjęte
najlepiej jakbyś to oparł na tablicach ipset, skrypt będzie generował tablicę ipset a klient potwierdzeniu albo usuwa swoj wpis z tablicy albo dopisuje do drugiej gdzie sa potwierdzenia przeczytania
lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
On Wed, 14 Sep 2011 16:30:53 +0200, Marcin S. wrote:
masz może jakieś gotowe rozwiązanie z ipset? ja używam iptables bez squida ale z winetką z lms-a i właśnie czasem klient musi kilka razy kliknąć by ograniczenie zostało zdjęte
Było już wiele razy o tym - KeepAlive Off w vhoscie apaczowym Twoim przyjacielem.
On Tue, 13 Sep 2011 08:03:02 +0200, Jakub wrote:
Witam Przeszukałem listę znalazłem parę rozwiązań ale coś do końca mi nie działają. Zrobiłem tak:
- Przegrałem pliki ze squid_redirector na katalogu gdzie jest
virtualka na porcie 85 2. lms-makemessages tworzy regułki ktore przekierowują na ip_serwera:85 wyświetla się komunikat i jest ok. 3. w index.php dodałem wpis system("sudo /usr/sbin/iptables -t nat -D MESSAGES -p tcp -s ".$_SERVER['REMOTE_ADDR']." -j DNAT --to 10.0.1.1:85"); za linią DB->Execute('UPDATE nodes SET warning = 0 WHERE id = ?', array($nodeid)); Prawa dla www-data w sudo są nadane. Po potwierdzeniu przeczytania komunikatu nic się nie dzieje tak jak by ta sekcja cała nie działała if (isset($_GET['readed'])) { $DB->Execute('UPDATE nodes SET warning = 0 WHERE id = ?', array($nodeid)); system("sudo /usr/sbin/iptables -t nat -D MESSAGES -p tcp -s ".$_SERVER['REMOTE_ADDR']." -j DNAT --to 10.0.1.1:85"); header)'Location: '.$_GET ['oldurl']); } Jak wpiszę to na samym końcu czyli przed znakiem ?> system("sudo /usr/sbin/iptables -t nat -D MESSAGES -p tcp -s ".$_SERVER['REMOTE_ADDR']." -j DNAT --to 10.0.1.1:85"); to się wykonuje tylko nie zdąży pokazać komunikatu, bo kasuje przekierowanie :) Proszę o pomoc jak zrobić przekierowania. _______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
A sprawdz, czy uzytkownik, na ktorym dziala apache ma uprawnienia do sudo dla iptables...
W dniu 13.09.2011 08:03, Jakub pisze:
Ja robię redirecty w chainie :
hain INFOFORUSERS (77 references) pkts bytes target prot opt in out source destination 16 960 RETURN tcp -- eth0 any anywhere dedal.sky24.pl tcp dpt:www 245K 14M REDIRECT tcp -- eth0 any anywhere anywhere tcp dpt:www redir ports 91
a do chaina kieruję ruch w innym chainie
hain LISTAIP (1 references) pkts bytes target prot opt in out source destination 0 0 INFOFORUSERS tcp -- any any 207-312.sky24.pl anywhere
oczywiście mam też wpis:
Chain PREROUTING (policy ACCEPT 442M packets, 35G bytes) pkts bytes target prot opt in out source destination 292M 23G LISTAIP all -- eth0 any anywhere anywhere
KeepAlive off plus sleep na 10 sekund przed redirectem i działa pięknie
paweł
uczestnicy (6)
-
"D.Wesołowski"
-
Jakub
-
Marcin S.
-
Paweł Rohde
-
Sarenka
-
Tomasz Chiliński