FreeBSD+Cisco+WCCP2+Squid

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
berserkdeep
рядовой
Сообщения: 24
Зарегистрирован: 2008-03-21 13:08:01
Контактная информация:

FreeBSD+Cisco+WCCP2+Squid

Непрочитанное сообщение berserkdeep » 2011-03-10 6:58:00

Задача поставлена редеректить пользователей на спец страницу по истечению определенного лимита, ну и писать в лог кто куда ходит или резать всякое социальное зло по типу однотабуреточники. Пользователи терменируются на роутере в главных ролях которого cisco 7206. В роли палача веб трафика будет Squid под чутким руководством FreeBSD.


Настроим Cisco
у меня это Cisco IOS Software Version 12.2(33)SRC6
ip wccp web-cache redirect-list test password 7 *****
где redirect-list test это acl в котором надо запретить прямое обращение к freebsd
ip access-list standard test
deny IP.freebsd.mashine
permit any
и password 7 **** собственно пароль для авторизации squid`a

теперь надо на итерфейсе через который топают пользователи добавить
ip wccp web-cache redirect in
С настройкой Cisco закончили

Теперь настроим FreeBSD 7.3

Включаем firewall и форвард пакетов, добавим и скомпилируем ядро с параметрами
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPFIREWALL_FORWARD
options IPFIREWALL_NAT
options LIBALIAS

options IPDIVERT
options IPSTEALTH
options DUMMYNET
установим Squid 2.7
/usr/ports/www/squid

с доп модулями
[X] SQUID_WCCPV2 Enable Web Cache Coordination Prot. v2
[X] SQUID_IPFILTER Enable transp. proxying with IPFilter
минимальный конфиг для сквида
http_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
установим SquidGuard
/usr/ports/www/squidguard

Он понадобиться для манипуляций с веб трафиком

У меня задача была на первом этапе редиректить все попавшие пакеты определенных IP на определеную страницу.
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
}
}
после манипуляций с файлами и конфигами squidguard надо ему права пользователя выставлять, иначе все работать будет через опу
squidGuard -d -C all
chown -R squid:squid /var/db/squidGuard/
Создадим Gre тунели для Заворота трафика с Cisco
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
где 10.20.30.40 фейковый адрес, но он необходим

Завернем входящий трафик с 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 клиента в заголовке пакета. Пакет возвращается с внешнего мира уже минуя сквид к клиенту. Трафик получается асинхронный. На гре туннеле вы увидите только входящие пакеты.
мой игровой портал www.paynd.ru

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35118
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: FreeBSD+Cisco+WCCP2+Squid

Непрочитанное сообщение Alex Keda » 2011-03-25 12:49:51

а что не работает-то?
Убей их всех! Бог потом рассортирует...

berserkdeep
рядовой
Сообщения: 24
Зарегистрирован: 2008-03-21 13:08:01
Контактная информация:

Re: FreeBSD+Cisco+WCCP2+Squid

Непрочитанное сообщение berserkdeep » 2011-03-25 13:05:36

все работает
мой игровой портал www.paynd.ru

гость
проходил мимо

Re: FreeBSD+Cisco+WCCP2+Squid

Непрочитанное сообщение гость » 2012-02-07 14:38:39

отправляется на назначенный хост с IP клиента в заголовке пакета. Пакет возвращается с внешнего мира уже минуя сквид к клиенту
А это работает только при WCCP? Потому что настроив без него squid подменяет на свой адрес.

f1nka
проходил мимо
Сообщения: 7
Зарегистрирован: 2012-06-01 10:22:54

Re: FreeBSD+Cisco+WCCP2+Squid

Непрочитанное сообщение f1nka » 2012-06-01 11:47:36

Народ помогите, не могу понять в какую сторону копать уже.При поднятии gre тунеля пропадает досту по 80 порту в инет.
Я не могу понять где у меня этот порт закрыть, по идее squid настраивался как прозрачный
вот rc.firewall #!/bin/sh
NET_IF="gre1"
IPFW="/sbin/ipfw -q"

$IPFW -f flush
$ipfw add fwd 127.0.0.1,3128 tcp from any to any 80 via gre1 in
$ipfw add fwd 127.0.0.1,3128 tcp from any to any 80 via ae0 in
$ipfw pass all from any to any такое подозрение, что трафик не перенаправляется на gre интерфейс, tcpdump на gre1 подтверждает это. Сам squid.conf

# created by SAMS _sams_ 2012-6-1 0:12:10
http_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 10.8.0.1
wccp2_rebuild_wait on
wccp2_forwarding_method 1
wccp2_assignment_method 1
wccp2_return_method 1
#wccp2_service standard 0 password=1234567
wccp2_service standard 0
#url_rewrite_program /usr/local/bin/squidGuard ##Заворот на сквид гуард
wccp2_address 0.0.0.0
#wccp_version 4

#access_log /var/log/squid/access.log squid

acl all src 0.0.0.0/0.0.0.0
http_access allow all Может есть у кого мысли