Настройка proxy-сервера

Материал из RSU WiKi

Перейти к: навигация, поиск

Содержание

Задача

Создать полнофункциональный узел доступа к сети интернет на 500-1000 человек с авторизацией, системой приоритетов и фильтрацией нежелательного контента.

Описываемая система работает на базе операционной системы SLES10 SP1 (ppc64) [1] в логическом разделе LPAR [2] на сервере IBM pSeries [3]. Используется 64х-битная ppc-сборка Squid Cache: Version 2.5.STABLE12

Установка

В SLES данная операция осуществляется чере YaST. Необходимо установить следующие пакеты:

  • Squid (прокси)
  • Apache2 (веб-сервер)

Так же необходимо установить пакет SARG [4]. Rpm и src.rpm-пакеты для SuSE доступны по следующему адресу: http://sarg.sourceforge.net/suse.php

cd /usr/local/src
wget "http://sarg.sourceforge.net/sarg-2.0.7-vhs.src.rpm"
rpmbuild --rebuild sarg-2.0.7-vhs.src.rpm
rpm -Uvh /usr/src/packages/RPMS/ppc64/sarg*

Настройка squid.conf

Далее мы рассмотрим параметры в таком же порядке, в котором они расположены в оригинальном squid.conf

Указываем серверу какой порт слушать и на каком интерфейсе:

http_port 172.16.0.1:8080

Кеши в памяти и на диске

Поскольку на сервере установлено 2 Gb ОЗУ, ставим побольше объем кеша в памяти:

cache_mem 1024 MB

Увеличиваем максимальный размер файла, хранящегося в кеше на диске:

maximum_object_size 32768 KB

...и в ОЗУ:

maximum_object_size_in_memory 1024 KB

Настраиваем политику замещения файлов в памяти и дисковом кэше, мы используем сочетание LFUDA и GDSF:

The heap GDSF policy optimizes object hit rate by keeping smaller
popular objects in cache so it has a better chance of getting a
hit.  It achieves a lower byte hit rate than LFUDA though since
it evicts larger (possibly popular) objects.
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF

Мы используем дисковый кеш объемом 32 Гб:

cache_dir ufs /var/cache/squid 32000 128 256

Указываем программу для обработки URL'ов, она используется для борьбы с баннерами и будет подробно рассмотрена далее. Количество children указано большим для того, чтобы пользователи не испытывали некомфортных задержек при работе с сетью.

redirect_program /usr/local/bin/redirector
redirect_children 50

Авторизация через LDAP (подробнее в следующем разделе):

auth_param basic program /usr/sbin/squid_ldap_auth -b "cn=rsu.edu.ru" cgp.rsu.edu.ru
auth_param basic children 10
auth_param basic realm RSU proxy-server
auth_param basic credentialsttl 2 minutes

Поскольку в дальнейшем мы используем ACL max_user_ip, выставляем следующий параметр:

authenticate_ip_ttl 5 minutes

Тюнинг http-заголовков для более эффективного кеширования статических файлов

refresh_pattern -i      ^http://thumbs.ebay.com                 2880    50%     43200   ignore-reload override-expire override-lastmod
refresh_pattern -i      ^http://include.ebaystatic.com          2880    50%     43200   ignore-reload override-expire override-lastmod

refresh_pattern -i      \.swf                                   2880    50%     43200   ignore-reload override-expire override-lastmod
refresh_pattern -i      \.(gif|jpe?g|png|ico|zip|rar|arj|lha|lzh|cab|exe|wm[afv]|divx|avi|flv|fmv|rlv|r[ma]|mpe?g|mp[234]|wav|mid|pdf|bz2|
tgz|ppt|avc|klb|tar\.gz|tgz|tar\.bz2|tbz2)$   2880    50%     43200   ignore-reload override-expire override-lastmod
refresh_pattern -i      \.(gif|jpe?g|png|ico|zip|rar|arj|lha|lzh|cab|exe|wm[afv]|divx|avi|r[ma]|mpe?g|mp[234]|wav|mid|pdf|bz2|tgz|ppt|avc|
klb|tar\.gz|tgz|tar\.bz2|tbz2)$       2880    50%     43200   override-expire override-lastmod

# LiveJournal
refresh_pattern         livejournal\.com/userpic/               3200    100%    43200   ignore-reload override-expire override-lastmod
refresh_pattern         stat\.livejournal\.com/         3200    100%    43200   ignore-reload override-expire override-lastmod
refresh_pattern         userpic\.livejournal\.com/              3200    100%    43200   ignore-reload override-expire override-lastmod
refresh_pattern         pics\.livejournal\.com/         21600   100%    43200   ignore-reload override-expire override-lastmod

# Fishki.net static content
refresh_pattern         ru\.fishki\.net/                21600   100%    43200   ignore-reload override-expire override-lastmod
refresh_pattern         de\.fishki\.net/                21600   100%    43200   ignore-reload override-expire override-lastmod

# Photofile.ru
refresh_pattern         photofile\.ru/photo/            21600   100%    43200   ignore-reload override-expire override-lastmod

refresh_pattern -i      mode=attach|MessagePart|/simg/          600000  50%     1200000

refresh_pattern -i      /top100\.cnt                            43200   100%    43200
refresh_pattern -i      /(counter|hit|erle\.cgi|bb\.cgi)$       43200   100%    43200

# Macromedia/Adobe Flash player
refresh_pattern         macromedia.com/.*\.(cab|exe|zip)$       43200   100%    43200

# Windows Update
refresh_pattern         windowsupdate.com/.*\.(cab|exe|zip|psf)$        43200   100%    43200
refresh_pattern         download.microsoft.com/.*\.(cab|exe|zip|psf)$   43200   100%    43200

refresh_pattern -i      \.(cgi|asp|php|fcgi|rbx|rhtml)          0       20%     60

# Google
# google maps/earth/etc = min 7 days
refresh_pattern -i      google\.com/(flatfile|kh|mt)\?          10080   50%     43200   ignore-reload override-expire override-lastmod

# VKontakte.ru                                                                  
refresh_pattern         vkontakte.ru/.*\.(jpg|gif|flv|mp3)$     43200   100%    43200

refresh_pattern         ^ftp:                                   1440    20%     10080
refresh_pattern         ^gopher:                                1440    0%      1440

refresh_pattern         \?                                      0       20%     4320
refresh_pattern         .                                       5       20%     4320

ACL's

Разрешаем ICQ, Jabber и IRC:

acl SSL_ports port 443 563 5190 5222 5223 6667-7000

Создаем правило для доступа к сервисам windows update, поиска кодеков и активации windows

acl winupdate dstdomain .windowsupdate.com .update.microsoft.com 
 .windowsupdate.microsoft.com .one.microsoft.com .genuine.microsoft.com 
 .c.microsoft.com .codecs.microsoft.com

Правило для доступа к обновлениям mozilla

acl mozupdate dstdomain .addons.mozilla.org

Правило для ресурсов, к которым мы просто хотим дать свободный доступ

acl freeres dstdomain .fepo.ru
Указываем правила:
# Баннеры
acl banners dstdomain "/etc/squid/hawk/banner.list"
# Порно
acl porno dstdomain "/etc/squid/hawk/porno.list"
# Анонимайзеры
acl anonymizer dstdomain "/etc/squid/hawk/anonymizer.list"
# Службы знакомств
acl love dstdomain "/etc/squid/hawk/love.list"
# Он-лайн игры
acl gamez dstdomain "/etc/squid/hawk/gamez.list"
# Разнообразные "тяжелые"ресурсы, rapidshare, zaycev.net etc
acl vari dstdomain "/etc/squid/hawk/vari.list"
acl varihard dst "/etc/squid/hawk/varihard.list"
# Жестко блокируемые ресурсы
acl hardban dst "/etc/squid/hawk/hardban"
# Подсети ICQ
acl icqban  dst "/etc/squid/hawk/icqban.list"
# Mail.ru Agent
acl mailaban dstdomain "/etc/squid/hawk/mailabandst.list"
# Фишинговые сервера
acl fishban dst "/etc/squid/hawk/fishban"

Список заблокированных ресурсов для учебных классов и Wi-Fi

acl classes_entertain dstdomain "/etc/squid/hawk/classesban.list" 
acl wifi_entertain dstdomain "/etc/squid/hawk/wifiban.list"
Запрещаем всем доступ к:
http_access deny all banners
http_access deny all porno
http_access deny all anonymizer
http_access deny all hardban
http_access deny all fishban 
http_access deny all mailaban
http_access deny all gamez
Указываем собственные страницы, вдаваемые при запрещениях:
deny_info ERR_BLOCKED_BANNER banners
deny_info ERR_BLOCKED_PORN porno
deny_info ERR_BLOCKED_ANON anonymizer
deny_info ERR_BLOCKED_PORN hardban
deny_info ERR_BLOCKED_FISH fishban
deny_info ERR_BLOCKED_GAMEZ gamez
deny_info ERR_BLOCKED_CLASSES_ENT classes_entertain
deny_info ERR_BLOCKED_CLASSES_ENT wifi_entertain
deny_info ERR_BLOCKED_CLASSES_ENT icqban
deny_info ERR_BLOCKED_CLASSES_ENT love                                          
deny_info ERR_BLOCKED_CLASSES_ENT mailaban 
deny_info ERR_BLOCKED_VARI vari
deny_info ERR_BLOCKED_VARI varihard

Определяем рабочее время

acl work_day time M T W H F A 8:00-17:00

Определяем правило для определенных типов файлов по расширению

acl blockfiles urlpath_regex "/etc/squid/hawk/restfiles"
deny_info ERR_BLOCKED_FILES blockfiles

Определяем свои сети как для исходящих, так и для входящих соединений

