Прозоре проксіювання http-трафіку з використанням протоколу wccp2

http-трафіку

Розглянемо прозоре проксіювання http-трафіку за допомогою протоколу wccp2, проксі-сервера squid3, debian 7.5. У GNS3 зібрав таку схему:

використанням
Схема

Докладно, як налаштовувати інтерфейси маршрутизатора, віртуальних машин можна прочитати у статті Дмитра. У схемі: fa0/1 маршрутизатора, XP, DEBIAN знаходяться в одній підмережі 10.0.0.0/25 XP (клієнт): 10.0.0.100 DEBAIN: 10.0.0.50 Fa 0/1: 10.0.0.1 Fa 0/0: 192.168.100.133 - інтерфейс для виходу в інтернет. Він у мене в бриджі з реальним інтерфейсом, який має доступ до Інтернету з віртуалізації.

Суть завдання: змусити хости в підмережі проксірувати http трафік прозоро. Як це працює: між squid і cisco створюється GRE-тунель, в який перенаправляється трафік, що проксується, з роутера. Цей трафік із тунелю загортається на порт squid. Далі squid проксує трафік і віддає його маршрутизатору та клієнту.

http-трафіку
Зображення із сайту Циски

Налаштування всього ланцюга вкрай просте. Для squid підійде ця найпростіша конфігурація:

wccp2_router 10.0.0.1 wccp2_forwarding_method 1 wccp2_return_method 1 wccp2_service standard 0 password=cisco http_port 3128 transparent acl manager proto cache_object 0. acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 acl localnet src 10.0.0.0/25 acl Safe_ports port 80 acl Safe_ports port 443 http_access allow manager localhost manager http_access deny !Safe_ports http_access allow localhost http_access allow localnet http_access deny all

cache_dir ufs /var/squid/cache 1024 16 256 refresh_pattern . 0 20% 4320

Заборонялки допилюються потім.

Налаштовуємо циско. Стосовно цієї теми, нас цікавлять рядки,помічені напівжирним шрифтом.

! версія 12.4 служба часових позначок налагодження datetime мсек служба часових позначок журнал дата час мсек без шифрування пароля служби ! ім'я хосту 2691 ! boot-start-marker boot-end-marker ! ! no aaa new-model memory-size iomem 5 no ip icmp rate-limit unreachableip wccp web-cache redirect-list WCCP_Redirect password cisco ip cef ! ! ! ! немає пошуку домену ip ip auth-proxy max-nodata-conns 3 ip admission max-nodata-conns 3 ! багатозв'язкове ім'я пакета автентифіковано ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! архів конфігурація журналу сховати ключі ! ! ! ! ip tcp synwait-time 5 ! ! ! ! інтерфейс FastEthernet0/0 ip-адреса 192.168.100.134 255.255.255.0 ip nat ззовні ip virtual-reassembly duplex auto speed auto ! інтерфейс FastEthernet0/1 ip-адреса 10.0.0.1 255.255.255.128ip wccp web-cache redirect in ip nat inside ip virtual-reassembly дуплексний автомат швидкісний автомат ! ip forward-protocol nd ip route 0.0.0.0 0.0.0.0 192.168.100.2 ! ! немає ip http-сервера немає ip-http безпечного сервера ip nat pool nat-1 192.168.100.134 192.168.100.134 netmask 255.255.255.0 ip nat внутрішній список джерел 10 пул nat-1 перевантаження !ip access-list standard WCCP_redirect deny 10.0.0.50 permit 10.0.0.0 0.0.0.128 ! список доступу 10 дозвіл 10.0.0.0 0.0.0.255 ! ! ! ! ! ! рівень управління ! ! ! ! ! ! ! ! ! ! line con 0 exec-timeout 0 0 рівень привілеїв 15 реєстрація синхронна line aux 0 exec-timeout 0 0 рівень привілеїв 15 реєстрація синхронна line vty 0 4 увійти ! ! end

Після всього сам піднімається тунель. Відповідні рядки можемо побачити у консолі циско.

У debian дивимося таке: #Iptunnel show

Повинно показати: gre0: gre/ip remote any local any ttl inherit nopmtudisc

#ifconfig gre0 10.2.0.50 up

Запишемо одразу параметр в /etc/network/interfaces # Цей файл наведено в мережі interfaces available on your system # and how to activate them. For more information, see interfaces(5).

# The loopback network interface auto lo iface lo inet loopback

# The primary network interface #allow-hotplug eth0 #iface eth0 inet dhcp

auto eth1 iface eth1 inet static address 10.0.0.50 netmask 255.255.255.128 gateway 10.0.0.1

auto gre0 iface gre0 inet static address 10.2.0.50 netmask 255.255.255.128

Встановіть tcpdump, послухайте трафік на інтерфейсі gre0. Спробуйте відкрити щось у браузері клієнта. Якщо трафік є, значить залишилася зовсім небагато - завернути його на проксі squid.

А робиться так: #iptables –t nat –A PREROUTING –i gre0 –p tcp –dport 80 –j REDIRECT –to-ports 3128