кеширующий Squid-как сделать контроль за юзерами и трафиком
кеширующий Squid-как сделать контроль за юзерами и трафиком
Вообщем в заголовке и есть суть вопроса. Есть прокси сервер в др. сети. поднимаю у себя прокси (кеширующий как я понимаю) сервер. Надо котролировать кто сколько и откуда скачал и сделать ограничение на размер скачиваемого трафика за месяц.
Или можно это сделать через NAT ?
Подскажите пожалуйста !!!
Или можно это сделать через NAT ?
Подскажите пожалуйста !!!
В свое время нарвался на эту статейку (осталась только на компе, поэтому не бросаю линк)
/**************************
За контроль "толщины" канала для разных пользователей в прокси-сервере
SQUID отвечает параметр DELAY POOLS.
Вот вкратце принцип работы. Например любят пользователи качать mp3. А админа это ну просто нож по горлу. Итак что делает админ. Админ настраивает acl для файлов mp3 и указывает, что для acl mp3, толщина канала при скачивании обычных файлов = максимальна, а при скачивании файлов mp3 - 200байт например. Самое замечательное, что пользователь по прежнему может качать, но вот захочет ли?.. ..
немного о delay_pools
насколько я понимаю, они бывают трех классов.
1 класс - для отдельно взятых хостов.
2 класс - для небольших подсетей
3 класс - большие сети из нескольких подсетей
а теперь как это сделано в /etc/squid.conf (я указываю только параметры имеющие непосредственное отношение к теме)
# определим acl для mp3
acl mp3 urlpath_regex -i \.mp3$
# определим delay_pools
# у меня в офисе будет всего два delay_pools
delay_pools 2
delay_class 1 1 # первый из них - первого класса
delay_class 2 2 # а вот второй - второго класса (для подсетей)
# первая цифра - это класс пула
# вторая цифра - это номер пула
delay_access 2 allow office # тут я разрешаю пользователям моего
# офиса (описанного ранее в ACL office
# сидеть в инете через третий
# delay_pools
delay_access 2 deny all # а всем остальным я это запрещаю
delay_parameters 2 20000/20000 4500/4500
# здесь -
# 20000/20000 - толщина канала для всей подсети office
# 4500/4500 - столько я разрешил каждому конкретному
# хосту из этой подсети
delay_access 1 allow mp3 # в этот dalay_pool впускаем только то
# что попадает под ACL mp3
delay_access 1 deny all # всем остальным запретим
delay_parameters 1 200/3000 # опс, а тут я сделал забавную вещь.
# как только пользователь качающий mp3 попросит для себя объем
# превышающий 3000байт, скорость передачи данных для него сразу # упадет до 200байт/сек.
Вот собственно и все. Вообще это только простейщий пример написанный на коленке за 10 минут. В файле /etc/squid.conf это подробнейшим образом расписано и приведены даже примеры. Финты с помощью ACL и DELAY_POOLS можно делать очень забавные.
примечание: если вы это будете утаскивать в свой файл squid.conf,
будьте внимательны с комментариями. я не старался писать так как
это требуется в squid.conf (не везде стоят # )...
Написано Димкой Герасимовым
*********************/
см. opennet ключ squid, там по твоей теме инфы достаточно
/**************************
За контроль "толщины" канала для разных пользователей в прокси-сервере
SQUID отвечает параметр DELAY POOLS.
Вот вкратце принцип работы. Например любят пользователи качать mp3. А админа это ну просто нож по горлу. Итак что делает админ. Админ настраивает acl для файлов mp3 и указывает, что для acl mp3, толщина канала при скачивании обычных файлов = максимальна, а при скачивании файлов mp3 - 200байт например. Самое замечательное, что пользователь по прежнему может качать, но вот захочет ли?.. ..
немного о delay_pools
насколько я понимаю, они бывают трех классов.
1 класс - для отдельно взятых хостов.
2 класс - для небольших подсетей
3 класс - большие сети из нескольких подсетей
а теперь как это сделано в /etc/squid.conf (я указываю только параметры имеющие непосредственное отношение к теме)
# определим acl для mp3
acl mp3 urlpath_regex -i \.mp3$
# определим delay_pools
# у меня в офисе будет всего два delay_pools
delay_pools 2
delay_class 1 1 # первый из них - первого класса
delay_class 2 2 # а вот второй - второго класса (для подсетей)
# первая цифра - это класс пула
# вторая цифра - это номер пула
delay_access 2 allow office # тут я разрешаю пользователям моего
# офиса (описанного ранее в ACL office
# сидеть в инете через третий
# delay_pools
delay_access 2 deny all # а всем остальным я это запрещаю
delay_parameters 2 20000/20000 4500/4500
# здесь -
# 20000/20000 - толщина канала для всей подсети office
# 4500/4500 - столько я разрешил каждому конкретному
# хосту из этой подсети
delay_access 1 allow mp3 # в этот dalay_pool впускаем только то
# что попадает под ACL mp3
delay_access 1 deny all # всем остальным запретим
delay_parameters 1 200/3000 # опс, а тут я сделал забавную вещь.
# как только пользователь качающий mp3 попросит для себя объем
# превышающий 3000байт, скорость передачи данных для него сразу # упадет до 200байт/сек.
Вот собственно и все. Вообще это только простейщий пример написанный на коленке за 10 минут. В файле /etc/squid.conf это подробнейшим образом расписано и приведены даже примеры. Финты с помощью ACL и DELAY_POOLS можно делать очень забавные.
примечание: если вы это будете утаскивать в свой файл squid.conf,
будьте внимательны с комментариями. я не старался писать так как
это требуется в squid.conf (не везде стоят # )...
Написано Димкой Герасимовым
*********************/
см. opennet ключ squid, там по твоей теме инфы достаточно
Спасибо за ответ - помогло. Но выявил др. проблему.
1-ый раз ввожу страницу - грузится, если сделать "Обновить" - больше не только она но и другие стрницы не загружаются.
Пишет в ошибке - превысило время ожидания.
Хотя web сервер, кот. стоит в др. сети за моим фаерволом грузится без проблем, не загружаютяс только интернет страницы через parent прокси. В чём дело не пойму. Может сделать редирект 80 порта на 3128 на моём фаерволе где и стоит мой прокси?
1-ый раз ввожу страницу - грузится, если сделать "Обновить" - больше не только она но и другие стрницы не загружаются.
Пишет в ошибке - превысило время ожидания.
Хотя web сервер, кот. стоит в др. сети за моим фаерволом грузится без проблем, не загружаютяс только интернет страницы через parent прокси. В чём дело не пойму. Может сделать редирект 80 порта на 3128 на моём фаерволе где и стоит мой прокси?
-
- Маньяк
- Сообщения: 179
- Зарегистрирован: 27 май 2002, 16:04
- Откуда: Moscou
- Контактная информация:
Пацаны!
Я Squid запускаю так:
/usr/local/squid/sbin/squid
Но иногда необходимо заново его перезапустить, например когда squid.conf изменю.
Каким макаром можно его перезапустить не перезагружая машину.
У меня SQUID-2.5Stable3.Ставил из исходников. Если это имеет значение
Большое вам человеческое merci!
Учись или уходи!
Кстати по моему а не SNAT надо использовать в данном случае?
Просто c ftp пока не разобрался как делать, через DNAT или SNAT? Надо ли прописывать его в две стороны как в случае с FORWARD или одной строчки достаточно. Пока в голове не уложилось.
Вышеприведённую строчку завтра попробую и напишу. Просто обидно всё так шустро качалось пока не нажал на "Обновить".
Просто c ftp пока не разобрался как делать, через DNAT или SNAT? Надо ли прописывать его в две стороны как в случае с FORWARD или одной строчки достаточно. Пока в голове не уложилось.
Вышеприведённую строчку завтра попробую и напишу. Просто обидно всё так шустро качалось пока не нажал на "Обновить".
Boris FR писал(а):
Пацаны!
Я Squid запускаю так:
/usr/local/squid/sbin/squid
Но иногда необходимо заново его перезапустить, например когда squid.conf изменю.
Каким макаром можно его перезапустить не перезагружая машину.
У меня SQUID-2.5Stable3.Ставил из исходников. Если это имеет значение
Большое вам человеческое merci!
man 8 squid писал(а): SYNOPSIS
/usr/sbin/squid [-hsvzCDFNRSVXY] [-d level] [-f file]
[-[au] port] [-k signal]
..........
-k reconfigure|rotate|shutdown|interrupt|kill|debug|check|parse
Send signal to running copy (except -k parse) and
exit.
.....
Вы будете смеятся - но не работает!!!
Вставил я данные строчки в squid.conf
Получилось - загружает первую страницу далее то же что и было:
Squid пишет:
Произошла следующая ошибка:
Невозможно переслать запрос в настоящий момент.
Этот запрос не может быть переслан на сервер-источник либо на вышестоящий кэш-сервер. Наиболее вероятная причина ошибки:
Администратор этого сервера запретил прямые соединения с серверами-источниками и
Все вышестоящие кэш-сервера в текущий момент недоступны.
Хотя я запускал squid и без iptables - результат тот же.
Помогите пожалуйта, в чём может быть дело?
Parent proxy - WinProxy
Вставил я данные строчки в squid.conf
Получилось - загружает первую страницу далее то же что и было:
Squid пишет:
Произошла следующая ошибка:
Невозможно переслать запрос в настоящий момент.
Этот запрос не может быть переслан на сервер-источник либо на вышестоящий кэш-сервер. Наиболее вероятная причина ошибки:
Администратор этого сервера запретил прямые соединения с серверами-источниками и
Все вышестоящие кэш-сервера в текущий момент недоступны.
Хотя я запускал squid и без iptables - результат тот же.
Помогите пожалуйта, в чём может быть дело?
Parent proxy - WinProxy
Через DNAT всё работае без проблем, через squid - не работает.
Если вставить строчку
never_direct allow all
то загружает любой сайт но толкь один раз и больше не может ни чего загрузить - пишет то что написано выше.
Если убрать эту строчку - вообще ни чего не может найти - первышет интервал ожидания. Видимо он сам напрямую начинает искать и естественно ни чего не может найти в др. локольной сети.
В чём может быть проблема?
Через DNAT не хочется делать - трафик не проконролирешь и кто куда лаходит, да и пароль parent прокси юзерам не надо знать.
Помогите пожалуйста !!!
Если вставить строчку
never_direct allow all
то загружает любой сайт но толкь один раз и больше не может ни чего загрузить - пишет то что написано выше.
Если убрать эту строчку - вообще ни чего не может найти - первышет интервал ожидания. Видимо он сам напрямую начинает искать и естественно ни чего не может найти в др. локольной сети.
В чём может быть проблема?
Через DNAT не хочется делать - трафик не проконролирешь и кто куда лаходит, да и пароль parent прокси юзерам не надо знать.
Помогите пожалуйста !!!