acl our_networks src 172.16.0.0/16
acl rspu_net dst 172.16.0.0/16
acl rspu_dns dstdomain .rspu.ryazan.ru .rsu.edu.ru
Определяем лимиты на одновременные подключения
acl connlim maxconn 10                                                          
acl connlim5 maxconn 5
acl connlim50 maxconn 50
deny_info ERR_MAXCONN connlim
deny_info ERR_MAXCONN connlim5
deny_info ERR_MAXCONN connlim50

Определяем ip-адреса wi-fi сети

acl wi-fi     src        172.18.0.0/16

Подключаем список особо отличившихся товарищей (список генерируется автоматически, см. раздел Работа с "качками")

acl loaderz   proxy_auth "/etc/squid/pools/auto_loaderz.pool"

Подключаем простых сотрудников

acl staff     proxy_auth REQUIRED

Подключаем список учебных машин в классах

acl classes   src        "/etc/squid/pools/classes.pool"

Определяем правило, запрещающее одновременные подключения под одним аккаунтом более чем с одного ip-адреса

acl anticaesar max_user_ip -s 1
deny_info ERR_ANTICAESAR anticaesar

Внимание! Порядок расположения access/deny имеет первостепенное значение!

Собираем правила, не требующие идентификации пользователей при помощи паролей

Запрещаем "чужакам" работать через наш сервер

http_access deny !our_networks

Разрешаем всем доступ к ранее определенным службам winupdate, mozilla update, свободным и локальным ресурсам

http_access allow winupdate
http_access allow mozupdate
http_access allow freeres
http_access allow rspu_net                                                      
http_access allow rspu_dns
Секция wi-fi
# Запрещаем более 50 одновременных подключений на машину
http_access deny wi-fi connlim50
# Запрещаем ранее определенные ресурсы
http_access deny wi-fi wifi_entertain
# Запрещаем доступ в рабочее время определенным файлам и сайтам (чтобы не грузить канал)
http_access deny wi-fi work_day blockfiles
http_access deny wi-fi work_day vari
http_access deny wi-fi work_day varihard
# Разрешаем доступ
http_access allow wi-fi
Секция учебных классов
# Запрещаем более 5 одновременных подключений на машину
http_access deny classes connlim5
# Запрещаем ранее определенные ресурсы
http_access deny classes classes_entertain
# ...и Аську
http_access deny classes icqban
# ...и знакомства
http_access deny classes love
# ибо негоже во время занятий вместо того чтобы слушать преподавателя, 
# сидеть на одноклассниках и чатиттся до потери пульса
# ---
# Запрещаем доступ в рабочее время определенным файлам и сайтам (чтобы не грузить канал)
http_access deny classes work_day blockfiles
http_access deny classes work_day vari
http_access deny classes work_day varihard
# Разрешаем доступ
http_access allow classes

Собираем правила, которым необходима идентификация пользователей при помощи паролей

Данные правила работают только если клиент не попал ни под одно из вышеперечисленных и система спросила у него пароль

Работа с "качками"

# Запрещаем "качкам" одновременный доступ с разных машин.
http_access deny loaderz anticaesar 
# Запрещаем скачивать в рабочее время определенные типы файлов
http_access deny loaderz work_day blockfiles
# Запрет на более чем 10 одновременных соединений с клиента в рабочее время
http_access deny loaderz work_day connlim
# Запрет на более чем 5 одновременных соединений с клиента в нерабочее время
# как раз тогда, когда по правилам откроются "тяжелые" сайты
http_access deny loaderz !work_day connlim5
http_access deny loaderz work_day vari
http_access deny loaderz work_day varihard 
# Разрешаем доступ
http_access allow loaderz

Обычные пользователи Запрещаем более 50 одновременных подключений. На нормальной работе это не сказывается, а вот от всяких download master и проч., качающих в 100 и более одновременных потоков помогает хорошо.

http_access deny staff connlim50
http_access allow staff

И в конце стандартное правило запрета всех остальных

http_access deny all 

Указываем, что squid не кеширует, а напямую общается с ранее определенными локальными ресурсами

always_direct allow rspu_net

Delay Pools

Данные параметры отвечают за шейпинг трафика

Указываем количество пулов

delay_pools 3 

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

delay_class 1 2
delay_class 2 2
delay_class 3 3 

Определяем кто к какому классу относится

delay_access 1 allow classes
delay_access 1 deny all
delay_access 2 allow loaderz
delay_access 2 deny all
delay_access 3 allow staff
delay_access 3 deny all

Определяем итоговую скорость для пулов

# 128 kbit/sec на подсеть, 64k кажому
delay_parameters 1 128000/128000 64000/64000
# 48  kbit на подсеть, 16k каждому
delay_parameters 2 48000/48000 16000/16000
# В настоящее время лимиты сняты
delay_parameters 3 -1/-1 -1/-1 -1/-1

Определение настроек

Автоматическое (WPAD)

В dns указываем cname на proxy:

proxy  IN A     172.16.0.1 
wpad   IN CNAME proxy

Не забываем увеличить на 1 серийный номер зоны.

На dhcp-сервере в конфигурационном фале dhcpd.conf:

option wpad-curl code 252 = text ;
option wpad-curl "http://proxy.example.com/wpad.dat\000" ;

В корень www-сервера нашей машины (для suse это /srv/www/htdocs/) кладем файл с именем следующего содержания:

wpad.dat

function FindProxyForURL(url, host) {
    if (shExpMatch(url,"*.example.com/*")) {
        return "DIRECT";
    }
    if (isInNet(myIpAddress(), "172.16.0.0", "255.255.0.0")) {
        return "PROXY proxy.example.com:8080";
    }
    else return "DIRECT";
}

Подробный синтаксис команд данного файла можно найти на сайте netscape.

Делаем символические ссылки (ln -s) для разных версий windows и разных вариантов глюков IE:

proxy.pa -> wpad.dat
proxy.pac -> wpad.dat
wpad.da -> wpad.dat
wpad.js -> wpad.dat
wpad.jvs -> wpad.dat
wpad.pac -> wpad.dat

В конфигурационных файлах apache2 добавляем следующие строки:

/etc/apache2/mime.types

application/x-ns-proxy-autoconfig dat
application/x-javascript-config pac

/etc/apache2/mod_mime-defaults.conf

AddType application/x-javascript-config   .pac
AddType application/x-ns-proxy-autoconfig .dat

Перезапускаем apache:

rcapache2 restart

Страница "заглушка"

На роутере (SLES 9) делаем следующее. В директории /srv/www создаем файл index.html с описанием настроек proxy-сервера.

В файле /etc/sysconfig/SuSEfirewall2 добавляем следующее:

FW_REDIRECT="наша_подсеть/маска,!подсеть_серверов/маска,tcp,80,80"

Теперь все запросы из локальной сети в интернет, идущие мимо прокси, будут попадать на страницу-заглушку с указаниями.

Аутентификация пользователей

Доступ по ip-адресам/подсетям

В конфигурационном файле доавляем следующие строки:

acl classes   src        "/etc/squid/pools/classes.pool"
http_access allow classes

Аутентификация через MySQL

Скрипт для basic-authentication:

#!/usr/bin/perl
use DBI;
use IO::Handle;

$dbh = DBI->connect("DBI:mysql:db-name:server.com","db-user","db-pass");

while ($answer = <STDIN>) {
    chomp $answer;

    @personal = split(/ /, $answer);

    $sql = "select login from users where login='$personal[0]' and password='$personal[1]'";
    $sth = $dbh->prepare($sql);
    $sth->execute or die "SQL Error: $DBI::errstr\n";
    $result = $sth->fetchrow_array();

    if ($result) {
        print "OK\n";
    } else {
        print "ERR\n";

    }
    IO::Handle::flush(STDOUT);
}

squid.conf:

# (MySQL)
auth_param basic program /usr/local/bin/squid_mysql_auth
auth_param basic children 10
auth_param basic realm RSU proxy-server
auth_param basic credentialsttl 2 minutes

Аутентификация через LDAP

В нашем случае в качестве LDAP-сервера выступает Communigate. В настойках:

Включаем Управление Пользователями через LDAP:

Пользователи -> Центральный справочник

Управление Пользователями через LDAP: Включено

Проверка:

squid_ldap_auth -b "cn=domain.name" cgp-server.com

Должно выдавать OK/ERR на plaintext-строку "имя пароль"

В конфигурационном файле squid.conf:

# (CommuniGate LDAP) 
auth_param basic program /usr/sbin/squid_ldap_auth -b "cn=example.com" cgp.example.com
auth_param basic children 10
auth_param basic realm RSU proxy-server
auth_param basic credentialsttl 2 minutes

Логи

В нашем случае мы используем ежедневную ротацию логов прокси сервера squid. В SLES10 SP1 это делается таким образом:

Правим файл /etc/logrotate.d/squid, заменяем строчку (для секции access.log) size=+4096 на daily.

Правим файл /etc/sysconfig/cron. По умолчанию скрипты logrotate запускаются через cron.daily, который в свою очередь стартует следующим образом:

# At which time cron.daily should start. Default is 15 minutes after booting
# the system. Due the cron script runs only every 15 minutes, it will only
# run on xx:00, xx:15, xx:30, xx:45, not at the accurate time you set.

Как видно нас такой вариант не устраивает, меняем:

DAILY_TIME="00:15"

SARG

Добавляем поддержку русского языка в кодировке UTF:

cd /etc/squid/sarg/languages
iconv -f cp1251 -t utf-8 < Russian_cp1251 > Russian_utf8

Модифицируем конфигурационный файл: /etc/squid/sarg/sarg.conf

language Russian_utf8
output_dir /srv/www/htdocs/sarg
resolve_ip yes
exclude_users /etc/squid/sarg/stealth_users.txt
overwrite_report yes
records_without_userid ignore
topsites_sort_order BYTES D
usertab /etc/squid/sarg/users_list.txt
displayed_values abbreviation

