Как да си направим прозрачен WWW-прокси

В един момент аз открих, че повечето от входящ трафик по мрежата ми е WWW. В този случай клиентите не използват пълномощник, въпреки че щеше да бъде значително ускорена работата им (съотношение хит е ние имаме почти 50%), и минават през всички клиенти и подобряване на настройките на браузърите си, нямах възможност (и желание също). Мисля, че такива често възникват проблеми с доставчика на интернет, когато правилната конфигурация на клиента е просто невъзможно.

Squid'ovsky четене на често задавани въпроси, намерих описание на това как да се получи на клиентите да използват принудително пълномощника, проблемът е само, че предложеният метод не работи. От друга страна, аз знаех, че все още RadioMSU принудени да работят всички свои клиенти чрез пълномощник.

След консултация всичко си дойде на мястото и е направено окончателното решение за няколко часа.

настройки

на Cisco

Вие трябва да приключи всички транзитни пакети дестинация екв 80 от пълномощник. Това се прави по следния начин:

Предотвратяване на електрически вериги
достъп списъка 101 отрече TCP хост 192.168.1.1 всяка екв 80
. Всички други клиенти:
достъп списък 101 разрешение TCP 192.168.1.0 0.0.0.255 всеки екв 80
достъп списък 101 разрешение TCP 192.168.2.0 0.0.0.255 всеки екв 80
. Route-карта
маршрут-карта принуден-прокси разрешение 10
мач IP аз 101
SET IP следващия-хоп 192.168.1.1
!

интерфейси:
. LAN
интерфейс Ethernet 0
IP политика маршрут-карта принуден-прокси
!
. Dialup
интерфейс Група-асинхронен 1
група обсег 16 януари
IP политика маршрут-карта принуден-прокси

На една машина с прокси

Първото нещо, което трябва да приключи до идва на порт 80 пакетчета с прокси. Ако приемем, че пълномощникът работи на порт 3128, това е нещо като:

ipnat -f - 192.168.1.1 порт 80
RDR ed0 0.0.0.0/0 порт 80 -> 192.168.1.1 порт 3128
МНИ

Първото правило позволява местната WWW-сървър - тя ще продължи да получава багажа си. Вторият ред ще пренасочи всички други пакети с дестинация порт 80 до местния Калмар.

В squid.conf написана от типа на шевове

httpd_accel www.your.domain 80
httpd_accel_with_proxy на
httpd_accel_uses_host_header на

Получената дизайн работи по такава схема (I привлече тази снимка за около 10 минути, и въпреки, че тук почти не се нуждаят, не изчезват толкова добър):

В калмари 2.x, тази функционалност е налице, когато стартирате конфигуриране -enable-ИПФ-прозрачна, по този начин всички допълнителни директиви не се нуждаят от това е активирана по подразбиране.

След всички тези промени, всичко работи без глава домакин. Истината е изискване, че клиентът е HTTP-1.x (не HTTP / 0.9) остава, но това е HTTP / 0.9 клиенти, аз наистина не съм виждал.

потенциални проблеми

Възможни проблеми "пакет е твърде голям" на ICMP-съобщения. Ето нещо, което тук. Да кажем, че има връзка с малка MTU между HTTP-прокси сървър и клиент, с клиента и пълномощника живеят в медиите с голям MTU. Представете си, че пълномощникът започва да реагира на клиента с определен размер на пакета, който не получава чрез процедура фините връзка. Ipnat заместител източника адрес в този пакет до IP-адреса на сървъра, към който се третира клиента. Ако по пътя да се срещнат на MTU е твърде малък, а след това съобщението ICMP, тя ще остави в някакъв www.microsoft.com, на което той не се нуждаят от нея.

лечение на идеята е ясна - увиване на същите Cisco всички ICMP-пакетите към хост с WWW-пълномощник, в които са били проверени за съответствие с някои ред от таблицата за превод Ipnat, всички от които са "погрешно" да се даде директно към местното на TCP-стека, всички останали - да изпрати повече (по този начин може да замени техния източник и на който и да е в ляво). Това е теорията. Преди да практикуват, ръцете ми все още не са достигнали, пълни с безполезна - всичките ми клиенти имат MTU 1500.

Алекс Tutubalin

редакционна

"Всичко това със сигурност е много готино - може да се каже - но нали знаете, ако, в нашата страна, за разлика от съседна приятелска България, FreeBSD култ се е разпространил толкова широко - всички ние". Chysta на Linux "Какво ще правим с тези препоръки се направи "?. Прав си, драги читателю :) Така че, без да навлиза в подробности, реших cherkanut няколко думи за подредбата на прозрачно пълномощно на Linux.

Ако приемем, че Вашите клиенти също са свързани с tsyske, всичко е описано в този раздел Алексей остава непроменен. За ядрата 2.0.х (взет от примера за 2.0.29 - внимателно, с други ядра може да бъде нюанси!) -

За 2.2.x ядки цялата икономика ще изглежда така:
Поставянето на ядрото с поддръжка на следното:
[*] Мрежови защитни стени
[] Цокъл Филтриране
[*] Гнезда Unix домейни
[*] TCP / IP мрежа
[] IP: множествено предаване
[] IP: напреднал рутер
[] IP: автоматичната конфигурация ниво ядро
[*] IP: защитни стени
[] IP: защитна стена пакет Netlink устройство
[*] IP: винаги дефрагментира (необходим за маскиране)
[*] IP: прозрачен прокси подкрепа

/ Sbin / грсНата -А вход -p TCP -s 10.0.3.22/16 -d 0/0 80 -j REDIRECT 8081