Cum de a face transparente www-proxy

La un moment dat am descoperit că cea mai mare parte a traficului de intrare în rețeaua mea este WWW. În acest caz, clienții nu utilizați proxy, deși ar fi fost accelerat vizibil activitatea lor (raportul este lovit avem aproape 50%), și du-te prin toți clienții și de a îmbunătăți setările browser-lor, am avut nici o posibilitate (și dorința prea). Cred că astfel de probleme apar de multe ori cu ISP-ul, atunci când configurația corectă client este pur și simplu imposibil.

Squid'ovsky citit FAQ, am găsit o descriere a modului de a obține clienților să utilizeze în mod forțat proxy, problema a fost doar faptul că metoda propusă nu funcționează. Pe de altă parte, am știut că RadioMSU încă forțat să lucreze toți clienții lor prin proxy.

După consultarea tuturor a căzut în loc, iar decizia finală a fost făcută pentru câteva ore.

setări

pe Cisco

Ai nevoie să-și încheie toate pachetele de tranzit ech destinație 80 pe proxy. Acest lucru se face astfel:

Prevenirea bucle
lista de acces 101 neagă gazdă tcp 192.168.1.1 orice echiv 80
. Toți ceilalți clienți:
lista de acces 101 permis tcp 192.168.1.0 0.0.0.255 orice echiv 80
lista de acces 101 permis tcp 192.168.2.0 0.0.0.255 orice echiv 80
. Route-map
traseu harta forțat-proxy permis 10
meci ip i 101
set ip next-hop 192.168.1.1
!

interfețe:
. LAN
Interfață Ethernet 0
Politica de rutare IP-harta forțată-proxy
!
. dialup
interfață de grup-asincronă 1
grup-interval 16 ianuarie
Politica de rutare IP-harta forțată-proxy

Pe o mașină cu proxy

Primul lucru pe care trebuie să-și încheie până vine pe portul 80 de pachete la proxy. Presupunând că proxy-ul ruleaza pe portul 3128, acest lucru este ceva de genul:

ipnat -f - 192.168.1.1 portul 80
rdr ed0 0.0.0.0/0 portul 80 -> 192.168.1.1 portul 3128
MOA

Prima regulă permite locale WWW-server - aceasta va continua să primească saci lor. A doua linie va redirecționa toate celelalte pachete cu portul de destinație 80 la Squid locală.

În squid.conf scrisă de tipul de cusătură

httpd_accel www.your.domain 80
httpd_accel_with_proxy pe
httpd_accel_uses_host_header pe

Design-ul rezultat este de lucru pe un astfel de sistem (am desenat această imagine pentru aproximativ 10 minute, și, deși aici aproape nu au nevoie, nu dispar la fel de bun):

2.x calmar, această opțiune este prezentă atunci când rulați configurare -enable-IPF-transparente, astfel orice directive suplimentare nu au nevoie, este activată în mod implicit.

După toate aceste schimbări, totul funcționează fără un antet gazdă. Adevărul este o cerință pe care clientul a fost HTTP-1.x (nu HTTP / 0.9) rămâne, dar este HTTP / 0,9 clienti, eu într-adevăr nu au văzut.

potențiale probleme

Posibile probleme legate de pachete „prea mare“ ICMP-mesaje. Aici e chestia aici. Să presupunem că există o legătură cu un mic MTU între HTTP Proxy-și client, cu clientul și proxy locuiesc în mass-media cu o mare MTU. Imaginați-vă că proxy-ul începe să răspundă la client cu o anumită dimensiune a pachetului, care nu trece prin intermediul acestui link subtil. Ipnat substitut sursă-adresă în acest pachet la adresa IP a serverului la care este tratat clientul. În cazul în care pe cale de a satisface MTU este prea mic, atunci mesajul ICMP, se va lăsa la un www.microsoft.com, la care el nu a avut nevoie de ea.

tratamentul ideea este clar - înfășurați pe aceleași Cisco toate ICMP-pachetele la o gazdă cu un WWW-proxy, în cazul în care acestea au fost verificate pentru conformitate cu unele linii din tabelul de traducere ipnat, toate acestea sunt „greșite“, pentru a da direct locale TCP-stack, toate celelalte - pentru a trimite mai mult (deci poate înlocui sursa lor i pe orice stânga). Asta e teoria. Înainte de a practica, mâinile mele nu au atins încă plin de inutile - toți clienții mei au MTU 1500.

Alex Tutubalin

editorial

„Toate acestea sunt cu siguranță foarte cool - s-ar putea spune - dar tu știi, dacă, în țara noastră, spre deosebire de România prietenos vecin, FreeBSD cult sa răspândit atât de mult - noi toți“. Chysta pe Linux „Ce vom face cu aceste recomandări fac „?. Ai dreptate, dragă cititor :) Deci, fără a intra în detalii, am decis cherkanut câteva cuvinte despre aranjamentul de proxy-ul transparent pe Linux.

Presupunând că clienții dumneavoastră sunt, de asemenea, conectate la tsyske, toate descrise Alexei în această secțiune rămâne neschimbată. Pentru nucleele 2.0.x (luate de exemplu pentru 2.0.29 - atenție, cu alte nuclee pot fi nuanțe!) -

Pentru nucleele 2.2.x toate această economie va arăta astfel:
Punerea în practică a kernel-ul cu suport pentru următoarele:
[*] Firewall-uri de rețea
[] Socket Filtrare
[*] Prize de domeniu Unix
[*] TCP / IP networking
[] IP: multicasting
[] IP: router avansat
[] IP: nivelul kernel autoconfigurare
[*] IP: firewalling
[] IP: dispozitiv firewall pachet netlink
[*] IP: defragmenta întotdeauna (necesar pentru masquerading)
[*] IP: suport proxy transparent

/ sbin / ipchains -A intrare -p tcp -s 10.0.3.22/16 -d 0/0 80 -j REDIRECT 8081