Прозрачно проксииране на http трафик чрез wccp2 протокол

Нека да разгледаме проксито за прозрачен 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 Интернет достъп. Имам го в бридж с реален интерфейс, който има достъп до интернет от виртуализация.
Същността на задачата: да се принудят хостовете в подмрежата да проксиират http трафика прозрачно. Как работи: между squid и cisco се създава GRE тунел, към който се пренасочва прокси трафикът от рутера. Този трафик от тунела е обвит в порта на squid. Освен това squid проксира трафика и го предава на рутера и клиента.

Настройката на цялата верига е изключително проста. За 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 acl localhost src 127.0.0.1/32 acl към _localhost dst 127.0.0.0/8 0.0.0.0/32 acl localnet src 10.0.0.0/25 acl Safe_ports порт 80 acl Safe_ports порт 443 http_access разреши мениджър localhost http_access deny мениджър http_access deny !Safe_ports http_ достъп разреши локален хост http_access разреши локална мрежа http_access забрани всички
cache_dir ufs /var/squid/cache 1024 16 256 refresh_pattern . 0 20% 4320
Забраните се добавят по-късно.
Настройте cisco. По отношение на тази тема, ние се интересуваме от редовете,отбелязани полужирен шрифт.
! версия 12.4 отстраняване на грешки в времеви клейма на услугата дата и час мсек дневник на времеви клейма на услуга дата и час мсек няма шифроване на парола за услуга ! име на хост 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 парола 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 уеб-кеш пренасочване в ip nat вътре ip виртуално повторно сглобяване duplex auto speed auto ! 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 мрежова маска 255.255.255.0 ip nat в списъка с източници 10 pool nat-1 претоварване !ip достъп-списък стандарт 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 logging synchronous line aux 0 exec-timeout 0 0 privilege level 15 logging synchronous line vty 0 4 login ! ! край
В крайна сметка самият тунел се издига. Можем да видим съответните редове в конзолата на Cisco.
В debian вижте следното: #Iptunnel show
Трябва да показва: gre0: gre/ip remote any local any ttl inherit nopmtudisc
#ifconfig gre0 10.2.0.50 нагоре
Запишете параметъра в /etc/network/interfaces # Този файл описва мрежовите интерфейси, налични на вашата система # и как да ги активирате. За повече информация вижте интерфейси (5).
# Мрежовият интерфейс за обратна връзка auto lo iface lo inet loopback
# Основният мрежов интерфейс #allow-hotplug eth0 #iface eth0 inet dhcp
auto eth1 iface eth1 inet статичен адрес 10.0.0.50 мрежова маска 255.255.255.128 шлюз 10.0.0.1
auto gre0 iface gre0 inet статичен адрес 10.2.0.50 мрежова маска 255.255.255.128
Сложете tcpdump, слушайте трафика на интерфейса gre0. Опитайте да отворите нещо в браузъра на клиента. Ако има трафик, тогава остава само малко - да го включите на squid proxy.
И това се прави по следния начин: #iptables –t nat –A PREROUTING –i gre0 –p tcp –dport 80 –j REDIRECT –to-ports 3128