Появилась задача: учет, анализ и контроль интернет трафика 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 (пришлось немного переписывать для разделения сетей):

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


Теги: ASA, Squid, Catalyst, Cisco, Hyper, WCCP, CentOS, Squid, Squidguard, Lightsquid, Sqstats, Wifi, Wireless, ASDM
Добавить в:
|