понедельник, 20 декабря 2010 г.

CISCO + WCCP + SQUID Прозрачный прокси

 Ниже приведены конфигурации используемые мной для настройки и тестирования wccp
 Кратко о wccp читаем тут, о настройках wccp в CISCO здесь

 Настройки Cisco 871
 Приведены настройки только касаемо wccp
  ip wccp web-cache redirect-list wccp

  ip access-list extended wccp
    deny ip host 192.168.202.50 any (исключаем сам squid что бы не зациклилось)
    permit tcp 192.168.202.0 0.0.0.255 any (можно создать более строгое правило с указанием того что заворачиваем только http трафик)
    deny ip any any

interface Vlan1
    description $ETH-SW-LAUNCH$$INTF-INFO-HWIC 4ESW$
    ip address 192.168.202.49 255.255.255.0
    ip wccp web-cache redirect in (перенаправлять на кеш сервер все пакеты входящие на интерфейс)
    ip nat inside
    ip virtual-reassembly

Настройки FREBSD
Конфигурация Squid
http_port 3128 transparent
# WCCPv1 AND WCCPv2 CONFIGURATION OPTIONS
# -----------------------------------------------------------------------------
wccp2_router 192.168.202.49
wccp_version 4
wccp2_forwarding_method 1
#Для GRE
wccp2_return_method 1
wccp2_assignment_method 1
wccp2_service_standard 0

# Для L2 method
wccp2_forwarding_method 2
wccp2_return_method 2




Насройка ipwf
Создаем скрипт и размещаем его в директории /usr/local/etc/rc.d/
#!/bin/sh
fwcmd="/sbin/ipfw "
${fwcmd} add 00440 allow tcp from 192.168.202.50 to any
${fwcmd} add 00450 fwd 127.0.0.1,3128 tcp from any to any 80

Настрйока GRE тунеля

Тунель надо поднимать только со строны кеш сервера.
Скрипт также сохраняем в /usr/local/etc/rc.d/
#!/bin/sh
sleep 2
kldload /boot/kernel/if_gre.ko
ifconfig gre0 create
ifconfig gre0 tunnel 192.168.202.50 192.168.202.49
ifconfig gre0 172.44.1.2/32 172.44.1.1 netmask 255.255.255.252
ifconfig gre0 up
ifconfig gre0 link2 (у меня заработало с link2, многие пишут что у них работает с link1)

Настройка на PFSense
Еще один вариант, если вам хочется красивого web-интерфейса и лень конфигурить фрю вручную, можно использовать pfSense

При использовании одного wan интерфейса

   1. Через меню Interfaces -> assign настраиваем GRE tunnel через WAN интерфейс на внутренний адрес CISCO. Существует вариант когда необходимо настроить туннель на внешний адрес.
  2. Создаем шлюз по умолчанию через меню System -> Routing, шлюзом выступает наш роутер с включенным wccp web-cache redirect
   3. Устанавливаем в свойствах интерфейса wan созданный нами шлюз как дефолтный
   4. Устанавливаем squid через System->Packages
   5. Настраиваем Squid Services -> Proxy:

    Proxy interface -WAN (так как других и нет в принципе)
    Transparent Proxy - ставим галочку
    Enable logging  - ставим галочку
    Log store directory /var/squid/log

  Custom Option :
        wccp2_router 192.168.202.49;
        wccp_version 4;
        wccp2_forwarding_method 1;
        wccp2_return_method 1;
        wccp2_assignment_method 1;
        wccp2_service_standard 0;

1 комментарий:

Alexander Yershov комментирует...

Доброго времени суток!
В Custom options неверно указан параметр wccp2_service
Одно нижнее подчеркивание лишнее, верным будет wccp2_service standart 0

А в остальном, спасибо за статью!