LightSquid

Ежемесячный отчет на почту пользователям и начальству

При использовании lightsquid сделать подобный функционал весьма просто:

/etc/cron.monthly/peruserstat

#!/bin/bash

export LANG=ru_RU.UTF-8
export LC_CTYPE="ru_RU.UTF-8"
export LC_NUMERIC="ru_RU.UTF-8"
export LC_TIME="ru_RU.UTF-8"
export LC_COLLATE="ru_RU.UTF-8"
export LC_MONETARY="ru_RU.UTF-8"
export LC_MESSAGES="ru_RU.UTF-8"
export LC_PAPER="ru_RU.UTF-8"
export LC_NAME="ru_RU.UTF-8"
export LC_ADDRESS="ru_RU.UTF-8"
export LC_TELEPHONE="ru_RU.UTF-8"
export LC_MEASUREMENT="ru_RU.UTF-8"
export LC_IDENTIFICATION="ru_RU.UTF-8"

YY=`date --date='1 day ago' "+%Y"`
MM=`date --date='1 day ago' "+%m"`

UL=`awk -F " " '{ print $1 ;}' < /srv/www/cgi-bin/light/realname.cfg`

for i in $UL
do

 w3m -dump -T text/html "http://localhost/cgi-perl/light/user_detail.cgi?year=$YY&month=$MM&user=$i&mode=month">/tmp/monthly/$i.txt
 echo "Пожалуйста ознакомьтесь с вложенным файлом. Желаем приятной работы!" | \
 mail -r postmaster@domain.name -a /tmp/monthly/$i.txt -s "[PROXY] Месячный отчет об использовании интернета" $i@domain.name
done

# Отсылаем начальству список отличившихся за месяц
ADMINS="admin1 admin2 boss"

w3m -dump -T text/html "http://localhost/cgi-perl/light/month_detail.cgi?year=$YY&month=$MM">/tmp/monthly/topusers.txt

for i in $ADMINS
do
 echo "Пожалуйста ознакомьтесь с вложенным файлом. Список пользователей отсортирован по объему потребленного за месяц траффика. \
 По всем вопросам можете обращаться по адресу mailto:admin@example.com Желаем приятной работы!" | \
 mail -r admin@example.com -a /tmp/monthly/topusers.txt -s \
 "[PROXY] Месячный отчет об общем использовании интернета пользователями" $i@example.com
done


