squid.conf
---[ begin ]---
#squid.conf
#Каждый ключ в этом файле очень подробно описан в оригинальном
#файле squid.conf
#и по адресу http://www.visolve.com/squidman/Configuration%20Guide.html
visible_hostname city.home
#
#Порты, которые Squid будет "слушать".
http_port 3128
icp_port 3130
#Файлы в каталогах cgi-bins кэшироваться не будут.
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
#Объем памяти, которую будет использовать Squid.
#Хотя он будет использовать гораздо больше.
# (Объем памяти, занимаемой Squid, рассчитывается по формуле:
# cache_mem * 3 -- Прим. пер.).
cache_mem 4 MB
#250 означает, что Squid будет использовать
#250 МБ дискового пространства.
cache_dir ufs /var/spool/squid 50 8 64
#Место, где будут расположены файлы журналов.
cache_log /var/log/squid/cache.log
cache_access_log /var/log/squid/access.log
cache_store_log /var/log/squid/store.log
cache_swap_log /var/log/squid/swap.log
#Сколько версий журналов оставлять до их удаления.
#Обратитесь к ЧаВО за более подробной информацией.
logfile_rotate 0
redirect_rewrites_host_header off
cache_replacement_policy GDSF
acl localnet src 192.168.3.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl Safe_ports port 80 443 210 119 70 20 21 1025-65535
acl CONNECT method CONNECT
acl all src 0.0.0.0/0.0.0.0
http_access allow localnet
http_access allow localhost
http_access deny !Safe_ports
http_access deny CONNECT
http_access deny all
maximum_object_size 3000 KB
store_avg_object_size 50 KB
#Эти установки нужны, если вы хотите работать в "прозрачном" режиме.
#Прозрачный прокси-сервер означает, что Вам не придется его
#настраивать в клиентских браузерах. В этом, однако, есть и свои минусы.
#Если Вы просто оставите эти строки незакомментированными, то это ни
#на чем не отразится
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
#Всем внешним серверам будет казаться, что наши локальные
#пользователи используют браузер Mozilla, работающий на Linux.
#anonymize_headers deny User-Agent
#Поместите все в одну строку:
#fake_user_agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.6+) Gecko/20011122
#Что бы сделать наше соединение еще быстрее, поместите сюда
#две строки, аналогичные приведенной ниже. Они будут указывать
#на родительский прокси-сервер для нашего Squid. Не забудьте изменить
#адрес на тот, который ближе к Вам!
#Для измерений используйте ping, traceroute и т.п.
#Убедитесь, что порты http и icp указаны верно.
#Раскомментируйте строки, начинающиеся с "cache_peer", если необходимо.
#Это прокси-сервер, который Вы собираетесь использовать для всех запросов...
#cache_peer w3cache.icm.edu.pl parent 8080 3130 no-digest default
#...кроме запросов к адресам, начинающимся с "!".
#Неплохая идея не использовать родительский прокси-сервер для:
#cache_peer_domain w3cache.icm.edu.pl !.pl !7thguard.net !192.168.1.1
#Это полезно, когда мы хотим использовать менеджер кэша.
#Скопируйте cachemgr.cgi в каталог cgi-bin Вашего www-сервера.
#Теперь к нему можно обратится через браузер, введя адрес
#http://your-web-server/cgi-bin/cachemgr.cgi
cache_mgr your@email
cachemgr_passwd secret_password all
#Это имя пользователя и группы, от которых работает Squid.
cache_effective_user squid
cache_effective_group squid
log_icp_queries off
buffered_logs on
#####Пулы задержки
#Эта часть, является самой важной для ограничения входящего
#трафика при помощи Squid
#Для более детального описания обратитесь к файлу squid.conf, или
#к документации по адресу http://www.squid-cache.org
#Мы не хотим ограничивать загрузки внутри нашей ЛВС.
acl magic_words1 url_regex -i 192.168
#Мы хотим ограничить загрузки файлов следующих типов
#Поместите все в одну строку:
acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov
#Мы не блокируем .html, .gif, .jpg и аналогичные файлы, поскольку
#обычно они не занимают значительной части полосы пропускания
#Мы хотим ограничить скорость только днем и разрешить
#полную скорость ночью
#Внимание! acl приведенный ниже, скорее всего оборвет активные
#загрузки в 23:59. Прочтите раздел FAQ этого документа, если
#хотите этого избежать.
acl day time 12:00-23:59
#Определяем два пула задержки
#Обратитесь к документации Squid по вопросам
#с delay_pools и delay_class.
delay_pools 2
#Первый пул
#Мы не хотим ограничивать локальный трафик.
#Существует три класса пулов; мы же будем работать только со
#вторым. Первый пул (1) второго класса (2).
delay_class 1 2
#-1/-1 означает, что ограничений нет.
delay_parameters 1 -1/-1 -1/-1
#magic_words1: 192.168 мы определили раньше
delay_access 1 allow magic_words1
#Второй пул.
#мы хотим ограничить скорость загрузки для файлов,
#упомянутых в magic_words2.
#Второй пул (2) второго класса (2).
delay_class 2 2
#Числа -- это значения в байтах;
#нужно помнить, что Squid не предполагает наличия
#стартовых/стоповых битов
#5000/150000 -- значения для всей сети
#5000/120000 -- значения для одного IP-адреса
#после загрузки 150 Кбайт,
#(или даже в два или три раза большего количества)
#скорость будет ограничена до 5000 байт в секунду.
delay_parameters 2 5000/150000 5000/120000
#Мы установили day в 09:00-21:59 выше.
delay_access 2 allow day
delay_access 2 deny !day
delay_access 2 allow magic_words2
#EOF
---[ end ]---
как у меня в сети вообще все работает, что бы понятнее было:
есть юзвери они сидят в 192.168.0.X и есть выход на инет ppp0. При загрузке через iptables разрешаю всем из 192.168.3.X лазать по инету. Стоит VPN сервер (pptpd) который при подключении кидает в сеть 192.168.3.X (т.е. у людей появляется инет)... ДНС так же прикручен, он доступен без подключения к инету (но даже пинги не проходят, если не подключился), т.е. если человек без подключения впн наберет "ping www.ya.ru" выдаст его IP а пинги идти не будут, потом у меня в том же скрипте, где через iptables я делаю маскарадинг - я заставляю работать через свой proxy, обрезая параллельно скорость на закачку... одно время еще пытался настроить CBQ но как-то времени не хватило и забросил и так пока работает... вот-с...
В одной сети использую самопальный биллинг (снимает статистику в файле /etc/ppp/ip-down), а в другой использую TA-Billing, но что-то он мне не очень, вроде все удобно но не видно КОГДА и сколько юзверь налазил видно только по дням... есть идея мой биллинг до ума довести если кто фанат пишите в мыльницу, биллинг основан на подсчете в момент отключении юзверя от vpn... с MySQL и т.п. уже многое есть, но пока все еще сырое, если есть кто желающий - пишите, будем общаться (PHP, Perl, MySQL)...
e-mail: dip56245@mail.ru
icq: 82591163