Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Chciałbym zrobić pasek nagłówkowy który będzie się dodawał do każdej wyświetlanej strony internetowej, która została wyświetlona poprzez moją sieć która udziela dostępu do internetu. Wiem, że łatwym sposobem było by zastosowanie czegoś w stylu bramki proxy, ale to rozwiązanie za bardzo obciąży serwer. Więc wolał bym aby serwer dopisywał kawałek kodu HTML/PHP do każdej strony przechodzącej przez niego. Jakieś pomysły lub rozwiązania.
Offline
Jednak proxy, to chyba jedyne wyjście, po prostu bez proxy nie masz możliwości ingerować w transmisję w sposób inny, niż jakiś filtr, sniffer, czy IDS/IPS.
Jedno, co możesz zrobić, to ubić dane połączenie.
Po prostu sieć przesyła pakiety z punktu A do punktu B, nie zajmuje się natomiast modyfikowaniem kodu html, który w tych pakietach leci.
Taka zabawa, to przede wszystkim Squid, i oczywiście trochę rzeźbienia regułek.
Ostatnio edytowany przez Jacekalex (2013-09-06 12:17:15)
Offline
kuffa... to ma mieć zastosowanie w sieci bezprzewodowej....
chyba najrozsądniej będzie uruchomić to "proxy" na serwerze stacji bazowej... a nie na routerze brzegowym tak jak chciałem
edit.
ale jak by wykombinować to żeby ta bramka proxy była z każdą otwieraną stroną....
np. jak wpisze w chromie google.com
to proxy to przejmie i wyświetli to w bramce proxy..
is it possible?
Ostatnio edytowany przez blinki (2013-09-06 18:43:17)
Offline
a jak by dodać regułę aby przekierowywał każde zapytanie na porcie HTTP do strony umieszczonej na serwerze? tylko w jaki sposób przekazać adres wymaganej strony jako argument/zmienna ?
sry za double-post
Offline
Jak to jak, jeśli to Debian, to iptables -t nat...
tak samo, jak przekierowanie na Squida, a Squid w trybie transparentnego proxy.
Np:
iptables -A PREROUTING -t nat -i ethX -p tcp --dport 80 -j REDIRECT --to-port 3128
Sznurek: http://tldp.org/HOWTO/TransparentProxy-6.html
Albo DNAT na serwer proxy:
iptables -t nat -A PREROUTING -i ethX -p tcp --dport 80 -s {LOCALNET} -j DNAT --to-destination {SQUID_IP}:{SQUID_PORT}
Przykład praktyczny:
iptables -t nat -I PREROUTING -i nat -s 192.168.0.0/16 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.5:3128
Oczywiście Squid czeka na: 10.0.0.5:3128, a pacjenci łączą się z adresów 192.168.0.0/16
I nie musi być Squid, każdy serwer WW może tam wisieć, tylko wtedy pacjent nie zobaczy strony docelowej, tylko np ostrzeżenie.
Adres docelowej strony jest nagłówku przekazywanym przez przeglądarkę, np:
GET /phpinfo.php HTTP/1.1 Host: localhost:2564 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Connection: keep-alive
Na serwerze to są zmienne:
_SERVER["HTTP_HOST"] _SERVER["REQUEST_URI"]
To z phpinfo.
Jak potrzebujesz conieco więcej o zmiennych obecnych na serwerze www, to zajrzyj do dokumentacji mod_rewrite Apapcha
Jest jeszcze w Netfilterze moduł TPROXY, ale na razie nie miałem z nim nic wspólnego.
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2013-09-07 04:29:59)
Offline
szperając w internecie natknąłem się na coś takiego
http://stackoverflow.com/questions/2506236/squid-proxy-not-serving-modified-html-content
ale bardziej ciekawi mnie to ale do końca nie wiem jak to wykonać (gdzie się umieszcza taki skrypt etc.)
http://www.ex-parrot.com/~pete/upside-down-ternet.html
wiadomo napisał bym swój skrypt który by dodał blok kodu html.
Offline
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00096 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.16.47.89' WHERE u.id=1 |
0.00089 | UPDATE punbb_online SET logged=1732219837 WHERE ident='3.16.47.89' |
0.00043 | SELECT * FROM punbb_online WHERE logged<1732219537 |
0.00054 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=24198 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00208 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=24198 ORDER BY p.id LIMIT 0,25 |
0.00098 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=24198 |
Total query time: 0.00609 s |