rm /tmp/monthly/*.txt

Обратите внимание на экспорт переменных локали. Без этого сообщения отсылаться не будут.

Ручной анализ

Бывает небходимо проводить изыскания в промежутках времени, которые больше, чем файл логов, приходится просматривать архивы. Данный скрипт собирает из всех логов архива единый файл по какому либо признаку для дальнейшей обработки:

#!/bin/bash                                                                     
                                                                                
echo "Думаю: "                                                                  
echo "Result:" > spy-out.txt                                                    
                                                                                
for i in `ls access.log-200808*.bz2`                                            
 do                                                                             
  echo -n "."                                                                   
  #echo $i >> spy-out.txt                                                       
  #echo "---" >> spy-out.txt                                                    
  bunzip2 -d -c $i | grep "some_text_for_research" >> spy-out.txt                          
 done                                                                           
                                                                                
# Пример: Узнаем кто сколько раз посетил ресурс в условии
# awk ' { print $8; }' < spy-out.txt | sort | uniq -c | sort  -r -g

# Пример: Узнаем сколько раз был посещен тот или иной ресурс                                              
# awk '{ print $7; }' < spy-out.txt| awk -F "/" '{ print $3; }'| sort | uniq -c | sort  -r -g

Разности-полезности

Преобразовать timestamp'ы логов сквида в человеческий вид можно при помощи простенького скрипта на perl:

#! /usr/bin/perl -p                                             
s/^\d+\.\d+/localtime $&/e;

Ограничители

В целях более равномерной загрузки канала используются следующие методы ограничения работы пользователей:

  • фильтрация баннерной рекламы
  • ограничение скачивания мультимедийных файлов по времени
  • автоматическое вынесение активно качающих в особый спулер с ограниченными потоками и скоростью

Фильтрация нежелательных ресурсов

В простейшем случае /etc/squid создаем подпапку hawk и кладем в нее следующий скрипт на bash, сортирующий списки по-алфавиту и попутно убирающий встреченные дубликаты:

sorter.sh

#!/bin/bash                                                                     
                                                                                
for i in `ls *.list`                                                            
do                                                                              
 #sort $i | uniq > $i.s && mv $i.s $i
 cat $i | tr "[:upper:]" "[:lower:]" | sort | uniq > $i.s && mv $i.s $i
done                                                                            
  
# Перегружаем сквид по желанию                                                                              
#rcsquid reload

При использовании блокировок сервиса OpenDNS, можно заменить его сообщения на свои:

  • 208.69.32.136 - ip адрес, который можно подставить в porn.list, на него происходит перенаправление в случае обращения к порно-ресурсу
  • 208.69.32.133 - ip адрес, который можно подставить в fishban.list, на него происходит перенаправление в случае обращения к фишинговому ресурсу

Ссылки на использованные выше программы и списки

Баннеры

"/etc/squid/hawk/banner.list"

.1000stars.ru
.3a.overclockers.ru
.503.com1.ru
.a-counter.kiev.ua
.a.bankir.ru
.a.gismeteo.ru
.abnad.net
.ad.ad24.ru
.ad.adriver.ru
.ad.computerra.ru
.ad.ir.ru
.ad.jobnet.agava.ru
.ad.krutilka.ru
.ad.ng.ru
.ad.rambler.ru
.ad.realweb.ru
.ad.vba.ru
.ad.wyw.ru
.ad.yieldmanager.com
.ad.z5x.net
.ad2.rambler.ru
.adbn.ru
.adbrite.com
.adbureau.net
.adfun.ru
.ads-intf.algo.ru
.ads.adfox.ru
.ads.adultfriendfinder.com
.ads.digitalpoint.com
.ads.germany.ru
.ads.jetune.ru
.ads.maxlab.ru
.ads.osdn.com
.ads.rabota.ru
.ads.sboy.spb.ru
.ads.sixapart.com
.ads.sup.com
.ads.tucows.com
.adsell.ru
.adv.aport.ru
.adv.computerra.ru
.adv.hardwarez.ru
.adv.mamba.ru
.adv.nadavi.net
.adv.odnoklassniki.ru
.adv.stars.ru
.adv.vz.ru
.alpha.f2.ru
.autocontext.begun.ru
.banner.adtrgt.com
.banner.chelcom.ru
.banner.echo.com.ua
.banner.fishki.net
.banner.kiev.ua
.banner.list.ru
.banner.ricor.ru
.banner.rosweb.ru
.bannerbank.ru
.bannerexchange.com
.banners.adfox.ru
.banners.cm.ru
.banners.passion.com
.banners.rambler.ru
.banners.ru
.banners.zhurnal.ru
.bans.bride.ru
.bb.ru
.ben.aspads.net
.bin-layer.de
.binimage.de
.bn.ais.spb.ru
.bn.orthodoxy.ru
.body.imho.ru
.br.gcl.ru
.bx.metka.ru
.clx.ru
.count.rbc.ru
.counter.allhits.ru
.counter.aport.ru
.counter.goldenurl.ru
.counter.list.ru
.counter.rambler.ru
.doubleclick.net
.engine.adland.ru
.engine.adnet.ru
.engine.awaps.net
.fb.finam.ru
.flamingo.promote.ru
.google-analytics.com
.googlesyndication.com
.hitbox.com
.hotlog.ru
.image.link.ru
.images.adbureau.com
.ipru.ru
.kreis.trl.ru
.layer-ads.de
.lbe.ru
.lbn.ru
.link.link.ru
.linkexchange.com
.linkexchange.ru
.litbn.ru
.lstat.susanin.com
.mbn.com.ua
.media.fastclick.ru
.mediaban.ru
.mobad.de
.nbe.net-on.net
.od.redtram.com
.popunder.ru
.promo.nag.ru
.r.e1.ru
.rating.km.ua
.rb.fep.ru
.rb1.design.ru
.rb2.design.ru
.rbtest.dada.ru
.rek.m9.ru
.reklama.best-party.ru
.reklama.netskate.ru
.reklama.port.ru
.reklama.svadba.net.ru
.reklama2.memonet.ru
.rl.auto.ru
.rotabanner.auto.ru
.rotabanner.fep.ru
.rotabanner.gif.ru
.rotabanner.kulichki.net
.rotabanner.mos.ru
.rotator.exler.ru
.smstraf.ru
.snap.com
.spylog.com
.spylog.ru
.tbn.ru
.tizer.4smi.ru
.tizer.mediarotator.ru
.tns-counter.ru
.top.list.ru
.top100.mafia.ru
.topping.com.ua
.traf.biz
.trafficcash.ru
.wmmail.ru
.x4u.ru
.xbn.ru
.yadro.ru
.zuni.tyndex.ru

"/usr/local/bin/redirector"

#!/usr/bin/perl
$0 = 'redirect' ;
$| = 1 ;

@banners    = ('reklama\.ru/cgi-bin/banner/',
               'anekdot\.ru/cgi-bin/banner/',
               'banner\.ru/cgi/sites/',
               'linkexchange\.ru/cgi-bin',
               'bizlink\.ru/cgi-bin/irads\.cgi\?',
               'bizlink\.ru/cgi-bin/cgiwrap/ar/irads\.cgi\?',
	 'ivd\.ru/bann/',
	 'include/banners/',
	 'rbc\.ru/bannerjvs/',
	 'vedomosti\.ru/var/bansrc/',
	 'inetinteractive\.com/banners/',
	 'cmpnet\.com/ads/',
	 'adfox\.ru/getCode',
	 '\.nnm\.ru/rec/',
	 'shchulkin\.com/cgi-bin/',
	 'ryazan\.ru/banner/',
	 'tourprom\.ru/krutilka/images/banners/',
	 'rzn\.info/ads/',
	 'homeweek\.ru/img/banners/',
	 'lbn\.ru/cgi-bin/iframe/',
	 'poku\.ru/yxo/download\.php',
	 'shchulkin\.com/banner/',
	 'plus-msk\.ru/digits\.php',
	 'plus-msk\.ru/img/banners/',
	 'anub\.ru/img/ad/',
	 'newsland\.ru/public/upload/banner',
	 'newsland\.ru/public/img/banner',
	 'rfn\.ru/cgi-bin/iframe/',
	 '7info\.ru/nb/',
	 'rp5\.ru/bnr/',
	 'rian\.ru/cgi-bin/iframe/',
	 'up\.spbland\.ru/ban',
	 'bash\.org\.ru/img/forex',
	 'joblist\.ru/banner/',
	 'yaplakal\.com/shum/ad/',
	 'winsov\.ru/img/banner',
	 '\.topcto\.ru/cgi-bin/',
	 'spbland\.ru/bban/',
	 'rose\.ixbt\.com/banner/',
	 'territory\.ru/banners/',
	 'morepc\.ru/banners/',
	 '/uploads/reklama/',
	 'rambler\.ru/top100/banner',
	 'sharereactor\.ru/banners/',
	 '87\.242\.91\.5/adfox/',
	 'sotovik\.ru/images/banner/',
	 'webpark\.ru/banners/',
	 'ryazan\.ru/banners/',
	 'redtram\.com/fcbs/',
	 'rzn\.info/ads/',
	 'rusdoc\.ru/pictures/banners/',
	 '/ssi/reklama/',
	 'mobbit\.info/adv/',
	 'nnm\.ru/ban/',
	 'isohunt\.com/a/banners/',
	 'fishki\.net/reklama/',
	 'sweb\.ru/ban/',
	 'exaccess\.ru/banners/',
	 'exaccess\.ru/asp/banner',
	 'overclockers\.ru/adimage',
	 'overclockers\.ru/images/banrz/',
	 'overclockers\.ru/partners/',
	 'overclockers\.ru/include/banners/',
	 '7news\.ru/ad/',
	 'hmn\.ru/fban/',
	 'kinoafisha\.ru/advert/',
	 'territory\.ru/image/banners/',
	 'lyngsat.com/adverts/',
	 'kpnemo\.ru/media/rekl/',
	 'ivd\.ru/count\.xgi\?',
	 'glasnet\.ru/PHP/banners/extview\.phtml\?',
	 'r\.mail\.ru/[a-zA-Z0-9]+\.(gif|jpg|swf)',
	 'world-art\.ru/baner',
	 'pics\.rbc\.ru/img/banpics/',
	 '195\.161\.119\.239/images/',
	 'www\.russianstory\.com/cgi-rs/showme\.cgi\?',
	 'www\.miklukho\.cadabra\.ru/cgi-bin/adsrc\.cgi\?',
	 '\.ru-board\.com/temp/',
	 '4smi\.ru/cgi-bin/iframe/',
	 'mnis\.ru/reklama/',
	 'binural\.ru/pictures/banner',
	 'pics\.rbc\.ru/rbcmill/img/',
	 '120\.goodoo\.ru/cgi-bin/banner/',
	 'ban\.clk',
	 '\.newsru\.com/banners/',
	 'az\.yandex\.ru/bshow',
	 'adv\.dll',
	 'images\.slashdot\.org/banner/',
	 'nnm\.ru/banner',
	 'nnm\.ru/bonga/show_banners\.php',
	 '/REKLAMA/',
	 '\.depositfiles\.com/img/adv/',
	 '\.aldebaran\.ru/images/recl/',
	 'depositfiles\.com/ru/ads_popup_redirect\.php',
	 'it-territory\.ru/images/1/',
	 '/res/adv/',
	 'imperz\.ru/im/ban/',
	 'prospero\.ru/cgi-bin/showban',
	 '2photo\.ru/reklama/',
	 'static\.oper\.ru/data/rennabs/',
	 'ruspaidmails\.com/ads-manager/banner_store/',
	 '217\.16\.26\.83/cgi-bin/iframe/',
	 'finbs\.ru/BannerSystem/',
	 'anekdotov\.net/show/uhi/',
	 'hpc\.ru/bans/',
	 'mbe\.ru/adrevolver/',
	 '195\.54\.209\.142/cgi-bin/img\?',
	 'gameland\.ru/code/ads/',
	 'om\.ru/adrot/banners/',
	 'om\.ru/adrot/ad\.cgi',
	 'www\.ru/banner/',
	 'exec\.osp\.ru/BS/sb\.php3',
	 'images\.internet\.com/ads/',
	 'izrukvruki\.ru/banners/',
	 'vts\.tass\.ru/images/',
	 'osdn\.com/banner/',
	 'mediaplex\.com/ad/bn/',
	 'yandex\.ru/yabs-stub/',
	 'chat\.ru/_sys_img/',
	 'cgi-bin/banner/',
	 'networkdoc\.ru/partner/',
	 'stat\.aport\.ru/show\.pl',
	 'prospero\.ru/cgi-bin/showprog',
	 'subscribe\.ru/banner/',
	 '/advert/images/',
	 'bpath\.com/gif\.cfm',
	 'anekdotov\.net/show',
	 'atas\.ru/show/',
	 'images\.rambler\.ru/upl/',
	 'images\.rambler\.ru/advert/',
	 'images\.go2net\.com/go2net/ads/',
	 'zdnet\.ru:80/banners/images/',
	 'zdnet\.ru/banners/images/',
	 'm2k\.ru/cgi-bin/',
	 'itc-ua\.com/viewban\.php',
	 'itc-ua\.com/vuho\.php',
	 'popular\.ru/image/',
	 'lib\.ru/KARTINKI/krutilka/',
	 'ixbt\.com/cgi-bin/show\.cgi',
	 'ixbt\.com/banner/',
	 'atlantic\.ru/banners/',
	 'russiantimes\.com/cgi-bin/ads/ads\.pl',
         'translate\.ru/images/banners',
	 '204\.198\.135\.79/RealMedia/ads',
	 'lenta\.ru:9000/krutilka',
	 'anekdot\.ru:8083/banner',
	 'aifnet\.ru/images/banners',
	 'anekdot\.ru/reklama',
	 'linuxtoday\.com/RealMedia/ads/',
	  'xakep\.ru/code/ads',
	 'linux\.ru/ads',
	 'linux\.org\.ru/adv/',
	 'netvertising\.com\.ua/i\.php',
	 'professia\.ru/img/ban',
	 'job\.ru/images/banners',
	 'by\.ru/ad',
	 '194\.186\.36\.172:8080',
	 '195\.92\.95\.5/impression',
	 'cgi-bin/banner',
# price.ru
	 'price\.ru/images/price/adv/',
# counters
         'statistic\.ru/perl/banner/banner\.pl',
         'index99\.kiev\.ua/cgi-bin/count',
	 '195\.34\.34\.80/counter',
	 '194\.67\.23\.251/counter',
	 'counter\.rambler\.ru/top100\.cnt\?',
	 '217\.73\.192\.19/top100\.cnt?',
	 'one\.ru/cgi-bin/cnt\.cgi\?',
	 'infoart\.ru/cgi-bin/ihits/counter\.cgi\?',
	 'omsknet\.ru/resource/counting\.asp',
	 'ranker\.ru/scripts/rcounter\.dll',
	 'kmindex\.ru/cgi-bin/cgi2',
	 'linux\.ru\.net/counter\.ph',
	 'newmail\.ru/cgi-bin/ucount\.cgi',
	 'bigmir\.net/stat\.php',
	 'poseti\.com/cgi-bin/sys/poseti\.cgi',
	 'pocketpc\.com\.ua/cgi-bin/ppc/ppc\.cgi',
	 'yandex\.ru/cycounter'
	 );

while (<>) {
    ($url, $who, $ident, $method) = /^(\S+) (\S+) (\S+) (\S+)$/ ;
    $url = 'http://www.rspu.ryazan.ru/1.gif'
	if grep ($url=~/$_/i, @banners) ;
    print "$url $who $ident $method\n" ;
}

Порно

"/etc/squid/hawk/porno.list"

.000sex000.com
.24babes.com
.333xxx.ru
.3d-resident.by.ru
.911club.ru
.about-sexxx.com
.adultaccess.biz
.adultcomicsbook.com
.adultforum.ru
.adultfreevideos.net
.adultpost.net
.adulttraffic.ru
.allinternal.com
.allnudestars.ru
.allsexyteenz.com
.analbox.net
.ananist.info
.anekdoti.biznesklas.ru  	
.arbuzik.com
.art-porno.org
.artnudez.com
.baby4men.ru
.badgirlsblog.ru
.bcero-host.net
.bcero.net
.besplatnoe-porno.com
.besporno.info
.best-erotik.ru
.best-porno.biz
.besterotika.com
.bestsex.ru
.bestsexteen.org
.bestxxxmovs.com
.bezpizdy.info
.bigjugsmovies.com
.bikinipageone.com
.bluesystem.ru
.bonvids.com
.brutaldildos.org
.buterbrod.com
.camgirlsgallery.com
.carol.ru
.celebtaboo.ru
.celkidevki.info
.charliessexyangels.com
.chixxx.ru
.classic.ben.ru
.clubteenpix.net
.cooltop.ru
.crazyfuckfest.com
.crazystory.ru
.cutegirl.ru
.cyberbabes.ru
.dacahard.com
.daika.ru
.davemgalleries.com
.deffki.us
.defka-x.ru
.denkend.ru
.devchenok.net
.devochki.ru
.devok.info
.devok.net
.df-vids.com
.diskixxx.ru
.doctorslick.com
.dokyx.info
.dosug.bz
.dosug.nu
.dosug.sextalk.ru
.dosugvip.ru
.dpsexschool.com
.drm-fetishes.com
.drochka.net
.enter-porno.com
.ero-dreams.net
.erodom.ru
.erohotsex.ru
.erolegs.com
.eroman.ru
.eromix.ru
.eropass.tv
.erothumbs.ru
.erotizer.info
.erovideo.ru
.everygay.org
.excy.net
.exluze.ru
.fetishvideo.ru
.firstgaysite.com
.fleshflowers.net
.fling.com
.fotoporno.net.ru
.free18yo.com
.freepornik.com
.freesexpornlinks.com
.freesexportal.net
.fuckvssuck.com
.galleriestriplex.com
.gay.ru
.gayclub.ru
.gayly.ru
.gayru.org
.gayryazan.narod.ru
.gayxxxmovz.com
.gayzona.com
.gej.ru
.gey-russia.ru
.girlsandskirts.com
.glamur.biz
.groupporno.ru
.guruporno.com
.hardwayout.com
.healthysexy.info
.hot-girls.tv
.hotpic.ru
.hotsex.li
.hqbondage.com
.hrenvam.com.ru
.innocentdream.com
.insauna.ru
.interracial.com
.izvrashenec.ru
.izvrat.info
.japanese-schoolgirls.us
.jesti.ru
.jestko.pp.ru
.jizzforever.com
.jsex5.com
.karateli.com
.klubnichka.ucoz.ru
.kora.topsip.ru
.lanes.com
.lesboshow.ru
.littlelupe.com
.littlethumbs.com
.liveblowjobz.com
.lunka.com
.majorpervert.com
.meatmembers.ru
.met-art.com
.milfondick.com
.minetka.ru
.mirotik.ru
.mnogoporno.ru
.modelsweeties.com
.moscowgay.ru
.moshonka.ru
.moust1.nm.ru
.moviesorgy.com
.mrpornmovies.com
.muviki.com
.mybestgays-pay.net
.mybestgays.net
.mybizarresite.com
.myprettylove.com
.myxxxclip.net
.naat.ru
.nahalka.com
.natashka.info
.ndcontent.com
.nicoletapics.com
.nishtyak.ru
.nndutch.com
.nnstarlets.com
.nobullhardcore.net
.nozhka.ru
.nudecelebs.ru
.obzorporno.com
.ohq.ru
.orgymovs.com
.orsm.net
.oxpass.com
.p0rno-kartinki.net
.palevo.com
.paparaci.tv
.pastushka.com
.peeps.ru
.phazeporn.com
.photohot.ru
.picwonder.com
.pipec.ru
.pix4dicks.com
.plombir.ru
.pmates.com
.porcast.net
.porevo.info
.porf.net
.pornaccess.com
.porneed.com
.porno-bank.ru
.porno-vide0.com
.porno.greenbelomor.us
.porno.ru
.porno4me.ru
.porno9.ru
.pornobam.ru
.pornobest.org
.pornobum.net
.pornocafe.ru
.pornodoma.com
.pornofile.info
.pornofiles.ru
.pornofotka.ru
.pornolib.net
.pornolife.info
.pornolist.ru
.pornomir.com
.pornoparty.ru
.pornoslon.ru
.pornoson.com
.pornostory.biz
.pornostudent.ru
.pornotube.com
.pornotut.com
.pornozero.com
.pornozona.com
.pornsms.ru
.pornuha-xxx.ru
.pornworld.ru
.potahka.com
.prettynudes.sk
.pron-xxx.ru
.publichouse.nu
.puksms.ru
.pupsik.ru
.razvrat.biz
.realhotsex.com
.refero.ru
.roliki.cc
.rolikixxx.ru
.rumov.net
.rumporno.com
.ruporn.com
.ruporno.org
.rupornox.com
.rus-movs.com
.rus-porno.ru
.rusexvideo.com
.rusgayvideo.com
.russianvideo.biz
.ruzona.com
.samok.net
.seavirgin.com
.secret-video.ru
.seemygf.com
.sensuallinks.com
.sex-galleries.info
.sex-photo.ru
.sexcollection.ru
.sexdozor.ru
.sexfabrika.ru
.sexincomics.net
.sexinhumor.net
.sexinvodka.net
.sexishop.ru
.sexkukolki.ru
.sexmagazin.ru
.sexnsk.com
.sexodom.com
.sexonly.ru
.sexozon.com
.sexrazvrat.com
.sexsets.ru
.sexshock.ru
.sexskazki.ru
.sexstoriez.ru
.sexvideogid.ru
.sexxx.orgfree.com
.sexy-photo.ru
.sexyday.ru
.sexyfotogallery.com
.sexyhost.org
.sexylady.ws
.sibrem.ru
.sisja.com
.skladvideo.com
.slasti.da.ru
.smachno.net
.sms2gays.com
.squadgirls.com
.starsxxx.info
.streepstreet.com
.studentku.ru
.superfoto.org
.sverch.ru
.sweet-pussies.net
.sweetsexy.ru
.tbhostedgalleries.com
.teengee.com
.teeniesexclub.com
.teens19.com
.teensexmovs.com
.teenspornus.net
.telochki.com
.telok.net
.terka.info
.thecoolporn.com
.thepornoru.net
.tolkoporno.com
.trahnu.ru
.trampampam.com
.tranzagals.com
.trax.ru
.tytsi.com
.udaff.com
.uneedfreeporn.com
.uniqteen.com
.v-a-y.info
.variousbdsm.com
.veryspecialteens.com
.veseluxa.org
.videdromx.com
.vifox.net
.viptrax.ru
.virginopener.com
.vpopku.com
.vuku.ru
.wannawatch.com
.webporno.ru
.x-rus.ru
.xdama.com
.xep.ru
.xphoto.ru
.xuk.ru
.xxl-club.narod.ru
.xxx-kino.ru
.xxx.com
.xxx4u.ru
.xxxmovs.ru
.yabun.com
.yolesbo.com
.younghomevideo.com
.youngporn.net
.youngpornvideo.net
.youngvideo.ru
.zavarka.ru
.ziporn.com
.zloeporno.net
.zoomporno.ru
.enature.tv
.russianbare.com

Анонимайзеры

"/etc/squid/hawk/anonymizer.list"

.2255.info
.3proxy.com
.75i.net
.78y.net
.anonproxy.info
.anonycat.com
.anonymization.net
.anonymizer.com
.anonymizer.ru
.anonymouse.ws
.anonymousindex.com
.anonymousurfing.info
.anotherproxy.com
.anproxy.be
.antifw.tk
.aproxysite.com
.arandomproxy.com
.betaproxy.com
.bigate.com
.bind2.com
.blockmy.info
.boredatschool.net
.boredatwork.info
.bot24.info
.boxproxy.com
.breiter.ch
.browseany.com
.browseatwork.com
.browseatwork.net
.browseschool.info
.browsesecurely.com
.browsework.info
.browsingschool.com
.browsingschool.info
.browsingwork.com
.browsingwork.info
.bypassbrowser.com
.calcmaster.net
.celebrityblog.net
.cgi-proxy.info
.cgi-proxy.net
.cgiproxy.info
.cleverproxy.com
.cloaker.ca
.cloax.net
.collegeproxy.com
.concealme.com
.datadefense.org
.daveproxy.co.uk
.decodes.biz
.demonproxy.com
.desireproxy.com
.dzzt.com
.famous5.net
.fileshack.us
.filter2005.com
.fireprox.com
.flyproxy.com
.free-proxy.info
.freepr0xy.com
.freeproxy.ca
.freeproxyserver.org
.freeproxysurf.info
.freewebproxy.org
.fsurf.com
.ftpproxy.info
.fullysickproxy.com
.game678.com
.gamesproxy.com
.geoepker.hu
.gobyproxy.com
.goproxing.com
.guardster.com
.h0h0h0.com
.hackingtruths.org
.hide-me.be
.hidemyass.com
.hideyour.info
.hidingyou.com
.host.sk
.howto.pro
.httpproxy.info
.httproxy.com
.idzap.com
.ieproxy.com
.indianproxy.com
.intelliproxy.com
.ipblocker.info
.iphide.com
.ipsecret.com
.japanweb.info
.justhide.com
.katedrala.cz
.kproxy.com
.letsproxy.com
.livreproxy.com
.long999.com
.marzie.com
.megaproxy.com
.merletn.org
.misterprivacy.com
.mrreid.net
.mxds.ch
.myinternetproxy.com
.myproxysurfer.com
.myshield.com
.mysticproxy.com
.neoproxy.net
.newproxy.be
.ninjaproxy.com
.no1proxy.com
.nopimps.com
.ohmyproxy.com
.opencity.us
.perfectproxy.com
.phproxy.info
.phproxy.org
.pimpmyip.com
.primeproxy.com
.privatebrowsing.com
.procksie.com
.proxene.com
.proxified.net
.proxify.com
.proxifyme.com
.proxy-sock.com
.proxy-surf.net
.proxy.winidn.com
.proxy1.info
.proxy10.info
.proxy11.info
.proxy12.info
.proxy121.com
.proxy13.info
.proxy14.info
.proxy15.info
.proxy16.info
.proxy17.info
.proxy18.info
.proxy19.info
.proxy20.info
.proxy247.com
.proxy247.net
.proxy2info
.proxy3.info
.proxy4.info
.proxy5.info
.proxy6.info
.proxy7.com
.proxy7.info
.proxy77.com
.proxy8.info
.proxy9.info
.proxyanon.com
.proxyaware.com
.proxybrowsing.com
.proxybuster.net
.proxycat.com
.proxychatroom.com
.proxycraze.com
.proxydetective.com
.proxydrop.biz
.proxydrop.com
.proxydrop.info
.proxydrop.net
.proxydrop.org
.proxyforall.com
.proxyfoxy.com
.proxygasp.com
.proxygeek.com
.proxyghost.com
.proxyguy.com
.proxyhero.com
.proxyify.info
.proxyindex.com
.proxyjet.com
.proxyking.net
.proxylord.com
.proxymouse.com
.proxynanny.com
.proxyok.com
.proxypi.com
.proxyplease.com
.proxypop.com
.proxyprince.com
.proxyrat.com
.proxysafe.com
.proxyserver7.com
.proxysnail.com
.proxyspy.com
.proxytastic.com
.proxywave.com
.proxyweb.net
.proxywhip.com
.proxzero.com
.prx1.com
.psurf.net
.pureprivacy.com
.roachhost.com
.rrdb.org
.safegatetech.com
.satanproxy.com
.searchlores.org
.shadowbrowser.com
.shadowsurf.com
.siatec.net
.sicomm.us
.silentsurf.com
.simpleproxy.com
.siteunlocker.com
.smartproxy.net
.sneak3.po.gs
.snoopblocker.com
.someproxy.com
.spondoo.com
.spynot.com
.spysurfing.com
.stealth-ip.net
.strongproxy.com
.stupidproxy.com
.sureproxy.com
.surf-anon.com
.teenproxy.com
.thatproxy.com
.the-cloak.com
.thecgiproxy.com
.theproxy.be
.theproxysite.info
.theunblocker.tk
.tntproxy.com
.totalupload.com
.traceless.com
.ukproxy.com
.unblockmyspace.com
.unblockthis.com
.urfonym.com
.urlencoded.com
.userbeam.de
.videoeditors.info
.vproxy.be
.vtunnel.com
.w00tage.com
.w3privacy.com
.wantproxy.com
.web2ftp.com
.websitereactor.org
.webwarper.net
.workstudyplay.com
.www2ftp.de
.zen3.info
.zend2.com
.zend24.info
.zendproxy.com

Службы знакомств

"/etc/squid/hawk/love.list"

.24flirt.ru
.24open.ru
.2v1.ru
.74love.com
.abu.com.ua
.acqjournal.ru
.alleya.ru
.amor.com.ua
.amor.md
.anketka.com
.be-hi.ru
.beelove.ru
.behi.ru
.bibigon.ru
.boct.org.ru
.bonami.ru
.boyfriend.ru
.bride.kz
.chatclub.ru
.crazylove.ru
.date.kz
.dating-love.ru
.dating.buduar.com
.dating.kz
.dating.ru
.datingservice.ru
.doska.znakomstv.ru
.e-basta.ru
.elove.ru
.eroplus.ru
.feelme.ru
.feme.ru
.findyourdream.ru
.flirt.atletika-sila.ru
.flirt.kg
.flirt.ru
.flirtanika.kz
.flirtru.ru
.funzorlove.net
.girlfriend.ru
.glad.ru
.go2love.ru
.goldlove.ru
.gorodznakomstv.ru
.gubkinlove.info
.happyfirstlove.org
.hitoff.ru
.hot.kz
.hotim.ru
.idealgirl.net
.iloveyou.kz
.iloveyou.ru
.ineedyou.ru
.inkognitoclub.ru
.intimclub.ru
.iseekyou.org
.justyou.ru
.jzzz.infok
.kapriz.kz
.kasanova.com.ua
.kiss.kz
.kissus.ru
.koketki.info
.krutomer.ru
.kupidon.ru
.laletti.ru
.lipetskie.ru
.litelove.ru
.lov.ru
.love-miheeff.ru
.love-planet.ru
.love-planet.uz
.love-you.ru
.love.alloy.ru
.love.almag.net.ru
.love.aslanova.ru
.love.atletika-sila.ru
.love.big.am
.love.dewochki.net
.love.druzba.org.ua
.love.funzor.net
.love.guide-official.com
.love.magitex.org
.love.mail.ru
.love.more.uz
.love.mytop-in.net
.love.oculus.ru
.love.odnawoman.ru
.love.ostrie.ru
.love.passion.ru
.love.prikola.net
.love.qaqa.ru
.love.rambler.ru
.love.ru
.love.rulist.eu
.love.ruszona.ru
.love.salex.ru
.love.sex69.ru
.love.sexiris.com.ua
.love.spbhome.ru
.love.terrawoman.com
.love.topping.com.ua
.love.vu
.love.xoxma.com.ua
.lovebank.kz
.lovedosug.ru
.lovefoto.ru
.lovefriend.ru
.lovegrad.info
.lovegyry.ru
.loveholiday.ru
.loveintim.net
.loveis.lv
.loveisle.ru
.lovemate.ru
.lovemelove.ru
.lovemy.com.ua
.lovemy.ru
.loveplanet.club.co.ua
.loveplanet.ru
.loveplanets.ru
.loveplanets.uz
.lover.ee
.lovesme.ru
.lovestorm.ru
.lovevia.net
.lovpla.net
.lubimoy.net
.luck.kz
.mad-love.ru
.mamba.ru
.marry.ru
.maybe.ru
.mca.net.ru
.meet.love.chudo.ru
.meetla.ru
.men.uz
.mheart.ru
.monamour.ru
.moyalubov.ru
.nebo9.ru
.newgirls.ru
.neznakomka.ru
.nice.kz
.okeanlubvi.ru
.omen.kz
.paru.ru
.parubab.ru
.people.kz
.pickup.cc
.picred.com
.planet.sbrn.ru
.planeta-love.ru
.poflirtyem.info
.polubi.ru
.pretty.kz
.pridi.ru
.privet.in.ua
.pro-love.net
.proflirt.net
.puls.kz
.relax.kz
.romance.kz
.rulove.info
.rusdating.ru
.search-love.ru
.sex.kiev.ua
.sexz.ru
.singles.kz
.singles.ru
.sitelove.info
.skylove.ru
.smsdosug.ru
.smski.ru
.snapik.ru
.star.kz
.sun-love.ru
.sweetkiss.ru
.tamdam.ru
.together.kz
.viagra.kz
.womenlove.ru
.x-love.info
.xmeet.ru
.yaplusty.ru
.yarlove.com
.your-ideal.com
.your-love.org
.zapretov.net
.znakomiy.ru
.znakomstva.fromru.com
.znakomtes.ru

Он-лайн игры

"/etc/squid/hawk/gamez.list"

.1pirat.ru
.3sider.mail.ru
.afterworld.ru
.aliveplay.ru
.apeha.ru
.arena.ru
.asgardro.com
.astronix.ru
.awakening.ru
.azona.ru
.battlemech.net.ru
.berserk.mail.ru
.bitefight.ru
.bloodyworld.com
.butsa.ru
.carnage.ru
.casino.xelon.ru
.chaosage.ru
.chaosroad.ru
.citywar.ru
.combats.ru
.crazykings.ru
.darkagesworld.com
.darkoniarpg.ru
.darkorbit.ru
.darkswords.com.ua
.darkswords.ru
.decline.sakha.net
.desert.com.ru
.dmaland.ru
.dowars.org
.dozory.ru
.dwar.ru
.eos-online.ru
.ereality.ru
.estelad.ru
.eve-zone.ru
.evolutions.ru
.exolon.ru
.f-o2.ru
.fantasyland.ru
.fdm.kiev.ua
.fergana.com.ru
.finalcombat.com
.flash-games-online.ru
.flashtown.ru
.fragoria.ru
.gambler.ru
.games.mail.ru
.games.wnet.ua
.gamez.com.ua
.ganjawars.ru
.gdworld.ru
.gladiators-ua.com
.gladiators.ru
.gop-stop.ru
.haddan.ru
.heroeslands.com
.heroez.net
.heroonline.ru
.ice.magov.net
.icedland.ru
.igrionline.ru
.instincts.ru
.islandsworld.ru
.iwars.ws
.klanz.ru
.la2world.ru
.lagam.net
.landofrain.ru
.lane.ru
.lineage.ru
.lostearth.ru
.lostgates.ru
.maffia.rambler.ru
.mafiaonline.ru
.magegame.ru
.mars2025.ru
.merlin-worlds.ru
.mgcworld.com
.millidor.ru
.mirsofta-game.ru
.mist-game.ru
.mmorpg.rpgland.ru
.moneymania.ru
.motorwars.ru
.motronline.com
.mwinds.ru
.mystery.bigmir.net
.netwars.ru
.neverfate.ru
.neverlands.ru
.nextworld.ru
.nura.biz
.ogame.ru
.ogw.ru
.onlinegames.kiev.ua
.onlineguru.ru
.otherworlds.ru
.ourgames.ru
.pentacore.rambler.ru
.pers.ru
.piratia.ru
.play.nevasport.ru
.pokermoscow.ru
.polymorf.ru
.postnuclear.ru
.prevedgame.ru
.rambov.ru
.redstarpoker.ru
.respublika.ru
.rfonline.ru
.robotwars.ru
.roc-auto.r16.ru
.rofland.ru
.romewar.ru
.roseon.ru
.rpg.su
.rus.finam.ru
.sancity.ru
.sandland.ru
.seafight.ru
.secondrussia.ru
.starcombats.ru
.starquake.ru
.sttclan.ru
.survivors.ru
.swonline.ru
.tale.ru
.tenneta.ru
.territory.ru
.the-game.ru
.timezero.ru
.tooks.ru
.torment.ru
.travian.ru
.tribe.civ3000.com
.twworld.ru
.u13.ru
.v-russia.com
.warlords.ru
.warwar.ru
.wayw.ru
.wayw2.com
.wellonline.ru
.wh2.ru
.wiw2.ru
.worldstadium.ru
.xin.ru
.zatmenie.com
.zuki.mail.ru

Разнообразные "тяжелые"ресурсы, rapidshare, zaycev.net etc

"/etc/squid/hawk/vari.list"

.11mbit.de
.11mbit.in
.2shared.com
.3mp3.ru
.4shared.com
.adorablebunnies.com
.allfiles.ru
.aqache.com
.axifile.com
.badongo.com
.badongo.net
.base.zaycev.net
.best-mp3.ru
.bestsharing.com
.bigfileupload.com
.bigfilez.com
.bigupload.com
.bonpoo.com
.box.net
.briefcase.yahoo.com
.come2store.com
.content-type.com
.crazefiles.com
.cyberupload.com
.datenklo.net
.depositfiles.com
.divshare.com
.dload.net.ru
.dossya.com
.dosyaekle.com
.downloads.games.mail.ru
.downloads.nevosoft.ru
.downloads.winsov.ru
.dropboks.com
.dropload.com
.dump.ru
.dwar.ru
.easy-share.com
.easy-sharing.com
.easyfilehost.com
.egoshare.com
.esnips.com
.eufiles.com
.f-forge.com
.file-upload.net
.file.raid.ru
.file2all.com
.file2share.biz
.filebest.ru
.filebuffer.net
.filecache.de
.filecloud.com
.filecoast.com
.filefactory.com
.fileforwarding.com
.filegone.com
.filegu.ru
.filehd.com
.fileho.com
.filehost.ro
.filehoster.ru
.filepost.ru
.files.to
.files.trubka.net
.fileshare.in.ua
.filespace.ru
.filestock.ru
.filesurf.ru
.free-transfer.de
.freefileupload.net
.freespace.filefront.com
.freeuploader.com
.friendlyshare.de
.ftp.intv.ru
.ftp.predanie.ru
.ftpz.us
.fupload.com
.getalbums.ru
.getfile.biz
.getupload.com
.gigasize.com
.hackz.nu
.hellreapers.com
.hemenpaylas.com
.hotfile.ru
.hyperupload.com
.hyperupload.net
.ibox.org.ua
.icefile.net
.ifolder.ru
.internetfiles.org
.ipload.ru
.jumbofile.com
.justupit.com
.keepmyfile.com
.letitbit.net
.live-share.com
.load.to
.mailbigfile.com
.mediafire.com
.meetfile.com
.megashares.com
.megaupload.com
.mihd.net
.mnogomp3.net
.momoshare.com
.mooload.com
.mp3ex.net
.mp3real.ru
.mp3shek.net
.musicfond.com
.muslib.ru
.muzudar.ru
.mysharebox.com
.mytempdir.com
.myupload.biz
.netload.in
.netload.us
.nitroushosting.net
.obmen.borges.ru
.openfile.ru
.openupload.com
.orb-z.com
.oreys.com
.oxyshare.com
.p-file.com
.pesenki.ru
.pirateshare.net
.poku.ru
.prouploads.com
.putfile.com
.qfile.de
.quickdump.com
.quickshareit.com
.rapidfile.fr
.rapidsafe.de
.rapidshare.com
.rapidshare.de
.rapidshare.fr
.rapidshare.ru
.rapidsharing.com
.rapidupload.com
.recfile.com
.refrozen.com
.remx.ru
.rghost.ru
.s2.befile.ru
.s2.lolo.ru
.savefile.com
.scambia.com
.sceneworld.net
.send-file.co.uk
.sendmefile.com
.sendover.com
.sendspace.com
.sexuploader.com
.shara.by
.share.am
.share.dewil.ru
.sharebigfile.com
.sharefiles.ru
.sharemania.ru
.shareua.com
.sharing.ru
.simpleupload.de
.slil.ru
.snaggys.com
.speedshare.org
.speedyshare.com
.spread-it.com
.ssfiles.com
.storeandserve.com
.streamupload.com
.supashare.com
.supload.com
.sweniger.de
.takdata.com
.theupload.com
.theupload.info
.transferbigfiles.com
.tryor.com
.turboshare.de
.turboupload.com
.ultrashare.de
.ultrashare.net
.up-file.com
.up.li.ru
.up.spbland.ru
.updownloadserver.de
.upitus.com
.upload-file.net
.upload.com.ua
.upload.sc
.upload2.com
.upload2.net
.uploaded.to
.uploadfile.org
.uploadfront.com
.uploadhut.com
.uploading.com
.uploadport.com
.uploadready.com
.uploadsend.com
.uploadtemple.com
.uploadtown.com
.uploadyourfiles.de
.ushareit.com
.webattach.mail.yandex.net
.webfile.ru
.webfilehost.com
.weborama.ru
.weekshare.com
.wikiupload.com
.willhostforfood.com
.wyslijto.pl
.xtrafile.com
.yourfile.net
.yourfile.org
.yourfilehost.com
.yourfilelink.com
.yousendit.com
.zhube.com
.zippyvideos.com
.zshare.net
.zupload.com

"/etc/squid/hawk/varihard.list"

213.248.53.147
64.132.55.2
70.86.218.194
81.176.228.54
89.108.95.72

Жестко блокируемые ресурсы

"/etc/squid/hawk/hardban"

80.240.210.196
81.177.17.74
87.242.72.62
69.22.135.239
216.195.35.111
69.22.132.77
69.22.135.128
63.217.31.62
76.9.5.67
38.119.121.228
88.85.81.30
208.72.170.72
208.122.223.2
208.122.223.4
62.129.129.0/24
80.77.113.31
64.72.118.35
193.138.224.216
69.31.115.196
208.72.170.66
208.69.32.136
87.242.76.77

Подсети ICQ

"/etc/squid/hawk/icqban.list"

152.163.159.0/24
152.163.208.0/24
194.186.55.0/24
194.67.23.0/24
205.188.0.0/16
61.12.161.0/24
61.12.174.0/24
61.12.51.0/24
64.12.0.0/16

Mail.ru Agent

"/etc/squid/hawk/mailabandst.list"

.exe.agent.mail.ru
.mrim.mail.ru
.mrim1.mail.ru
.mrim10.mail.ru
.mrim11.mail.ru
.mrim12.mail.ru
.mrim13.mail.ru
.mrim14.mail.ru
.mrim15.mail.ru
.mrim16.mail.ru
.mrim17.mail.ru
.mrim18.mail.ru
.mrim19.mail.ru
.mrim2.mail.ru
.mrim20.mail.ru
.mrim21.mail.ru
.mrim22.mail.ru
.mrim23.mail.ru
.mrim24.mail.ru
.mrim25.mail.ru
.mrim26.mail.ru
.mrim27.mail.ru
.mrim28.mail.ru
.mrim29.mail.ru
.mrim3.mail.ru
.mrim30.mail.ru
.mrim31.mail.ru
.mrim4.mail.ru
.mrim5.mail.ru
.mrim6.mail.ru
.mrim7.mail.ru
.mrim8.mail.ru
.mrim9.mail.ru

Фишинговые сервера

/etc/squid/hawk/fishban

208.69.32.133

Заблокированных ресурсов для учебных классов и Wi-Fi

"/etc/squid/hawk/classesban.list"

.689.ru
.allnokia.ru
.bash.org.ru
.binmovie.ru
.clipov.net
.demonoid.com
.depositfiles.com 
.dimonvideo.ru
.dl.ibox.org.ua
.dload.net.ru
.dmp3.net
.facebook.com
.filepost.ru 
.fishki.net
.flickr.com
.ftp.intv.ru
.games.mail.ru
.gigasize.com
.goroskop.ru
.icq.com
.icqproxy.org
.ifolder.ru
.jetune.ru
.kpnemo.ru
.letitbit.net
.liveinternet.ru
.login.oscar.aol.com
.moikrug.ru
.mp3.ru
.mp3area.ru
.mp3chudo.ru
.mp3darom.ru
.mp3ex.net
.mp3real.ru
.mp3share.ru
.mp3shek.net
.mp3valey.net
.musicfond.com
.musicmp3.spb.ru
.muzmp3.net
.muzudar.ru
.mxwarez.net
.myspace.com
.myzuka.ru
.netz.ru
.nnm.ru
.odnoklassniki.ru
.onsmartphone.com
.otpada.net
.penreader.com
.phazeddl.com
.phazep2p.com
.playhard.ru
.poku.ru
.qip.ru
.quickshareit.com
.rapidshare.com
.rumusic.net
.rutube.ru
.s2.befile.ru
.s2.lolo.ru
.sentero.net
.shara.by
.share.dewil.ru
.sharereactor.ru
.skachivai.ru
.smspricol.ru
.symbiware.ru
.torrents.ru
.uploading.com
.video.mail.ru
.vision.rambler.ru
.vkontakte.ru
.weborama.ru
.wzor.info
.wzor.net
.x-pirat.ru
.xlifes.ru
.youtube.com
.zaycev.net
.zetme.ru
.ziza.ru
.zshare.net
.zvezdi.ru

"/etc/squid/hawk/wifiban.list"

.689.ru
.binmovie.ru
.clipov.net
.demonoid.com
.depositfiles.com 
.dimonvideo.ru
.dl.ibox.org.ua
.dload.net.ru
.dmp3.net
.filepost.ru 
.ftp.intv.ru
.games.mail.ru
.gigasize.com
.goroskop.ru
.ifolder.ru
.jetune.ru
.kpnemo.ru
.letitbit.net
.mp3.ru
.mp3area.ru
.mp3chudo.ru
.mp3darom.ru
.mp3ex.net
.mp3real.ru
.mp3shek.net
.mp3valey.net
.musicfond.com
.musicmp3.spb.ru
.muzmp3.net
.muzudar.ru
.mxwarez.net
.myzuka.ru
.netz.ru
.nnm.ru
.otpada.net
.phazeddl.com
.phazep2p.com
.playhard.ru
.poku.ru
.qip.ru
.quickshareit.com
.rapidshare.com
.rumusic.net
.rutube.ru
.s2.befile.ru
.s2.lolo.ru
.sentero.net
.shara.by
.share.dewil.ru
.sharereactor.ru
.skachivai.ru
.smspricol.ru
.symbiware.ru
.torrents.ru
.uploading.com
.video.mail.ru
.vision.rambler.ru
.weborama.ru
.wzor.info
.wzor.net
.x-pirat.ru
.xlifes.ru
.youtube.com
.zaycev.net
.zetme.ru
.ziza.ru
.zshare.net
.zvezdi.ru

В более общем случае может возникнуть желание на редактирование черных списков через веб-интерфейс. Тогда структура каталогов будет несколько иная. Файлы *.list с правами 0666 кладем в /srv/www/htdocs/modbanlists/ и создаем символические ссылки в /etc/squid/hawk:

# chmod 0666 *.list
# ln -s /srv/www/htdocs/modbanlists/*.list /etc/squid/hawk/

Написание веб-интерфейса для редактирования не представляет особой сложности. TODO

Кладем скрипт в cron.hourly, следящий за изменением списков, сортирующий их по алфавиту, удаляющий дубликаты и перегружающий сквид при необходимости:

#!/bin/bash

cd /srv/www/htdocs/modbanlists/

 qfile="/var/tmp/squid_banlists_chekmodify.txt"
 qfileatime="$qfile.time"

# Checking if any list was edited & modifying qfile

for i in `ls *.list`
do
 file="/srv/www/htdocs/modbanlists/$i"
 fileatime="/srv/www/htdocs/modbanlists/$i.time"
 logfile="/var/log/squid/watchdog.log"
 a=""
 b=""

 [ ! -f $fileatime ] && stat $file | grep Modify > $fileatime || : [ -f $fileatime ] && a="$(cat $fileatime)" || exit 1
 b="$(stat $file | grep Modify)"
 if [ "$a" != "$b" ]; then
    echo "Sorting $i & removing duplines..."
    #sort $i | uniq > $i.s && mv $i.s $i
    cat $i | tr "[:upper:]" "[:lower:]" | sort | uniq > $i.s && mv $i.s $i
    echo "Modifying time for $i..."
    # update time
    stat $file | grep Modify > $fileatime
    chown wwwrun.www $i
    date  > $qfile
 fi
done

# Checking qfile & reloading squid if needed
 file=$qfile
 fileatime=$qfileatime
 logfile="/var/log/squid/watchdog.log"

 [ ! -f $fileatime ] && stat $file | grep Modify > $fileatime || : [ -f $fileatime ] && a="$(cat $fileatime)" || exit 1
 b="$(stat $file | grep Modify)"
 if [ "$a" != "$b" ]; then
    echo "Restarting server...."
    rcsquid reload
    # update time
    stat $file | grep Modify > $fileatime
    
    echo "----" >> $logfile
    date >> $logfile
    echo "Squid reloaded by banlists watchdog:" >> $logfile
 fi

Ограничители скачивания

правило для определенных типов файлов по расширению

/etc/squid/hawk/restfiles

\.[Aa][Vv][Ii]$
\.[Mm][Pp][Gg]$
\.[Mm][Pp][Ee][Gg]$
\.[Mm][Pp]3$
\.[Oo][Gg][Gg]$
\.[Ww][Mm][Aa]$
\.[Ww][Mm][Vv]$
\.3[Gg][Pp]$
\.[Ww][Aa][Vv]$
\.[Ii][Ss][Oo]$
\.[Mm][Oo][Vv]$
\.[Ff][Ll][Vv]$ 
\.[Ii][Ff][Ll][Vv]$ 

Работа с "качками"

Вариант 1: Sarg

Идентификация черезмерно активных пользователей производится при помощи sarg:

/etc/sarg.conf

per_user_limit /etc/squid/sarg/auto_loaderz.pool 150

При генерации саргом отчетов в течении дня в текстовый файл попадают пользователи, скачавшие более 150 мб. Следует помнить, что sarg сам не различает временные интервалы, за которые считает объем, т.е. необходимо четко осознавать, за какой период выставляется ограничение и каким образом производить ротацию логов, чтобы добиться необходимого эффекта.

В нашем случае мониторинг активности включает в себя суточный интервал.

Модификация squid.conf включает себя отделный пул для провинившихся с жесткими ограничениями количества одновременно используемых потоков (maxconn) и скорости (delay_pools)

Подключение и установку правил для пула "качков" необходимо проводить до работы остальных правил. /etc/squid/squid.conf

acl loaderz   proxy_auth "/etc/squid/pools/auto_loaderz.pool"

Чтобы squid самостоятельно подхватывал изменения в файле auto_loaderz.pool а не при ручной перезагрузке, используется следующий скрипт:

/etc/cron.hourly/squid_reload

#!/bin/bash

file="/etc/squid/sarg/auto_loaderz.pool"
fileatime="/etc/squid/sarg/auto_loaderz.time"
logfile="/var/log/squid/watchdog.log"
a=""
b=""

[ ! -f $fileatime ] && stat $file | grep Modify > $fileatime || : [ -f $fileatime ] && a="$(cat $fileatime)" || exit 1
b="$(stat $file | grep Modify)"
if [ "$a" != "$b" ]; then
    echo "Restart server...."
    rcsquid reload
    # update time
    stat $file | grep Modify > $fileatime

    echo "----" >> $logfile
    echo "Squid reloaded by loaderz watchdog:" >> $logfile
    date >> $logfile

fi

Обнуление файла auto_loaderz.pool происходит раз в 2 недели.

Вариант 2: LightSquid

Скачиваем последнюю версию с сайта разработчика [5], распаковываем ее в директорию /srv/www/cgi-bin/light/

tar xvfz /usr/local/src/lightsquid-1.7.1.tgz /srv/www/cgi-bin/light

Правим конфигурационный файл:

lightsquid.cfg

# Пути к файлам
$cfgpath             ="/srv/www/cgi-bin/light";
$tplpath             ="/srv/www/cgi-bin/light/tpl";
$langpath            ="/srv/www/cgi-bin/light/lang";
$reportpath          ="/srv/www/cgi-bin/light/report";
$logpath             ="/var/log/squid";
$ip2namepath         ="/srv/www/cgi-bin/light/ip2name";

# Адреса и домены локальных ресурсов
$skipurl             = "\.our.lan|\.example\.com";

$lang                ="ru-utf8";

# Не показываем колонку с группами
$showgrouplink       = 0;

# выделяем особо превысивших лимит
$showoversizelink    = 1;

# cсмотрим не только GET, но и PUT/POST статистику
$showputpost         = 1;

# Сопоставляем реальные имена сотрудников с их логинами
$userealname         = 1;

# Сколько мегабайт считать превышением траффика, для нас это 150 мб
$perusertrafficlimit = 150*1024*1024;

Создаем файл

touch /usr/local/sbin/run_lightparse.sh

run_lightparse.sh

#!/bin/bash
cd /srv/www/cgi-bin/light
./lightparser.pl

и помещаем его в cron. Мы используем обновление статистики раз в 15 минут: /etc/cron.d/lightparse

*/15 * * * * root /usr/local/sbin/run_lightparse > /dev/null

