Настроим Cisco
у меня это Cisco IOS Software Version 12.2(33)SRC6
где redirect-list test это acl в котором надо запретить прямое обращение к freebsdip wccp web-cache redirect-list test password 7 *****
и password 7 **** собственно пароль для авторизации squid`aip access-list standard test
deny IP.freebsd.mashine
permit any
теперь надо на итерфейсе через который топают пользователи добавить
С настройкой Cisco закончилиip wccp web-cache redirect in
Теперь настроим FreeBSD 7.3
Включаем firewall и форвард пакетов, добавим и скомпилируем ядро с параметрами
установим Squid 2.7options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPFIREWALL_FORWARD
options IPFIREWALL_NAT
options LIBALIAS
options IPDIVERT
options IPSTEALTH
options DUMMYNET
/usr/ports/www/squid
с доп модулями
минимальный конфиг для сквида[X] SQUID_WCCPV2 Enable Web Cache Coordination Prot. v2
[X] SQUID_IPFILTER Enable transp. proxying with IPFilter
установим SquidGuardhttp_port 127.0.0.1:3128 transparent
cache_mem 50 MB
maximum_object_size 16000 kb
forwarded_for on
visible_hostname wccp server
wccp2_router IP.Cisco.router ## Кстати сюда можно через пробел дописать еще IP роутеров если они у вас есть, ну и конечно надо будет повторить настройки по типу ger2, gre3 etc.
wccp2_rebuild_wait on
wccp2_forwarding_method 1
wccp2_assignment_method 1
wccp2_return_method 1
wccp2_service standard 0 password=***** ##пароль для авторизации на Cisco
url_rewrite_program /usr/local/bin/squidGuard ##Заворот на сквид гуард
access_log /var/log/squid/access.log squid
acl all src 0.0.0.0/0.0.0.0
http_access allow all
/usr/ports/www/squidguard
Он понадобиться для манипуляций с веб трафиком
У меня задача была на первом этапе редиректить все попавшие пакеты определенных IP на определеную страницу.
после манипуляций с файлами и конфигами squidguard надо ему права пользователя выставлять, иначе все работать будет через опуsource ban {
ip *IP адреса жертв* ## можно всех под нож вот так 0.0.0.0/0
}
acl {
ban {
pass none
redirect http://www.****.ru/nomoney.html
}
default {
pass none
redirect http://www.*****.ru
}
}
Создадим Gre тунели для Заворота трафика с CiscosquidGuard -d -C all
chown -R squid:squid /var/db/squidGuard/
где 10.20.30.40 фейковый адрес, но он необходимifconfig gre0 create
ifconfig gre0 IP.freebsd.mashine 10.20.30.40 netmask 255.255.255.255 link2 tunnel IP.freebsd.mashine IP.Cisco.router
Завернем входящий трафик с Cisco на сквид
собственно это все, все конфиги взяты с рабочей схемы... В рабочем режиме на сиске можно увидеть колво пакетов направлены в гре тунельipfw add 1020 fwd 127.0.0.1,3128 ip from any to any 80 via gre0 in
В двух словах описать работу можно так:sh ip wccp web-cache detail
WCCP Client information:
WCCP Client ID: IP.freebsd.mashine
Protocol Version: 2.0
State: Usable
Redirection: GRE
Packet Return: GRE
Assignment: HASH
Initial Hash Info: 00000000000000000000000000000000
00000000000000000000000000000000
Assigned Hash Info: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Hash Allotment: 256 (100.00%)
Packets s/w Redirected: 2530
Connect Time: 2d16h
Bypassed Packets
Process: 0
CEF: 0
Errors: 0
Пакет Http (cisco не редиректит https) попавший на интерфейс Cisco отправляется по гре тунелю на freebsd, где фаерволом форвардится на порт 3128 squid`a, squid по правилам acl решает что с ним делать (у меня подставляется страница), а в принципе в прозрачном режиме запрос просто регистрируется(кешируется) и отправляется на назначенный хост с IP клиента в заголовке пакета. Пакет возвращается с внешнего мира уже минуя сквид к клиенту. Трафик получается асинхронный. На гре туннеле вы увидите только входящие пакеты.