Пост
Hello :)

Работа

-

Организация сети Catalyst + (ASA + Squid по WCCP)

Появилась задача: учет, анализ и контроль интернет трафика 880 машин, и всё что висит на Wifi ...

 

В наличии:

1) Cisco ASA 
2) 4 Cisco Catalyst 
3) Cisco Wireless 
4) HP Server с Hyper-V

 

Алгоритм такой: 3 Catalyst'а и Cisco Wireless подключается к главному Catalyst'у он шлюз, всё разделяются по VLAN, далее выход в интернет заворачивается на Cisco ASA. Для контроля доступа всех пользователей решил создать на сервере виртуальную машину, из операционных систем выбрал любимую CentOS.

 

 

Получилась связка Squid + Squidguard + lightsquid + sqstats + немного коддинга. Соединить Squid и ASA получится только через WCCP, так и решил поступить...

 

 

 

1) Настройка ASA:


Cisco ASA имеет адрес 10.10.88.1, CentOS – 10.10.10.222.

Создал 2 группы, в первой adminstrators_pc указал админский IP, который не будет ходить через прокси, во воторой всю сеть которую покрываем прозрачным прокси сервером.

object network adminstrators_pc host 10.10.10.111

object network local_network subnet 10.10.0.0 255.255.0.0

Правила, какой группе что разрешам:

access-list redirect_to_squid extended deny tcp object adminstrators_pc any eq www

access-list redirect_to_squid extended permit tcp object local_network any eq www

Активация WCCP:

wccp web-cache redirect-list redirect_to_squid password serjkz (Пароль нужен чтобы соединится со сквидом)

wccp interface inside web-cache redirect in

 

 

2) Настройка SQUID:

 

http_port 3128 transparent // Порт прокси

wccp2_router 10.10.88.1 //адрес ASA

wccp2_forwarding_method 1

wccp2_return_method 1

wccp2_service standard 0 password=serjkz

 

 

3) Настройка CentOS:

 

Далее на CeontOS создаём gre туннель: 

 

ip tunnel add wccp0 mode gre remote 89.XXX.XXX.XXX local 10.10.10.222 dev eth1 (89.XXX.XXX.XXX - внешний IP ASA, eth1 - название интерфейса)
ifconfig wccp0 10.10.10.222 netmask 255.255.255.255 up

 

 

Заворачиваем весь трафик поступающий по WCCP в прокси сервер:


iptables -t nat -A PREROUTING -i wccp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.10.10.222:3128

 

Дебаг проверки:

 

 

 

Далее в Squid уже разделяю подсети, ставлю пулами ограничения на максимальную скорость скачивания:

 

delay_access 1 allow speedclients
delay_access 1 deny all

delay_access 2 allow badspeedclients
delay_access 2 deny all

delay_parameters 1 -1/-1 -1/-1

delay_parameters 2 -1/-1 320000/320000

 

 

3) Настройка Squidguard:

 

dest block_regexp_video {
expressionlist default/block_regexp_video/expressions
redirect http://sec.akb.nis.edu.kz/page-error/block.mp4
}


(.*/([^/]+).mp4.*)
(.*/([^/]+).flv.*)
(.*/([^/]+).avi.*)
(.*/([^/]+).wmv.*)
(.*/([^/]+).mpeg.*)
(.*/([^/]+).mkv.*)

 

Для блокировки рекламы составил регулярки типа:

 

(^([0-9A-z-.]+.)?am([0-9]+).(ru|net|com).*)... блочить всё одним пикселем.

Получается что-то вроде этого:

 

 

 

Для сбора статистики использую Lightsquid немного изменённый мной:

 

 

 

 

 

 

Далее, для просмотра онлайн скачиваний использую sqstats (пришлось немного переписывать для разделения сетей):

 

 

Незначительная нагрузка:

 

 

  • Serj, 15 июня 2013
2 комментария
Avatar
  1. Нуржигит Муханов
    Нуржигит Муханов
    1 октября 2013 00:22
    еееее
  2. Михаил Конотопец
    Михаил Конотопец
    18 июля 2013 06:25
    привет Сергей ! предлагаю тебе познакомиться с оборудованием ubnt,такие как rocket и bullet! если интересно пиши =)

© SERJ.WS 2011-2021