После запуска, отчеты LightSquid становятся доступны по адресу http://localhost/cgi-perl/light/index.cgi

Скрипт подсчета "качков"

Поскольку lightsquid не имеет нормального механизма сопряжения со squid при подсчете траффика, используем для этих целей следующий скрипт (обратите внимание на ip-адреса исключений):

#!/bin/bash

# Лог сквида
FI="/var/log/squid/access.log"

# Временная директория с файлами качков
FD="/tmp/traffe"

# Лог-файл перезагрузок сквида
FO="/var/log/squid/watchdog.log"

# Лог файл для web-отчета
FW="/srv/www/htdocs/auto_loaderz.txt"

# ACL-файл для сквида
FA="/etc/squid/sarg/auto_loaderz.pool"

# Сколько мегабайт считать нормой для скачивания
LIM="200"

# Сколько дней держать качков в карантине
DLIM="4"

# Пользователи через пробел, whitelisted
WHLIST="apetrov iivanov"

# ----------------------------------

cd $FD

echo "---" >> $FO

awk -v trlim="$LIM" -v outd="$FD" 'BEGIN { 
    print "none";
} {
    if(index($4,"TCP_MISS")!=0 && \
        index($9,"212.26.227.")==0 && \
        index($9,"213.137.238.")==0 && \
        index($9,"172.16.")==0 && \
        index($9,"NONE")==0 && \
        ($6=="GET" || $6=="POST") && index($8,"-")==0) {
	w[$8]=w[$8]+$5;
    }

} END {
    format = "%a %b %e %H:%M:%S %Z %Y";
    current_time=strftime(format)
    for(i in w) {
	j=j+w[i];	
	if((w[i]/1048576)>trlim) {
	    print i," ",current_time," ",(w[i]/1048576),"mbytes";
	    print i,"\t",current_time,"\t",(w[i]/1048576),"mbytes" > i;
	}
    }
}' < $FI >> $FO

rm $WHLIST

cp $FA $FA.old

find $FD \! -type d -mtime +$DLIM -exec rm {} \;

echo "none" > $FA
ls $FD >> $FA

DI=`diff $FA $FA.old`

if [ "$DI" != "" ]
then
 echo " " >> $FO
 date >> $FO
 echo "Changes detected, reloading squid!" >> $FO
 rcsquid reload
fi

rm $FA.old

echo "Пользователи с ограниченным доступом:" > $FW
echo " " >> $FW
ls | xargs cat >> $FW

Ссылки